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

nagios实现网络监控并实现飞信报警

[复制链接]

尚未签到

发表于 2019-1-16 10:28:36 | 显示全部楼层 |阅读模式
Nagios有个很搞笑中文翻译“难过死”,由此可以看出,他的配置不简单奥,呵呵
Nagios是一款遵循GPLv2的开源网络监控软件,可用来监控指定的多种系统的主机、服务,并可在它们的工作状态发生变化时通知管理员。
v1)监控网络服务(HTTPPOP3SMTPPINGMySQL)
v2)监控主机资源(磁盘空间利用率、内存利用率、CPU负载等)
v3)简洁的插件设计接口,使得用户可以轻松开发所需的检测脚本
v4)并行服务模式
v5)轻松描述网络结构,并且能够区辨宕机主机不可达
v6)通过邮件或用户自定义的方式将主机或服务的工作状态变化情况通知给管理员6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式)  可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
v7)自动日志滚动
v8)支持以冗余方式进行主机监控
v9)可以通过web方式直观的查看当前网络状态、通知和问题历史、日志文件等等,此组件为可选
Nagios通常是有一个主程序nagios和一个插件程序nagiox-plugins和是个可选的addon(NSCANSClient++NRPENDOUtils)Nagios的监控工作都是通过插件实现的,因此,NagiosNagios-plugins是服务器端工作所必须的组件。而四个ADDON
1NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
2NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)
3NSClient++:用来监控 Windows主机时安装在Windows主机上的组件
4NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理
这四个ADDON(附件)中,NRPENSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端
具体工作中,各个组件的调用如下图所示:




而接下来实现的过程就是基于这个图来实现的(该图来自马哥博客,详细可以见上面的网址)
首先介绍一下这个图片的整个工作流程,首先nagios是通过配置文件来驱动这个监控流程,因为所有的内容都是可以配置的,所以这也就非常灵活的,功能自然强大了,nagios主要通过各个配置文件之间的调度,以及插件的安装,来实现即使通信的,然后检测被检测机器的状态,主要是通过ping的机制来检测各个机器是否可达,然后按照一定的模块的驱动来实现指定的报警效果。
接下来就介绍整个安装及配置过程,并且实现飞信报警通知的功能:

一、安装一系列所依赖的软件包:
# yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server
添加nagios运行所需要的用户和组
# groupadd  nagcmd
# useradd  -m nagios
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache  //apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限

编译安装nagios
# tar zxf nagios-3.1.2.tar.gz
# cd nagios-3.1.2
#./configure --with-command-group=nagcmd  -–enable-event-broker
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
说明:第一个执行make install安装主要的程序、CGIHTML文件,第二步执行make install-init的步骤,他的作用是把nagios变成一个脚本,是nagios随系统开机启动,第三步执行make install-config就是把配置文件复制到nagios的安装目录,第四步make install-commandmode为外部命令访问nagios配置文件的权限,第五步创建nagiosweb程序的配置文件。当一切都准备完成之后,就会在/uer/local/nagios下生成5个目录如下图所示:

其中这几个目录的主要作用如下表所示

bin
Nagios执行程序所在目录,这个目录只有两个文件nagiosnagiostats
etc
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件和一个objects的目录,该目录中放的是一些模版,在做监控的时候主要就在这些模版中进行修改
sbin
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share
Nagios网页文件所在的目录
Var
Nagios日志文件、spid 等文件所在的目录


编辑nagios报警信息的邮件地址
#vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost       #这个是默认设置修改为
email                           nagiosadmin@localhost (注:这里可以不做修改)
为登录到nagiosweb页面创建一个用户
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
以上过程配置结束以后需要重新启动httpd
# service httpd restart

编译、安装nagios-plugins
nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件
# tar xf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql
# make
# make install
完成nagios-plugins的编译安装之后,就可以启动nagios
# chkconfig --add nagios
# chkconfig  nagios on
# export PATH=$PATH:/usr/local/nagios/bin/   修改一下环境变量,方便下面做nagios配置文件的检测
# ln -sv /usr/local/nagios/etc/nagios.cfg /etc/nagios.cfg
#nagios –v /etc/nagios.cfg  //检查配置文件无误后启动nagios
# service nagios start
Starting nagios: done.
OK,这个时候就可以在浏览器中输入对应的http://IP/nagios就可以登录到页面了,这里面使用的用户名和密码就是htpasswd 时候创建的用户和密码
进入界面之后,如下图所示:


