设为首页 收藏本站
查看: 2216|回复: 0

一步步实现Nagios监控linux主机及飞信报警

[复制链接]
YunVN网友  发表于 2019-1-16 10:29:45 |阅读模式
一步步实现Nagios监控linux主机及飞信报警

    上篇文章介绍了在linux主机上架设nagios监控服务,并对windows主机进行服务状态变化的监控,这次我们继续上次内容。
     首先实现nagios服务对其他linux主机的监控,其次实现当被监控的mysql服务掉线时提供飞信报警机制
一、下面就进入对其它linux主机实现nagios监控的配置
在被监控端的linux主机上
1、先添加nagios用户来执行此服务
   useradd nagios
2、为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz 插件  


  • tar zxf nagios-plugins-1.4.15.tar.gz  
  •    cd nagios-plugins-1.4.15
  •    ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  •    make
  •    make install

3、编译安装nrpe-2.12.tar.gz   


  • tar -zxvf nrpe-2.12.tar.gz
  •    cd nrpe-2.12
  •    (注:在执行下步之前必须保证这个主机上已经安装了openssl、openssl-devel 否则在编译
  •     的时候将提示有不能找到ssl头文件的错误,导致编译无法进行)
  •     ./configure   
  •     make all
  •     make install-plugin
  •     make install-daemon
  •     make install-daemon-config

4、对nrpe的配置文件/usr/local/nagios/etc/nrpe.cfg进行配置
    vim /usr/local/nagios/etc/nrpe.cfg



  • allowed_hosts=192.168.0.1 (nagios服务器的IP,即允许这个IP来读取有关数据)

5、检测配置文件的语法并启动服务
   /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
   如果没有任何提示则表示语法正确并已经启动了该服务
   到此我们在被监控的linux主机上的配置已经完成
Nagios服务端配置:
1、安装NRPE   


  • tar xvf nrpe-2.12.tar.gz
  •    cd nrpe-2.12
  •   (注:同样,在执行下步之前必须保证这个主机上已经安装了openssl-devel、openssl,否
  •     则编译将出错)
  •    ./configure   
  •    make all
  •    make install-plugin

2、配置nagios的服务命令文件/var/www/nagios/etc/objects/commands.cfg定义外部构件nrpe
   vim /var/www/nagios/etc/objects/commands.cfg
  添加如下内容:


  • #check nrpe
  • define command{
  •         command_name check_nrpe
  •         command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  •         }

3、由于此服务的配置文件中被没有关于监控linux主机的配置文件,所以我们要自己定义并创建
   在/etc/nagios.cfg中定义被监控的linux主机的配置文件的名字及位置
   vim /etc/nagios.cfg
   添加如下内容
   cfg_file=/var/www/nagios/etc/objects/mylinux.cfg  指定我们定义的被监控linux主机的配置文件名字和位置
   然后我们就要到定义的位置创建这个文件了
   vim /var/www/nagios/etc/objects/mylinux.cfg
   添加如下内容   


  • define host{
  •           use           linux-server
  •           host_name     mylinux
  •           alias         mylinux
  •           address       192.168.0.200(被监控的linux主机的IP,这个是我的)
  •             }
  • define service{
  •          use                  generic-service
  •          host_name            mylinux
  •          service_description  check-swap
  •          check_command        check_nrpe!check_swap
  •                }
  • define service{
  •          use                  generic-service
  •          host_name            mylinux
  •          service_description  check-load
  •          check_command        check_nrpe!check_load
  •                 }
  • define service{
  •          use                  generic-service
  •          host_name            mylinux
  •          service_description  check-disk
  •          check_command        check_nrpe!check_had1
  •                }
  • define service{
  •          use                  generic-service
  •          host_name            mylinux
  •          service_description  check-users
  •          check_command        check_nrpe!check_users
  •                }
  • define service{
  •          use                   generic-service
  •          host_name             mylinux
  •          service_description   otal_procs
  •          check_command         check_nrpe!check_total_procs
  •                }  

    保存退出
    修改这个文件的属主、属组
    chown nagios:nagios mylinux.cfg
    检查我们创建的文件是否有语法错误:
    nagios -v /var/www/nagios/etc/objects/mylinux.cfg

4、重启nagios服
    service ngios restart
   好了,关于监控linux主机的配置到此为止
5、我们查看nagios是否监控到了mylinux,显示如图:


好了,我们监控其他linux主机已经实现了,关于nagios对其它linux主机的监控配置到此为止


Nagios监控MySQL服务及飞信报警
   上面我们进行了相关主机监控的配置,但是我们只能通过查看nagios才能知道我们所监控主机的服务是否在线可用,这和我们在实际应用中的作用还有一定的差距,下面我们就来实现nagios的报警机制,即使我们不查看nagios,只要我们所监控的服务掉线了,nagios就给我们发飞信开提示我们。

    我们通过监控本机的mysql服务的在线情况来实现这个实验:
