一,实验环境,

1,监控端:希望用网页界面来显示监控结果,因此需要安装apache和php,如果希望将数据存储到数据库中还需要安装mysql。centos 6.3 64,nrpe-2.13.tar.gz, nagios-3.4.1.tar.gz
nagios-plugins-1.4.16.tar.gz。

二,配置安装监控端:

1,安装环境,

  1. # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql

  2. 由于我这是服务器是从数据库。因此少安装了mysql-server,mysql已经编译好了,如果你主机上没有mysql则可以执行下面这条命令

  3. # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

  4. # yum -y groupinstall 'Development tools'

2,添加nagios运行行需要用户和组

  1. # groupadd  nagcmd 这个用户组用于从web接口执行外部命令

  2. # useradd -G nagcmd nagios ,不能加-s /sbin/nologin,下面启动nagios服务需要用到,如果加了

  3. -s /sbin/nogloin启动服务时会提示Starting nagios:This account is currently not available.

  4. # passwd nagios

  5. 把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:

  6. # usermod -a -G nagcmd apache

三,编译nagios

  1. # tar zxf nagios-3.4.1.tar.gz

  2. # cd nagios

  3. # ./configure --with-command-group=nagcmd --enable-event-broker

  4. # make all

  5. # make install

  6. # make install-init

  7. # make install-commandmode

  8. # make install-config

  9. # make install-webconf  在/etc/httpd/conf.d/生成了nagios.conf

  10. # cd /usr/local/nagios

  11. # ls

  12. bin  etc  libexec  sbin  share  var 如果有这个五个目录则nagios安装成功

  13. #创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:

  14. # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

四,编译nagios-plugin

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

  1. # tar zxf nagios-plugins-1.4.16.tar.gz

  2. # cd nagios-plugins-1.4.16

  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

  4. # make

  5. # make install

  6. 如果出现下面错误则需要安装 yum -y install openssl openssl-devel

  7. check_http.c:312: error: ?.sl_version?.undeclared (first use in this function)

  8. check_http.c:312: error: (Each undeclared identifier is reported only once

  9. check_http.c:312: error: for each function it appears in.)

  10. make[2]: *** [check_http.o] Error 1

  11. make[2]: Leaving directory `/root/nagios-plugins-1.4.16/plugins'

  12. make[1]: *** [all-recursive] Error 1

  13. make[1]: Leaving directory `/root/nagios-plugins-1.4.16'

  14. make: *** [all] Error 2

  15. #make clean

  16. #make && make install

五、配置并启动Nagios

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:

# chkconfig --add nagios

# chkconfig nagios on

(2)检查其主配置文件的语法是否正确:

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

