您的位置:首页 > 移动开发 > IOS开发

nagios

2016-02-23 19:25 232 查看
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$,让服务出图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: