nagios是较常用的监控软件之一,一般由一个主程序,一个插件程序(Nagios-plugins)和一些可选的附加程序(NRPE,NSCliet++,NSCA等)构成。其中附加程序安装在被监控端(客户端),nagios主程序安装在服务端,插件程序是实际工作的程序,可以自己编写,也可以使用现成模块,一般同时安装在间服务端与客户端。
下面介绍一下几个附加程序:
NRPE:安装在linux/unix主机上,当服务端需要被监控端数据时,调用nagios-plugins获取对应系统信息,传回服务端。
NSClient++:安装在windows主机上,功能和NRPE相同。
NSCA:需要同时安装在服务器端和客户端,用于客户端定时主动发送信息给服务端。(linux/unix客户端)
NDOUtils:安装在服务端,用于将nagios配置信息和各event产生数据存入数据库。(不推荐用,因为nagios默认会把数据写到磁盘上,效率高)
nagios-nrpe工作原理如图:
下面说一下nagios的安装步骤:
服务端:配yum源--调整字符集--关防火墙和selinux--同步时间--安装gcc和lamp环境--添加nagios用户和组--编译安装nagios--设置web auth--安装nagios plugin--安装nrpe--启动服务检查
客户端:配yum源--调整字符集--关防火墙和selinux--同步时间--添加nagios用户和组--安装nagios插件--安装nrpe--修改nrpe配置文件--启动nagios客户端
这里需要在nrpe配置文件写command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
nagios监控分为主动和被动监控:
主动监控:利用服务端本地插件直接获取信息。(对于web服务器、数据库主动探测)
被动监控:通过nrpe来获取信息。(对于本地机器性能监控,cpu、内存等)
nagios的目录下面etc是放配置文件的目录下面有如下配置文件,下面介绍主要配置文件,
nagios.cfg:主配置文件,在文件里面指定相关文件路径eg. cfg_file=/usr/local/nagios/etc/objects/commands.cfg
nrpe:客户端nrpe配置文件
htpasswd.users:密码验证配置文件
objects/commands.cfg:存放nagios命令相关配置。自己定义command,nagios需要读这个文件,找到nagios命令对应的系统命令进行操作。
objects/services.cfg:存放具体被监控服务(不存在,自己创建)。在文件里定义具体监控内容,也可以定义一组监控。
objects/hosts.cfg:存放被监控主机(不存在,自己创建)。在文件里可以定义被监控主机,也可以定义分组。
objects/contacts.cfg:存放报警人
objects/timeperiods.cfg:存放报警周期
objects/templates.cfg:模板配置文件。上文中在services.cfg里面定义一个服务需要多个参数,我们把部分参数集合形成一个模板,以后再定义服务时候使用模板就可以。模板里记录的其实就是各项参数。
下面总结一下使用nrpe方式配置监控的步骤:
1.在nagios.cfg里面配置hosts.cfg和service.cfg文件路径,注释掉localhost.cfg配置行
2.模仿localhost.cfg生成hosts.cfg文件 head -50 localhost.cfg>hosts.cfg
3.编辑hosts.cfg文件添加被监控主机
4.编辑service.cfg文件添加监控条目,检查/etc/init.d/nagios checkconfig
5.可能会遇到selinux和nagios用户权限访问问题,权限问题需要在cgi.cfg里面修改用户
6.编辑command.cfg定义nagios命令
7.重启nagios
主动模式监控步骤:
1.在服务端命令行先把要监控的命令调试好
2.在commands.cfg里面定义nagios命令,同时调用命令行里插件。
3.在服务配置文件定义要监控的服务,调用commands.cfg里面定义nagios监控的命令。
这里总结一下nagios插件开发,我们可以使用几乎所有常用语言,nagios只需要获取插件退出状态码作为检查结果,和程序打印第一条信息最为提示信息即可。
nagios状态码:
0 ok
1 warning
2 critical
3 unknown
4 dependent
我们通常使用shell 或者python开发 对应函数就是shell:exit int/echo pyhton:sys.exit(int)/print 。
总结一下nagios画图工具安装步骤。
1.yum安装图形显示依赖的基础包。cario pango zlib zlib-devel freetype freetype-devel gd gd-devel
2.安装rrdtool的依赖包。libart_lgpl libart_lgpl-devel
3.安装rrdtool。
4.安装pnp。pnp收集数据让rrdtools画图,php负责展示。
对于作图的配置步骤如下:
1.修改nagios.cfg文件。将process_performance_data置1,取消host_perfdata_command和service_perfdata_command的注释。
2.编辑commands.cfg文件。找到process-host-perfdata和process-service-perfdata 的command标签,将command_line修改成如下内容
command_line /usr/local/nagios/libexec/process_perfdata.pl
php页面出图需要在模板或者服务或者主机里面添加process_perf_data=1才会出图
3.在hosts.cfg里的主机标签或者模板里面加上 action_url /nagios/pnp/index.php?host=$HOSTNAME$,让主机出图
4.在services.cfg里的服务标签或者模板里加上action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$,让服务出图