(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:

# service nagios start

#启动http服务 service httpd start

# /etc/init.d/iptables stop

(4)配置selinux

如果系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。

#setenforce 0 表示暂时关闭

如果想完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“forceing”修改为“disabled”即可,但是需要重启。

当然,也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:

# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin

# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)通过web界面查看nagios:192.168.1.15是我监控端的IP.

http://192.168.1.15/nagios

登录时需要指定前面设定的web认证帐号和密码。

打开网页如果看到:HTTP WARNING: HTTP/1.1 403Forbidden

因为nagios监控/var/www/html/下面的index.html文件,若没有就会提示错误,创建一个文件即可!

echo "welcome" > /var/www/html/index.html

(6)Nagios的主配置文件

1,Nagios的主配置文件/usr/local/nagios/etc/nagios.cfg,其语法非常简洁,通常#开头的行为注释行,而参数的设置格式为<parameter>=<value>;其中,有些参数是可以重复出现的。其中常用的参数说明如下:

log_file: 设定Nagios的日志文件;

cfg_file: Nagios对象定义的相关文件,此参数可重复使用多次以指定多个文件;

cfg_dir:  设定Nagios对象定义的相关文件所在的目录,此目录中的所有文件都会被作为对象定义的文件;此参数可重复使用多次以指定多个目录;

resource_file: 设定Nagios附加的宏定义的相关文件;

status_file: 设定Nagios存储所有主机和服务当前状态信息的文件;

status_update_interval: 设定status_file指定的文件中状态信息的更新频率;

service_check_timeout: 设定服务检测的超时时间,默认为60秒;

host_check_timeout: 设定主机检测的超时时间,默认为30秒;

notification_timeout: 设定通知信息发送尝试的超时时间,默认为30秒;

2、resource_file和宏定义

在主配置文件中,参数resource_file用于定义所有用户变量(即“宏”)的存储文件,它用于存储对象定义中的可以访问的额外信息,如访问某服务的密码等;因此,这些信息通常都是些敏感数据,一般不允许通过Web接口来访问。此文件中可以定义的宏可多达32个,它们分别为$USER1$,$USER2$...$USER32,这些宏一般在check命令中引用。通常情况下$USER1$用于引用Nagios插件所在目录这个路径信息,因此,一般不建议修改其值。

3,Nagios事先定义了许多宏,它们的值通常依赖于其上下文。如下:

HOSTNAME: 用于引用host_name指定所定义的主机的主机名;每个主机的主机名都是唯一的;

HOSTADDRESS: 用于引用host对象中的address指令的值,它通常可以为IP地址或主机名;

HOSTDISPLAYNAME: 用于引用host对象中alias指令的值,用以描述当前主机,即主机的显示名称;

HOSTSTATE:某主机的当前状态,为UP,DOWN,UNREACHABLE三者之一;

HOSTGROUPNAMES: 用于引用某主机所属的所有主机组的简名,主机组名称之间以逗号分隔;

LASTHOSTCHECK:用于引用某主机上次检测的时间和日期,Unix时间戳格式;

LISTHOSTSTATE:用于引用某主机前一次检测时的状态,为UP,DOWN或UNREACHABLE三者之一;

SERVICEDESC: 用于引用对应service对象中的desccription指令的值;

SERVICESTATE: 用于引用某服务的当前状态,为OK,WARNING,UNKOWN或CRITICAL四者之一;

SERVICEGROUPNAMES: 用于引用某服务所属的所有服务组的简名,服务组名称之间以逗号分隔;

CONTACTNAME: 用于引用某contact对象中contact_name指令的值;

CONTACTALIAS: 用于引用某contact对象中alias指令的值;

CONTACTEMAIL: 用于引用某contact对象中email指令的值;

CONTACTGROUPNAMES: 用于引用某contact所属的所有contact组的简名,contact组名称之间以逗号分隔;

4,Nagios 3还支持自定义宏,只是它的定义和使用方式比较独特。管理员可以在某类型对象的定义中使用额外的指令,并能够在命令中使用特别格式的宏来引用此指令的值。其引用方式根据对象类型的不同也有所不同,具体如下:

$_HOST<variable>$ – 引用在主机对象中定义的指令的值;

$_SERVICE<variable>$ – 引用在服务对象中定义的指令的值;

$_CONTACT<variable>$ – 引用在联系人对象中定义的指令的值;

六、基于NRPE监控远程Linux主机

1,Nagios监控远程主机的方法有多种,其方式包括SNMP、NRPE、SSH和NCSA等。这里介绍其通过NRPE监控远程Linux主机的方式。

2,NRPE(Nagios Remote Plugin Executor)是用于在远端服务器上运行检测命令的守护进程,它用于让Nagios监控端基于安装的方式触发远端主机上的检测命令,并将检测结果输出至监控端。而其执行的开销远低于基于SSH的检测方式,而且检测过程并不需要远程主机上的系统帐号等信息,其安全性也高于SSH的检测方式。

2、安装配置被监控端

1)先添加nagios用户

# useradd -s /sbin/nologin nagios

2)NRPE依赖于nagios-plugins,因此,需要先安装

  1. # tar zxf nagios-plugins-1.4.16.tar.gz

  2. # cd nagios-plugins-1.4.16

  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

  4. # make all

  5. # make instal

3)安装NRPE

  1. # tar -zxvf nrpe-2.13.tar.gz

  2. # cd nrpe-2.13.tar.gz

  3. # ./configure --with-nrpe-user=nagios \

  4. --with-nrpe-group=nagios \

  5. --with-nagios-user=nagios \

  6. --with-nagios-group=nagios \

  7. --enable-command-args \

  8. --enable-ssl

  9. # make all

  10. # make install-plugin

  11. # make install-daemon  安装成守护进程

  12. # make install-daemon-config  守护进程的配置文件

  13. 修改nrpe配置文件

  14. #vim /usr/local/nagios/etc/nrpe.cfg

  15. allowed_hosts=192.168.1.15 监控端的IP

4)启动NRPE

  1. # /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