nagios监控mysql服务器:

1、 建立专用数据库:
我们通过让nagios监控mysql服务中的一个特定的数据库的在线状态来实现对mysql服务在线状态的监控,

创建这个数据库,并对其进行相应的配置



  • mysql -uroot -p123456
  • mysql> create database nagios;  
  • mysql> grant select on nagios.* to nagios@'%' identified by 'nagios';  
  • mysql> flush privileges;

2、查看/var/www/nagios/libexec/check_mysql 这个二进制文件是否存在,如果存在就
继续下面的操作,如果不存在就重新编译安装nagios-plugins,具体方法在上一篇有关nagios的文章中,编译时一定要指明--with-mysql.

   

   对check-mysql这个二进制文件进行测试,看是否能够读取数据库状态信息
   /var/www/nagios/libexec/check_mysql -H 192.168.1.200 -u nagios -d nagios -p 123qweasd
    Uptime: 970348  Threads: 1  Questions: 684584  Slow queries: 3  Opens: 672       Flush tables: 1  Open tables: 369  Queries per second avg: 0.705

    如果输出上面的信息,则表示能够读取nagios这个数据库的状态
3、在定义监控命令的文件/var/www/nagios/etc/objects/command.cfg里增加插件命令:
   vim  /var/www/nagios/etc/objects/command.cfg
   添加如下内容:   


  • #check mysql  
  • define command{  
  • command_name check_mysql  
  • command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagios -p nagios  
  • }

4、定义服务:
  在/var/www/nagios/etc/objects/localhost.cfg 中添加如下内容    


  • define service {  
  •         use                             local-service
  •         host_name                       localhost
  •         service_description             msyql
  •         check_command                   check_mysql  监控这个服务的命令
  •         notifications_enabled           1            对这个服务开启监控
  •         }

    OK,我们可以到nagios的“servers”中查看是否监控到了这个服务,显示如下:



    既然当服务掉线的时候要使用飞信报警,接下来就对飞信进行配置,来实现飞信报警机制     
     
    准备飞信的客户端和库文件:
     fetion  libACE-5.7.2.so  libACE_SSL-5.7.2.so  libcrypto.so.4  libssl.so.4
1、将飞信的客户端加入到/usr/bin/中,并添加执行权限
   mv fetion /usr/bin
   chmod +x /usr/bin/fetion
2、将飞信的库文件加入到系统的库文件中
   mv lib* /usr/lib/
3、测试飞信能否成功发送信息
   fetion --mobile 15003880800 --pwd 123qweQWE(飞信密码) --to 15003880800(电话号码) --msg-tpye=0  --msg-utf8 $HOSTNAME
   如果出现一大片的乱码信息,表示飞信连接成功,这一大片的乱码是飞信的验证码图片,这个验证码图片在图形界面下才能显示出来,只有第一次使用的时候才会用到验证码,这个图片的位置在/usr/bin下,我们输入相应的验证码即可。
  测试成功之后,就继续进行
4、修改nagios的报警配置文件/var/www/nagios/etc/objects/ templates.cfg,修改报警机制,将email改成fetion
   vim /var/www/nagios/etc/objects/templates.cfg 修改结果如下
   


  • define contact{
  •         name                            generic-contact (监控及联系方式模版名称,在其他文件中可以引用)         
  •         service_notification_period     24x7  对服务的监控时间段                  
  •         host_notification_period        24x7  对主机的监控时间段                  
  •         service_notification_options    w,u,c,r,f,s 处于这些状态的服务能够触动报警通知            
  •         host_notification_options       d,u,r,f,s 处于这些状态的主机能够触动报警通知         
  •         service_notification_commands   notify-service-by-fetion 服务通知报警的方式
  •         host_notification_commands      notify-service-by-fetion 主机通知报警的方式
  •         register                        0                        
  •         }

5、修改命令文件/var/www/nagios/etc/objects/commands.cfg
   vim /var/www/nagios/etc/objects/commands.cfg 添加如下内容



  • define command{
  •        command_name notify-service-by-fetion
  •        command_line      /usr/bin/fetion --mobile 15003880800 --pwd 123qweQWE --to 15003880800 --msg-tpye=0  --msg-utf8="$HOSTNAME"
  •               }(在飞信报警的命令中可以使用变量,这只是最简单的飞信报警命令设定)

6、重启nagios服务
   service nagios restart
    到此为止我们我们对mysql服务的飞信报警,已经配置完成了,现在我们可以关闭mysql服务,看你是否收到了我们的nagios发送的飞信。
   Nagios是一个强大的状态变化监控报警软件,其功能远远大于此,需要各位自己去探索他其他的功能了




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663902-1-1.html 上篇帖子: nagios实现网络监控并实现飞信报警 下篇帖子: nagios 的安装与配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表