/ 中存储网

Ubuntu 11.10搭建和配置Nagios的方法及命令

2015-07-15 15:15:49 来源:中存储网

安装Ubuntu 11.10 Desktop 32bit

安装 apache2、php5、openssl、libssl-dev、gcc编译器与开发库、gd开发库、php、php-apache、php相关的插件

可以用apt-get命令来安装这些软件包,键入命令:

sudo apt-get install apache2

sudo apt-get install build-essential

sudo apt-get install libgd2-xpm-dev

sudo apt-get install openssl

sudo apt-get install libssl-dev

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5 (这个可能在安装php5的时候就已经安装,一旦安装就 不需要安装啦)

sudo apt-get install libjpeg8

sudo apt-get install libjpeg8-dev

sudo apt-get install curl

sudo apt-get install libcurl3

sudo apt-get install libpng12-0

sudo apt-get install libpng12-dev

sudo apt-get install freetype2-demos

sudo apt-get install libfreetype6

sudo apt-get install libxml2

sudo apt-get install libxml2-dev

配置apache

一旦默认没有安装vim编辑器,先安装vim,因为默认的vi编辑器在ubuntu里差不多的恶心

sudo apt-get install vim

sudo vim /etc/apache2/apache2.conf

按shift-g,也就是G,到篇尾,添加如下配置

AddType application/x-httpd-php .php .htm .html

AddDefaultCharset UTF-8

DirectoryIndexindex.php index.html index.html

启动apache服务

sudo /etc/init.d/apache2 start

使用chkconfig工具设为随机自启动,一旦没有安装chkconfig则先安装chkconfig

sudo apt-get install chkconfig

sudo update-rc.d apache2 defaults

sudochkconfig apache2 on

测试php是否解析正常

在shell里切换到/var/www目录下

cd /var/www

清空里面的文件

rm -rf *

新建测试页面

vimindex.php

<?php

phpinfo();

?>

退出并保存

打开浏览器测试:

http://localhost

是否正常显示php的信息

安装Nagios

创建nagios用户和nagios命令组

sudouseradd -s /bin/false nagios

sudogroupaddnagcmd

将nagios帐号和www-data用户加入到nagcmd组中

sudousermod -G nagcmdnagios

sudousermod -G nagcmd www-data

下载nagiosnagios-plugin nrpe

切换目录到/usr/local/src

cd /usr/local/src

sudowgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz

sudowgethttp://nagiosplug.sourceforge.net/snapshot/nagios-plugins-HEAD.tar.gz

sudowgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz

解压 nagios-3.3.1.tar.gz

sudo tar zxvf nagios-3.3.1.tar.gz

进入到解压的目录

cdnagios

编译安装nagios

sudo ./configure --prefix=/usr/local/nagios –with-command-group=nagcmd

结束之后,执行 echo $? 查看返回值,一旦是0说明没有问题,可以进行下一步,一旦是 非0说明没有成功,需找原因重新执行

因为3.3.1版本在configure完成以configure后执行下一步安装的时候有点儿问题,所以 得修改一下 生成的makefile文件

sudosed -i 's:for file in includes/rss/*;:for file in includes/rss/*.*;:g' ./html/Makefile

sudosed -i 's:for file in includes/rss/extlib/*;:for file in includes/rss/extlib/*.*;:g' ./html/Makefile

sudo make all

初始化

sudo make install-init

生成配置相关文件

sudo make install-config

生成命令文件

sudo make install-command

配置web接口

sudo make install-webconf

创建一个nagiosadmin的用户用于nagios的web接口

sudohtpasswd -c /usr/local/nagios/etc/htpasswd.usersnagiosadmin

回车后会提示你输入密码并确认密码

编译安装Nagios插件

再次回到/usr/local/src目录

cd/usr/local/src

解压 nagios-plugins-HEAD.tar.gz

sudo tar zxvf nagios-plugins-HEAD.tar.gz

进入到解压这个文件包之后的目录

cd nagios-plugins-1.4.15-39-gd796c

编译nagios-plugins

sudo ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

安装

sudo make

sudo make install

编译安装nrpe(非必须步骤)

不应用nrpe的nagios工作流程

使用nrpe的nagios工作流程

需要在服务器端和被监控端安装

回到 /usr/local/src

cd /usr/local/src

解压 nrpe-2.13.tar.gz

sudo tar zxvf nrpe-2.13.tar.gz

cd nrpe-2.13

编译nrpe

sudo./configure –prefix=/usr/local/nagios –with-ssl-inc=/usr/include –with-ssl-lib=/usr/lib/x86-linux-gnu

安装nrpe

sudo make all

sudo make install-plugin

sudo make install-daemon

sudo make install-daemon-config

sudo make install-xinetd

检查是否安装xinetd服务(一般没有安装)

sudodpkg -L xinetd

一旦返回”未曾安装软件包xinetd“ 的提示,就需要安装xinetd服务

sudo apt-get install xinetd

将xinetd添加到启动级别中

sudo update-rc.dxinetd defaults

设为随机自启动

sudochkconfigxinetd on

编辑 /etc/services配置相关文件,添加nrpe的服务端口

sudo vim /etc/services

在尾行添加如下配置

nrpe 5666/tcp # NRPE Service Port

一旦是被监控端,还需要编辑 /etc/xinted.d/nrpe

sudo vim /etc/xinetd.d/nrpe

only_from = 127.0.0.1 10.1.10.23(添加nagios的ip地址)

退出并保存

sudochkconfignrpe on

sudo /etc/init.d/xinetd restart

检查nrpe服务是否正常

sudonetstat -at | grepnrpe

一旦返回“tcp 0 0 *:nrpe *:* LISTEN”,说明服务正常

启动服务

更改/usr/local/nagios目录的属主和属组

suduochown -R nagios.nagcmd /usr/local/nagios

将nagios添加到启动级别中

sudo update-rc.dnagios defaults

设为随机自启动

sudochkconfignagios on

启动nagios服务

sudo /etc/init.d/nagios start

重启 apache2服务

sudo /etc/init.d/apache2 restart

登录http://localhost/nagios查看页面是否正常

配置nagios主配置相关文件

sudo vim /usr/local/nagios/etc/nagios.cfg

添加所添加的配置相关文件

cfg_file=/usr/local/nagios/etc/objects/beyondsoft_servers.cfg

cfg_file=/usr/local/nagios/etc/objects/bys_servers_group.cfg

cfg_file=/usr/local/nagios/etc/objects/services.cfg

beyondsoft_servers.cfg是定义主机的配置相关文件

bys_servers_group.cfg是定义主机组的配置相关文件

services.cfg是定义服务并和主机组相关联的配置相关文件

配置通知联系人

nagios可以做到故障和故障恢复通知,这需要配置联系人,一旦你有139的邮箱,可以免费使用139的邮件短信通知,也可以购买专业的sms服务来实现短信通知,这样通知更及时

修改联系人配置相关文件

sudo vim /usr/local/nagios/etc/objects/contacts.cfg

修改nagiosadmin的email地址

并按照原来的添加新的联系人

退出并保存

将添加的联系人加到联系人组

配置主机配置相关文件

按照localhost.cfg配置beyondsoft_servers.cfg配置相关文件

use 是使用在template.cfg文件中的模板,是定义好的,一旦其中的内容和当前的有冲突, 则以当前优先,一旦没有,就继承 use中使用的。

配置主机组

大家监控服务器是监控一组有相同服务的主机组,这样监控起来方便,比如大家监控http服务的web server,大家就把这些服务器放到一个主机组里,然后来监控他们的http服务;一旦这些跑着http服务的server上有运行着smtp服务,那么就把这些运行smtp服务的web server和其它的smtp server放到一个主机组里去监控他们的smtp服务

sudo vim /usr/local/nagios/etc/objects/bys_server_group.cfg

配置services配置相关文件

定义好了主机,主机组,接下来大家就要定义service,这才是nagios要监控的。

要把主机或主机组和服务联系起来

sudo vim /usr/local/nagios/etc/objects/services.msc

use 使用的是template.cfg文件里定义好的选项,直接继承过来,一旦和当前定义的有 冲突则以当前优先

hostgroup_name是在引用之前定义好的主机组,一旦要引用单个主机就使用 host_name

service_description服务描述一定要有

check_command是nagios提供的监控命令,是它在实现监控

contact_group是报警联系人,之前定义好的

重启Nagios服务

做完配置后要加载已经下当前的变更,是指生效;在加载前可以先怕判断一下配置相关文件是否有效

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

会帮助判断所有的配置相关文件是否正确,一旦有问题就会显示错误原因,可以帮助排错。

一旦没有问题,就可以重新加载配置相关文件了

sudo /etc/init.d/nagios reload

登录http://localhost/nagios

查看效果以及报警邮件

因为nagios里使用的邮件发送脚本的位置写的是 /bin/mail , 而bUbuntu11.10 mail脚本的路径是/usr/bin/mail, 一旦不修改的话nagios发不出报警邮件来

有两种途径来修正这个error:

a. 修改发送命令里mail的路径,编辑/usr/local/nagios/etc/objects/command.cfg

b. 创建一个软链接 /bin/mail -------> /usr/bin/mail

sudoln -sv /bin/mail /usr/bin/mail

报警邮件

故障恢复邮件

通过139邮箱的短信通知功能可以将信息发送到手机上,节假日及时了解服务器故障状态。