为了便于NRPE服务的启动,可以将如下内容定义为/etc/init.d/nrped脚本:

  1. #!/bin/bash

  2. # chkconfig: 2345 88 12

  3. # description: NRPE DAEMON

  4. NRPE=/usr/local/nagios/bin/nrpe

  5. NRPECONF=/usr/local/nagios/etc/nrpe.cfg

  6. case "$1" in

  7. start)

  8. echo -n "Starting NRPE daemon..."

  9. $NRPE -c $NRPECONF -d

  10. echo " done."

  11. ;;

  12. stop)

  13. echo -n "Stopping NRPE daemon..."

  14. pkill -u nagios nrpe

  15. echo " done."

  16. ;;

  17. restart)

  18. $0 stop

  19. sleep 2

  20. $0 start

  21. ;;

  22. *)

  23. echo "Usage: $0 start|stop|restart"

  24. ;;

  25. esac

  26. exit 0

七、在监控端安装NRPE

  1. # tar -zxvf nrpe-2.13.tar.gz

  2. # cd nrpe-2.13.tar.gz

  3. # ./configure --with-nrpe-user=nagios \

  4. --with-nrpe-group=nagios \

  5. --with-nagios-user=nagios \

  6. --with-nagios-group=nagios \

  7. --enable-command-args \

  8. --enable-ssl

  9. # make all

  10. # make install-plugin

八,使用nrpe监控Linux主机

  1. 1)在监控端,测试远程主机(被监控端)

  2. #cd /usr/local/nagios/libexec/

  3. # ./check_nrpe -H 192.168.1.12

  4. NRPE v2.13

  5. 表示命令能够正常监控

  6. 2)定义如何监控远程主机及服务:

  7. 通过NRPE监控远程Linux主机要使用chech_nrpe插件进行,其语法格式如下:

  8. check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]

  9. #cd /usr/local/nagios/etc/objects

  10. #vim command.cfg

  11. 3)定义监控远程Linux主机的命令:

  12. define command

  13. {

  14. command_name check_nrpe

  15. command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c $ARG1$

  16. }

  17. 4)定义被监控机的主机

  18. #vim  linuxhost.cfg

  19. define host{

  20. use             linux-server

  21. host_name       linuxhost

  22. alias           My linux host

  23. address         192.168.1.12

  24. }

  25. define service{

  26. use                     generic-service

  27. host_name               linuxhost

  28. service_description     CHECK USERS

  29. check_command           check_nrpe!check_users

  30. }

  31. define service{

  32. use                     generic-service

  33. host_name               linuxhost

  34. service_description     load

  35. check_command           check_nrpe!check_load

  36. }

  37. define service{

  38. use                     generic-service

  39. host_name               linuxhost

  40. service_description     disk sda1

  41. check_command           check_nrpe!check_sda1

  42. }

  43. define service{

  44. use                     generic-service

  45. host_name               linuxhost

  46. service_description     Zombile procs

  47. check_command           check_nrpe!check_zombie_procs

  48. }

  49. define service{

  50. use                     generic-service

  51. host_name               linuxhost

  52. service_description     total procs

  53. check_command           check_nrpe!check_total_procs

  54. }

  55. check_nrpe!后面接的命令是在 /usr/local/nagios/etc/nrpe.cfg里写定义好的命令,如下面只有五个,中括号内的为命令名

  56. command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

  57. command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

  58. command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

  59. command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

  60. command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

  61. 5)启用linuxhost.cfg文件

  62. vim /usr/local/nagios/etc/nagios.cfg添加一行

  63. cfg_file=/usr/local/nagios/etc/objects/linuxhost.cfg

  64. 检查语法错误:

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

  66. 没有提示错误,则下一步

  67. service  nagios restart

  68. 打开http://192.168.1.15/nagios

九,使用check_nt监控windows主机

在window主机上需要先安装nsclient,根据自己的系统下载。
http://nsclient.org/nscp/downloads,在安装过程选择默认。安装到这里需要填写监控端的ip,与监控这台主机的密码。把下面都选中所支持的都选中。

安装完之后在window命令行窗口查看没有没有启动5666和12489端口,如果有表示正常。

