我们都知道Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:
- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
- 监视主机资源 (进程, 磁盘等)
- 简单的插件设计可以轻松扩展Nagios的监视功能
- 服务等监视的并发处理
- 错误通知功能 (通过email, pager, 或其他用户自定义方法)
- 可指定自定义的事件处理控制器
- 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
- 可以通过手机查看系统监控信息
今天我们就主要介绍如何在Unbuntu下安装安装Nagios,具体见下:
-
安装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
DirectoryIndex index.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
sudo chkconfig apache2 on
-
测试php是否解析正常
在shell里切换到/var/www目录下
cd /var/www
清空里面的文件
rm -rf *
新建测试页面
vim index.php
<?php
phpinfo();
?>
退出并保存
打开浏览器测试:
是否正常显示php的信息
-
安装Nagios
创建nagios 用户和 nagios命令组
sudo useradd -s /bin/false nagios
sudo groupadd nagcmd
将 nagios帐号和www-data用户加入到 nagcmd组中
sudo usermod -G nagcmd nagios
sudo usermod -G nagcmd www-data
下载 nagios nagios-plugin nrpe
切换目录到/usr/local/src
cd /usr/local/src
sudo wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz
sudo wget http://nagiosplug.sourceforge.net/snapshot/nagios-plugins-HEAD.tar.gz
sudo wget http://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
进入到解压的目录
cd nagios
编译安装nagios
sudo ./configure --prefix=/usr/local/nagios –with-command-group=nagcmd
结束之后,执行 echo $? 查看返回值,如果是0说明没有问题,可以进行下一步,如果是 非0说明没有成功,需找原因重新执行
因为3.3.1版本在configure完成以configure后执行下一步安装的时候有点儿问题,所以 得修改一下 生成的makefile文件
sudo sed -i 's:for file in includes/rss/\*;:for file in includes/rss/\*.\*;:g' ./html/Makefile
sudo sed -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接口
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
回车后会提示你输入密码并确认密码
-
编译安装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 服务(一般没有安装)
sudo dpkg -L xinetd
如果返回 ”未曾安装软件包 xinetd“ 的提示,就需要安装 xinetd服务
sudo apt-get install xinetd
将xinetd添加到启动级别中
sudo update-rc.d xinetd defaults
设为随机自启动
sudo chkconfig xinetd 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地址)
退出并保存
sudo chkconfig nrpe on
sudo /etc/init.d/xinetd restart
检查nrpe服务是否正常
sudo netstat -at | grep nrpe
如果返回“tcp 0 0 *:nrpe *:* LISTEN”,说明服务正常
-
启动服务
更改/usr/local/nagios目录的属主和属组
suduo chown -R nagios.nagcmd /usr/local/nagios
将nagios添加到启动级别中
sudo update-rc.d nagios defaults
设为随机自启动
sudo chkconfig nagios 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/dsgrd_servers.cfg
cfg_file=/usr/local/nagios/etc/objects/bys_servers_group.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
dsgrd_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配置dsgrd_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
sudo ln -sv /bin/mail /usr/bin/mail
报警邮件
故障恢复邮件
通过139邮箱的短信通知功能可以将信息发送到手机上,节假日及时了解服务器故障状态
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1323268,如需转载请自行联系原作者