上面显示的绿色的都是正常的,而红色的都是出现问题的主机

接下来我将做如何服务器如何使用飞信通知服务器出现了故障:
现在软件:
主软件:http://www.it-adv.net/fetion/downng/fetion20091117-linux.tar.gz
主程序:
http://bbs.it-adv.net/attachment.php?aid=43&k=b1e8997336d66ec8610adc2b790376a2&t=1299230237
库文件: http://www.it-adv.net/fetion/linuxso_20101113.rar
首先安装fetion的客户端,我这里是从网上down的,还有一些飞信执行需要的库文件

注意这里面的fetion客户端需要有执行的权限
#cd /feixin
#mv fetion  /usr/bin/
#cp lib* /usr/lib/
#ldconfig
#chmod +x /usr/bin/fetion
这里就可以使用 fetion进行一下简单的测试了,如下
#fetion --mobile 15290415659 --pwd yourpassword --to 15290415659 --msg-tpye=0  --msg-utf8 "hello"   //输入你的手机号码和飞信的密码,密码我这里就不显示了,呵呵
如果是第一次的话,会出现如下的内容,其实这是一个图片,也就是对飞信登录的一个验证码:

这个时候你需要登录到服务器的图形化界面,找到这个图形化界面,一般在飞信运行的二进制文件所在的目录下,然后在最后一行输入这个验证码上的信息,这样就OK啦!!

上面反黑的是我第一次发飞信的时候产生的验证码,输入后,以后发飞信就不用验证了。
这个我发到我手机上后,上面显示的是“飞信名:主机名”如“Ro: station78.example.com
如果我们上面的发飞信的命令最后面跟一个“error 你就会收到error,呵呵,你可以试一下。
这里只是简单的测试,接下来就是导入到nagios中去,让他及时监视服务器,然后发飞信。

编辑一下nagios的主配置文件nagios.cfg
#vim /usr/local/nagios/etc/nagios.cfg
注释掉cfg_file=/usr/local/nagios/etc/localhost.cfg
然后把下面几行的注释去掉:
cfg_file=/usr/local/nagios/etc/hosts.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
check_external_commands=0check_external_commands=1 这行的作用是允许执行在web界面下重启nagios、停止主机/服务检查等操作。把command_check_interval的值从默认的1改成command_check_interval=10s(根据自己的情况定这个命令检查时间间隔,不要太长也不要太短)。主配置文件要改的基本上就是这些,通过上面的修改,发现/usr/local/nagios/etc并没有文件hosts.cfg等一干文件,稍后就手动创建它们。
修改文件cgi.cfg
#vim /usr/local/nagios/etc/cgi.cfg
use_authentication=1
default_user_name=guest
修改commands.cfg文件,添加发飞信的命令
# vim /usr/local/nagios/etc/objects/commands.cfg
define command{
        command_name notify-service-by-fetion
        command_line      /usr/bin/fetion --mobile 152xxxxxxxx --pwd xxxxx  --to 152xxxxxxxx --msg-tpye=0  --msg-utf8 $HOSTNAME
}

当然你还可以定义监控时间,在配置文件中timeperiods.cfg中,可以按照自己的需要进行修改;
#vim /usr/local/etc/objects/ templates.cfg   找到如下内容进行修改
define contact{
        name                            generic-contact         ; The name of this contact template
        service_notification_period     24x7                    ; service notifications can be sent anytime
        host_notification_period        24x7                    ; host notifications can be sent anytime
        service_notification_options    w,u,c,r,f,s             ; send notifications for all service states, flapping events, and scheduled downtime events
        host_notification_options       d,u,r,f,s               ; send notifications for all host states, flapping events, and scheduled downtime events
        service_notification_commands   notify-service-by-email ; send service notifications via email
        host_notification_commands      notify-host-by-email    ; send host notifications via email
        register                        0                       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
        }
把报警方式修改为我们上面定义的使用飞信的机制来实现,注意这个名字一定要与定义的飞行名字相同notify-service-by-fetion
修改飞信可执行文件的属主和属组为nagios
# chown -R nagios.nagios /usr/bin/fetion
OK















运维网声明 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-663901-1-1.html 上篇帖子: nagios配置全攻略 下篇帖子: 一步步实现Nagios监控linux主机及飞信报警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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