十,在监控端操作,用命令能否正常监控被监控端,192.168.1.5为被监控端

  1. #cd /usr/local/nagios/bin/

  2. #./check_nt -h 查看帮助

  3. #./check_nt -H 192.168.1.5 -v UPTIME

  4. 没有指定端口,而默认的端口是1248

  5. CRITICAL - Socket timeout after 10 seconds

  6. # ./check_nt -H 192.168.1.5 -v UPTIME -p 12489

  7. 没有指定密码

  8. NSClient - ERROR: Invalid password.

  9. # ./check_nt -H 192.168.1.5 -v UPTIME -p 12489 -s admin

  10. System Uptime - 0 day(s) 0 hour(s) 24 minute(s)

  11. # ./check_nt -H 192.168.1.5 -p 12489 -v CPULOAD -w 80 -c 90  -l 5,80,90 -s admin

  12. CPU Load 10% (5 min average) |   '5 min avg Load'=10%;80;90;0;100

  13. 一般信息             |  资源的性能信息

  14. 他们之间输出要用|隔开,如果自己开发插件必须使用这种格式,如果

  15. 只输出一般信息一行就行。

  16. -w 警告比例 -c 紧急比例 -l 表示过去5分钟的平均值,80%为警告,90%为紧急

  17. # ./check_nt -H 192.168.1.5 -p 12489 -v USEDDISKSPACE -w 80 -c 90 -l C -s admin

  18. C:\ - total: 50.01 Gb - used: 18.94 Gb (38%) - free 31.07 Gb (62%) | 'C:\ Used Space'=18.94Gb;40.01;45.01;0.00;50.01

十一,在监控端定义好被监控端的主机,服务,命令
(1)定义命令

  1. cd /usr/local/nagios/etc/objects

  2. vim commands.cfg 在最后新增下列

  3. define command{

  4. command_name    check_nt

  5. \\定义命令的名字,可以跟插件的名字相同,

  6. command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s admin -v $ARG1$ $ARG2$

  7. \\$..$表示系统内置的宏,也就是所谓的变量

  8. \\$USER1$表示插件所在的目录

  9. \\-H 指定主机地址

  10. \\$HOSTADDRESS$ 应用到哪个主机,就用哪个主机的地址

  11. \\$ARG1$传递的参数

  12. \\-s指定密码,如果有需要加,如上面安装时设置了密码为admin

  13. }

(2)定义主机

  1. #cd /usr/local/nagios/etc/objects

  2. vim window.cfg 修改原来默认的,将主机组一段注释。

  3. define host{

  4. use             windows-server  ; 使用模板,分号后面的表示注释

  5. host_name       winhost    ; 在nagios网页显示的主机名,修改成自己服务器的编号最好,方便记忆

  6. alias           My Windows host      ; A longer name associated with the host

  7. address         192.168.1.5    ; 被监控机的IP

  8. }

  9. define service{

  10. use                     generic-service

  11. host_name               winhost

  12. service_description     NSClient++ Version

  13. check_command           check_nt!CLIENTVERSION //传递给-v 的参数第一个参数

  14. }

  15. define service{

  16. use                     generic-service

  17. host_name               winhost

  18. service_description     Uptime

  19. check_command           check_nt!UPTIME

  20. }

  21. define service{

  22. use                     generic-service

  23. host_name               winhost

  24. service_description     CPU Load

  25. check_command           check_nt!CPULOAD!-l 5,80,90 //传递两过参数!CPULOAD 和-! -l 5,80,90

  26. }

  27. :.,$s@winserver@winhost@g  表示在当行到最后后,将所有的winserver替换成winhost

(3)启用windows配置文件

  1. #cd /usr/local/nagios/etc/

  2. #vim nagios.cfg

  3. # Definitions for monitoring a Windows machine

  4. cfg_file=/usr/local/nagios/etc/objects/windows.cfg

  5. 将此行的#删除,启用windows配置文件

  6. 由于刚才修改过文件,最好检查配置文件语法有没有错误

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

  8. Reading configuration data...

  9. Read main config file okay...

  10. Processing object config file '/usr/local/nagios/etc/objects/commands.cfg'...

  11. Warning: Duplicate definition found for command 'check_nt' (config file '/usr/local/nagios/etc/objects/commands.cfg', starting on line 240)

  12. 表示重复定义了一个check_nt命令,在commands.cfg中有一个错误,240行

  13. Error: Could not add object property in file '/usr/local/nagios/etc/objects/commands.cfg' on line 241.

  14. Error processing object config files!

  15. 在command.cfg中本来已经有一个check_nt,因此需要将其后面添加的命令注释。在原来的check_nt的命令行添加

  16. -s admin,因为在安装时设置了密码

  17. define command{

  18. command_name    check_nt

  19. command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s admin

  20. }

  21. 提示错误,因此按刚才的提示修正好错误

  22. #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg继续检查一次

  23. Total Warnings: 0

  24. Total Errors:   0

  25. Things look okay - No serious problems were detected during the pre-flight check

  26. 提示ok

  27. 重新启动nagios服务

  28. #service nagios restart

  29. #打开http://192.168.1.15/nagios可以看到刚才的监控的winhost

