Nagios的介绍:
1、Nagios是一个监控系统运行状态和网络信息的监控系统。它能监控所指定的本地或远程主机的系统状态以及运行的服务,同时提供异常通知的功能。
2、 Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志,性能图表等等。
Nagios的功能:
1、 监视网络服务 (mysql,http,ping等)
2、 监视主机资源 (进程, 磁盘 等)
3、 简单的插件扩展功能
4、 异常通知功能 (通过email,短信等)
5、 WEB界面使系统管理人员能够随时查看网络服务状态,系统问题等等
6、 可以通过手机查看系统监控信息
Nagios的安装:
一:安装前的准备
1:安装环境:centos操作系统
2:所需软件:nagios-3.0.3.tar.gz //nagios程序安装包
httpd-2.2.2.tar.gz //apache安装包
nagios-plugins-1.4.tar.gz //nagios插件安装包
nrpe-2.12.tar.gz //nagios的扩展,它安装在被监控的服务器上,向nagios提供该服务器的运行情况。
二:nagios安装
1:安装nagios主程序
# tar –zxvf nagios-3.0.3.tar.gz
# cd nagios-3.0.3
//为了避免编译错误,先创建nagios用户和组,以及/usr/local/nagios目录,同时指定nagios的目录属组。
# groupadd nagios
# useradd nagios –g nagios
# mkdir /usr/local/nagios
# chown -R nagios:nagios /uar/local/nagios
# ./configure --prefix=/usr/local/nagios
# make all //编译
# make install //安装nagios主要程序,cgi和html文件等
# make install-init //安装nagios启动脚本
# make install-config //将配置文件的例子复制到nagios配置文件里
# make install-commandmode //配置nagios目录权限。
# make install-webconf (因为这个命令执行的时候,会在/etc/httpd/conf.d/创建 nagios.conf文件,因此在执行命令前,要mkdir -p /etc/httpd/conf.d/
#cat /etc/httpd/conf.d/nagios.conf >>/usr/local/httpd/conf/httpd.conf
安装完成后在/usr/local/nagios里面生成 五个目录,分别是 var日志文件,bin执行程序,etc配置文件,sbin, share 网页的目录。至此安装成功。
2:安装nagios插件
nagios本身并没有监控的功能,所有的监控是由插件完成的,插件将监控的结果返回给nagios,nagios分析这些结果,以web的方式展现给我们,同时提供相应的报警
功能(这个报警的功能也是由插件完成的) 。
#tar –zxvf nagios-plugins-1.4.tar.gz
# cd nagios-plugins-1.4.1
# ./configure –prefix=/usr/local/nagios 编译到nagios的安装目录
# make && make install
安装完成后,会在/usr/local/nagios/ 目录下面生成libexe插件目录,nagios所有的插件都会在这个目录里面。
3:安装apache服务。
假如安装系统的时候安装了apache就不用安装了,使用系统自带安装的服务。
安装apache这里不用多做解释了。
# tar –zxvf httpd-2.2.2.tar.gz
# cd httpd-2.2.2
# ./configure –prefix=/usr/local/httpd
# make && make install
# vi /usr/local/httpd/conf/httpd.conf
修改配置文件
servername 192.168.1.221:80
假如没有做第六页的make install-webconf,则需要在配置文件最后添加:第七页字符。
假如做过了,则不用做这步,建议使用第六页的做法,以免出现 http的语法错误。
ScriptAlias /nagios/cgi-bin “/usr/local/nagios/sbin“ //cgi文件的目录
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users //验证文件的路径
Require valid-user
</Directory>
Alias /nagios “/usr/local/nagios/share“ //nagios的文件目录
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users //验证文件的路径
Require valid-user
</Directory>
上述需要添加的文件主要作用是nagios登录用户的验证。
4:apache安装完成后需要使用命令生成nagios用户的密码,检测nagios配置
#/usr/local/httpd/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users shen
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 查询配置有没有错误
当出现
Total Warnings: 0
Total Errors: 0
5:安装配置nrpe程序
#tar -zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12
# ./configure && make all
# make install-plugin //安装check_nrpe插件
# make install-daemon
# make install-daemon-config
# make install-xinetd //安装xinetd脚本
配置nrpe
# vi /etc/xinetd.d/nrpe //假如没有安装xinetd,使用yum install xinetd安装。
# only_from = 127.0.0.1 注释掉
allowshosts =192.168.1.221 添加监控主机
# vi /etc/services
nrpe 5666/tcp #nrpe //添加
# /etc/init.d/xinetd start 启动服务
6:配置nagios
nagios主要配置文件有cgi.cfg,nagios.cfg
commands.cfg,service.cfg,windows.cfg,host.cfg,contacts.cfg 其中service.cfg和host.cfg需要自己创建。
a: 修改cgi.cfg #vi /usr/local/nagios/etc/cgi.cfg
找到这几行,后面添加 shen用户,可以自己定义用户,使用“,”隔开
authorized_for_system_information=nagiosadmin,shen
authorized_for_configuration_information=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
b:修改nagios.cfg文件 #vi /usr/local/nagios/etc/nagios.cfg
找到这几行,去掉前面的注释
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //命令配置路径
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg // 联系人配置
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //模板配置
cfg_file=/usr/local/nagios/etc/objects/templates.cfg // 监控时段配置
cfg_file=/usr/local/nagios/etc/objects/host.cfg //需要自己添加 监控主机
cfg_file=/usr/local/nagios/etc/objects/service.cfg //需要自己添加 监控服务
cfg_file=/usr/local/nagios/etc/objects/windows.cfg //windows主机监控
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
command_check_interval=5s 修改这里为5,自动刷新。
c:添加监控主机文件host.cfg #vi /usr/local/nagios/etc/obgects/host.cfg
define host{
use linux-server
host_name 192.168.1.230
alias web
address 192.168.1.230
}
其他主机的自己复制粘贴即可。
d:添加服务文件service.cfg #vi /usr/local/nagios/etc/obgects/service.cfg
define service{
use local-service
host_name 192.168.1.230
service_description check_tcp 80
check_command check_tcp!80
} //监控主机80端口,
define service{
use local-service,srv-pnp
host_name 192.168.1.230
service_description Total processes
check_command check_nrpe!check_total_procs
} //监控主机进程,需要在监控主机安装使用nrpe程序。
e: 配置window主机文件 # vi /usr/local/nagios/etc/objects/windows.cfg
修改
define host{
use windows-server
host_name 192.168.1.185
alias My Windows Server
address 192.168.1.185
}
define service{
use generic-service
host_name 192.168.1.185
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
} 需要在监控主机安装NSClient++软件
配置commands.cfg命令文件
# vi /usr/local/nagios/etc/obgects/commands.cfg
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
} //添加nrpe命令,以便监控服务器
配置contacts.cfg文件
它用于发送邮件通知用户服务器的异常。需要启用sendmail服务
在配置文件里面添加进去自己的邮箱,如139邮箱,有短信通知的功能。
使用中国移动的飞信sms程序,也可以实现短信的预警功能,但是需要手机启用飞信。
被监控的主机配置:
被监控主机需要安装nrpe和nagos插件plugin程序
1:安装nrpe
同上11页
2:安装plugin
# tar –xvzf nagios-plugins-1.4.tar
# cd nagios-plugins-1.4
# ./configure --prefix=/usr/local/nagios
# make && make install
# chown nagios:nagios /usr/local/nagios //设置属主目录
# chown -R nagios:nagios /usr/local/nagios/libexec
至此客户端安装完成
安装完成后在服务器上面使用
/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg 查询配置
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 启动服务
² 至此nagios配置完毕,其他的一些服务需要自己去配置,同时有些服务没有插件需要自己去网上面找,比如mysql的插件。
² 我在配置的过程中遇到的主要问题
1:被监控主机监控服务无法监控
是因为插件的原因,以及nrpe服务,需要启用nrpe服务,同时插件在commands.cfg中的定义。
2: 监控过程中进程无法监控
由于插件check_procs的原因,重新下载check_procs_fixed 这个插件,同时在commands.cfg里面进行修改,即可成功
define command{
command_name check_local_procs
command_line $USER1$/ check_procs_fixed -w $ARG1$ -c $ARG2$ -s $ARG3$
}
同时修该监控主机/usr/local/nagios/etc/nrpe.cfg
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs_fixed -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs_fixed -w 150 -c 200
Nagiso还有很多的问题,需要去实现,正在深入的研究。Nagios也可以进行图表性能的显示,正在添加测试!
nagios服务器还需要做好安全防护,确保服务器的安全。
1:运行用户使用nagios而不是root
2: 保证远程代理安全,修改/etc/hosts.allow nrpe只允许nagios服务器访问,并且nrpe使用nagios运行,修改nepr.cfg文件
3:nrpe可以通过ssl来进行通信,保证通信通道的安全
Cacti的说明:
Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
Cacti安装前的准备 :
所需软件:httpd-2.2.2.tar.gz
mysql-5.0.18.tar.gz
php-5.2.9.tar.gz
rrdtool-1.2.6.tar.gz 画图工具
cacti-0.8.7b.tar.gz 图像分析工具
zlib、freetype、libpng lib库
gd-2.0.33.tar.gz gd数据包
二:cacti安装
1:安装mysql+php+apache服务,因为cacti需要使用到数据库以及动态画面php的支持。
2:安装rrdtool
为了避免rrdtool编译过程中出现错误,因此需要安装这几个库
#rpm -ivh libart_lgpl-devel-2.3.17-4.i386.rpm //先安装libart库,在光盘里面
# rpm -ivh freetype-devel-2.2.1-19.el5.i386.rpm
# rpm -ivh libpng-devel-1.2.10-7.0.2.i386.rpm
# rpm -ivh libjpeg-devel-6b-37.i386.rpm
# tar -zxvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --with-jpeg --with-png --with-zlib --with-freetype && make && make install
# tar –zxvf rrdtool-1.2.6.tar.gz
# cd rrdtool-1.2.6
# ./configure --prefix= /usr/local/rrdtool
# make && make install
三:设置mysql数据库
#/usr/local/mysql/bin/mysql -u root –p //进入数据库
#create database cacti; //创建cacti数据库
#grant all privileges on cacti.* to ‘cacti’@‘localhost’ identified by ‘cacti’; //创建cacti用户,同时赋予cacti用户管理cacti数据库的权限。
# flush privileges;
四:安装snmp
使用系统自带的snmp,因为Cacti需要用到snmp中的两个命令―snmpwalk和snmpget进行数据的采集。所以确定系统中有这两条 命令就可以不需要安装snmp。
配置snmpd.conf
修改里面snmp信息允许被侦测的范围。被监控的服务器需要全部安装snmp服务,需要启用snmpd服务,同时更改配置文件,使服务器可以侦测到监控的snmp信息。
五:安装cacti
#tar -zxvf cacti-0.8.7b.tar.gz
# mv cacti-08.7.b /usr/local/httpd/htdocs/cacti
# cd /usr/local/httpd/htdocs/cacti
# /usr/local/mysql/bin/mysql -u root -p cacti<./cacti.sql //导入数据库
# chown -R cacti:cacti /usr/local/httpd/htdocs/cacti/* //赋予权限
# vi include/config.php //修改相应的数据库信息
$database_type = "mysql";
$database_default = “cacti”; //数据库的名称
$database_hostname = "localhost";
$database_username = “cacti”; //数据库用户
$database_password = “cacti”; //用户密码
$database_port = "3306";
# contab –e //设置自动化任务
*/5 * * * * daemon /usr/local/php5/bin/php /usr/local/httpd/htdocs/cacti/poller.php>/dev/null 2>&1 //根据自己的php安装目录进行php命令的调整
到这里的时候,cacti基本上已经配置完成了,剩下的只是在web界面上面操作,添加主机,设置监控的项目,同时还可以安装上cacti的插件, cacti-plugin-arch-2.0.tar.gz,添加更多的监控模板,如thold, monitor,mysql等等。
安装插件:
#tar –zxvf cacti-plugin-arch-2.0.tar.gz
# cp cacti-plugin-0.8.7b-PA-v2.0.diff /usr/local/httpd/htdocs/cacti
# cd /usr/local/httpd/htdocs/cacti
# patch -p1 -N < cacti-plugin-0.8.7b-PA-v2.1.diff //打上补丁然后,目录下会生成plugins目录
#tar –zxvf monitor-0.3.4.tar.tar
# mv thold /usr/local/httpd/htdocs/cacti/plugins
# cd /usr/local/httpd/htdocs/cacti/
# vi include/global.php
# $plugins[] = ‘monitor’; //添加
#/usr/local/mysql/bin/mysql –u root –p cacti< monitor.sql //导入数据库。
mysql插件下载下来后,直接可以在网页上面进行导入模板,即可使用。
配置遇到的问题:
1:主要是cacti的版本问题,当我使用0.8.7d版本的时候,图表一直无法出现,系统状态无法up,使用的0.8.7a-c都是正常,可能是版本的原因。
2:安装插件的时候,出现错误警告,需要修改/lib/ plugins.php文件。
其他的插件正在添加。短信报警功能已经实现,需要安装threshld插件,设置预警的范围。