十二,监控mysql与http

  1. # ./check_http -H 192.168.1.12 先测试192.168.1.12上面的web服务 #cd /usr/local/nagios/etc/objects

  2. 1)监控http

  3. 定义命令

  4. 在commands.cfg已经存在检测命令,因此无需添加,只需要在linuxhost.cfg文件定义好主机

  5. vim commands.cfg

  6. # 'check_http' command definition

  7. define command{

  8. command_name    check_http

  9. command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

  10. }

  11. 定义服务

  12. vim linuxhost.cfg  在最后一行再添加一个服务

  13. define service{

  14. use                     generic-service

  15. host_name               linuxhost

  16. service_description     web service

  17. check_command           check_http

  18. }

  19. #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  20. # service nagios restart

  21. 2)检测mysql

  22. vim commands.cfg 添加如下行

  23. define command {

  24. command_name check_mysql

  25. command_line  $USER1$/check_mysql -H $HOSTAADDRESS$ -u $ARG1$ -p $ARG2$

  26. }

  27. vim linuxhost.cfg 添加如下行 由于此文件存储了mysql的用户名与密码,需要额外小心

  28. define service{

  29. use                     generic-service

  30. host_name               linuxhost

  31. service_description     mysql server

  32. check_command           check_mysql  -uroot -p123456

  33. }

  34. # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  35. # service nagios restart

十三,定义向管理员发起通知

  1. #cd /usr/local/nagios/etc/objects

  2. [root@test1 objects]#vim templates.cfg

  3. define service{

  4. name                            local-service

  5. use                             generic-service 表示继承了generic-service里的全部属性,因此服务资源监控的联系人还是admins组

  6. max_check_attempts              4

  7. normal_check_interval           5

  8. retry_check_interval            1

  9. register                        0

  10. }

  11. 查看contacs.cfg里定义的

  12. [root@test1 objects]# vim  contacts.cfg

  13. define contact{

  14. contact_name       nagiosadmin

  15. use                generic-contact  继承generic-contact里的属性,打开templates.cfg,generic-contact里定义什么时间接收邮件等一些属性

  16. alias              Nagios Admin

  17. email              nagios@qq.com 会发送到这个邮箱,这个邮箱可以修改成互联网的上的,但是本机需要有smtp客户端,

  18. 查看是否有netstat -tan |grep 25 centos 6.0版本的系统已经改用postfix
               }

  19. define contactgroup{

  20. contactgroup_name       admins

  21. alias                   Nagios Administrators

  22. members                 nagiosadmin

  23. }

  24. [root@test1 objects]# vim commands.cfg 查看generic-service里的notify-host-by-email与notify-service-by-email

  25. define command{

  26. command_name    notify-host-by-email

  27. command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

  28. }

  29. # 'notify-service-by-email' command definition

  30. define command{

  31. command_name    notify-service-by-email

  32. command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

  33. }

十四,定义飞信改送通知。http://blog.51yip.com/server/1397.html这个大师写得不借,我也按他的方式安装的。飞信命令已经上传至附件中,还需要下载飞信的依赖的库文件。如果不想下载,则到下载中心,下载,我已将飞信和飞信命令都上传。解压完后,再上传到linux中,
wget  http://www.it-adv.net/fetion/cenos54X64_20101113.rar
wget http://www.it-adv.net/fetion/linuxso_20101113.rar

如果到下载中心下载我上传的飞信压缩包,则按下面步骤安装飞信

  1. #在fetion目录中应该有fetion程序和lib目录

  2. #mv fetion /usr/local/

  3. # vim /etc/ld.so.conf.d/fetion添加一行

  4. /usr/local/fetion/lib

  5. # ldconfig /usr/local/fetion/lib/ 后面每次执行一次都会下面的提示,不用管。

  6. ldconfig: /usr/local/fetion/lib/libstdc++.so.6 is not a symbolic link

  7. ldconfig: /usr/local/fetion/lib/libpamc.so.0 is not a symbolic link

  8. ldconfig: /usr/local/fetion/lib/libpam_misc.so.0 is not a symbolic link

  9. ldconfig: /usr/local/fetion/lib/libcap.so.1 is not a symbolic link

  10. ldconfig: /usr/local/fetion/lib/libcom_err.so.2 is not a symbolic link

  11. ldconfig: /usr/local/fetion/lib/libpcre.so.0 is not a symbolic link

  12. ldconfig: /usr/local/fetion/lib/libpam.so.0 is not a symbolic link

  13. ldconfig: /usr/local/fetion/lib/ld-linux.so.2 is not a symbolic link

  14. #chown nagios:nagios /usr/local/fetion

  15. # chmod +x /usr/local/fetion/fetion

  16. # /usr/local/fetion/fetion

  17. -bash: /usr/local/fetion/fetion: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

  18. #yum -y install ld-linux.so.2

  19. #ldconfig /usr/local/fetion/lib

  20. # /usr/local/fetion/fetion

  21. /usr/local/fetion/fetion: error while loading shared libraries: libACE-5.7.2.so: cannot open shared object file: No such file or directory

  22. #yum -y install openssl-devel

  23. #ldconfig /usr/local/fetion/lib

  24. # /usr/local/fetion/fetion

  25. /usr/local/fetion/fetion: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

  26. #yum -y install libgcc_s.so.1

  27. #ldconfig /usr/local/fetion/lib

  28. # /usr/local/fetion/fetion

  29. /usr/local/fetion/fetion: error while loading shared libraries: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory

  30. #yum -y install libgssapi_krb5.so.2

  31. #ldconfig /usr/local/fetion/lib

  32. # /usr/local/fetion/fetion

  33. /usr/local/fetion/fetion: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

  34. #yum -y install libz.so.1

  35. #ldconfig /usr/local/fetion/lib

  36. #/usr/local/fetion 显示这个表示飞信能正常使用

  37. Usage:

  38. --mobile=[mobile]

  39. --sid=[sid]

  40. --pwd=[pwd]

  41. --config=[config file] *format:index mobile password

  42. --index=[index no in config file,refer to sample.conf]

  43. --debug  *debug mode on

  44. --hide  *login fetion in hidden state

  45. --to=[mobile/sid]

1)飞信安装好后,先测试能否发送,现在飞信可以用联通号注册,但是这个飞信程序只支持移动号码,因此需要用移动号码的飞信来测试。先送给自己试下,再给自己的飞信好友发送。

  1. [root@test1 ~]# /usr/local/fetion/fetion --mobile=1361263XXXX--pwd=xxxxx--to=1361263xxxx--msg-utf8="test"

2)上面ok,则修改nagios

  1. cd /usr/local/nagios/etc/objects/

  2. 1,定义命令 vim command.cfgs 添加下面内容

  3. define command {

  4. command_name notify-host-by-fetion

  5. command_line    /usr/local/fetion/fetion --mobile=1361265xxxx--pwd=123456--msg-utf8="$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$"--to=$CONTACTPAGER$

  6. }

  7. define command {

  8. command_name notify-service-by-fetion

  9. command_line    /usr/local/fetion/fetion --mobile=1361265xxxx--pwd=123456--msg-utf8=" $NOTIFICATIONTYPE$ Service: $SERVICEDESC$ Host: $HOSTALIAS$ Address: $HOSTADDRESS$ State: $SERVICESTATE$ Date/Time: $LONGDATETIME$ Additional Info: $SERVICEOUTPUT$"--to=$CONTACTPAGER$

  10. }

  11. 注解:$CONTACTNAME$: 用于引用某contact对象中contact_name指令的值;也就是contacts.cfg定义的contact_name定义命令,当然也可将$CONTACTPAGER$直接修改成手机号码

  12. 2,定义联系人

  13. vim contacts.cfg

  14. define contact{

  15. contact_name                    nagiosadmin             ; Short name of user

  16. use                             generic-contact         ; Inherit default values from generic-contact template (defined above)

  17. alias                           Nagios Admin            ; Full name of user

  18. email                           nagios@qq.com      ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

  19. pager                           123478934

  20. 3,修改模板

  21. vim templates.cfgs

  22. 在defind contacat中  下面两行分别添加fetion通知

  23. service_notification_commands   notify-service-by-email,notify-service-by-fetion

  24. host_notification_commands      notify-host-by-email,notify-host-by-fetion

3,重启nagios,service nagios restart 将一台虚拟机挂起,并测试。

附件:http://down.51cto.com/data/2361855

本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/1073818,如需转载请自行联系原作者

nagios 3.4.1监控window与linux,并实现飞信报警相关推荐

  1. window和linux和android进程内存CPU等监控软件

    1.面向window和linux和android三个平台. 2.线程可监控物理内存,虚拟内存,CPU和GPU等占用情况. 3.输出结果保存为exls或者csv可进行图形化分析 下载地址:下载地址

  2. nagios监控windows主机 linux主机

    一.NSclient++与nrpe nagios对windows的监控主要有两种方法,一种是NSclient++,另一种是通过nrpe的方式来达到监控目的 NSclient++与nrpe最大的区别就是 ...

  3. Nagios—服务和性能监控

    Nagios-服务和性能监控 简介: Nagios是一个监视系统运行状态和网络信息的监视系统.Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等. Nagios可运行在Linux ...

  4. nagios监控三部曲之——nagios实现飞信报警(3)

    本来nagios已经搭建成功,邮件报警也已经实现,但领导要求实时的监控系统,在问题出现时及时的处理,这样就要求我实时的登陆邮箱,但在很多的时候我没有办法一直登陆邮箱,而且我的手机是塞班系统,流量还很少 ...

  5. 15个有趣的工具和服务来监控您的Linux服务器

    30个有趣的工具和服务来监控您的Linux服务器 前言 Webmin Grafana on Prometheus Cockpit M/Monit Netdata Netdata Checkmk Ope ...

  6. zabbix 监控项自动发现过滤_Zabbix监控之配置Linux自动发现与自动注册报警

    1.关于linux客户端的部署上篇已经介绍不清楚的可以去看一下(Zabbix监控之agent和邮件报警配置) 1.1.一.配置自动发现: 1.1.1.1.1.打开Zabbix Web管理界面,创建Za ...

  7. linux window nginx性能,Nginx负载均衡搭建(Window与Linux)

    windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...

  8. window 与 linux 之间文件传输

    window 与 linux 之间文件传输 linux 上安装工具 安装命令:yum install lrzsz 1.linux to windows sz filename 2.windows to ...

  9. window难以实现的linux,工欲善其事必先利其器--几步实现window与linux之间的文件共享...

    现在很多人的学习和工作环境都是两台电脑,比如说我,一台电脑运行window,用于娱乐,另外一台电脑运行linux,用于学习.但是window与linux之间通信却不是很方便,一直特别sb的通过邮件在两 ...

最新文章

  1. 互联网刚刚年满50,发明它的那个人却「后悔」了
  2. stdio.h iostream.h iostream 三者
  3. C++.Templates学习总结归纳1
  4. java注释和注解_深入理解JAVA注解(Annotation)以及自定义注解
  5. sql(join on 和where的执行顺序)
  6. php源码怎样安装mysql_Linux下源码包安装mysql、apache以及php
  7. SET CONSTRAINTS DEFERRED | IMMEDIATE
  8. Web Uploader文件上传插件
  9. NSGA-II 算法详解
  10. Linux ALSA驱动之声卡的创建流程
  11. 计算机网络应用基础试卷B,计算机网络应用基础试卷
  12. html编辑个人信息页面,编辑个人信息.html
  13. 冷知识 - 你可能不知道的100个冷知识
  14. 树莓派软路由Openwrt
  15. 计算机图书封面也疯狂
  16. 豆瓣高分推荐:提升管理力,怎么能不看这6本书
  17. Spring之初见端倪——配置篇
  18. 谷歌浏览器为什么推荐使用搜狗搜索?知乎网友的脑回路真是……
  19. REXROTH力士乐比例阀4WRZE25W8-220-7X/6EG24N9K31/A1D3M
  20. Mac——技巧:笔记本如何关闭fn功能

热门文章

  1. 百问网七天物联网课程(第二天)
  2. Vue中图片的src不显示问题
  3. 郭东白:《从中台技术谈架构师的独立思考能力》
  4. readdir()函数:读取目录函数
  5. Persistence Context
  6. 网页设计中文乱码问题
  7. pandas中的数据对象Series
  8. Python基础之Linux基础入门(Ubuntu)
  9. zzulioj 2572: 红球还是黑球
  10. 华为交换机基本配置命令大全