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

一步步构建Nagios监控报警系统

[复制链接]

尚未签到

发表于 2019-1-16 10:26:44 | 显示全部楼层 |阅读模式
一步步构建Nagios监控报警系统

    Nagios是一款功能强大,性能稳定的开源的状态变化监控软件,其优良的特性征服了几乎所有的运维工程师,下面我们就具体了解一下nagios。  
    Nagios是一款遵循GPLv2的开源网络监控软件,可用来监控指定的多种系统的主机、服务,并可在它们的工作状态发生变化时通知管理员。
Nagios的功能及特性
1)监控网络服务(HTTP、POP3、SMTP、PING、MySQL等)
2)监控主机资源(磁盘空间利用率、内存利用率、CPU负载等)
3)简洁的插件设计接口,使得用户可以轻松开发所需的检测脚本
4)并行服务模式
5)轻松描述网络结构,并且能够区辨“宕机”和“主机不可达”
6)通过邮件或用户自定义的方式将主机或服务的工作状态变化情况通知给管理员6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式)  可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
7)自动日志滚动
8)支持以冗余方式进行主机监控
9)可以通过web方式直观的查看当前网络状态、通知和问题历史、日志文件等等,此组件为可选
Nagios的工作原理:
      Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)组成
Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON
(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)

(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件
(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理

这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端

Nagios各组件之间的调用关系:
      



Nagios的安装:
安装前的准备工作
(1)解决安装Nagios的依赖关系:
Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装:
yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server
(2)配置selinux
如果您的系统开启了selinux服务,则默认系统将拒绝nagios web cgi程序的运行,所以我们应检查系统是否开启了selinux
getenforce
如果上面命令的结果显示开启了selinux服务,通过下面的命令暂时性的将其关闭:
setenforce 0
如果想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
当然,我们可以通过以下方式将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
    但是为了实验能构成功我们还是关闭selinux

在当前主机上架设nagios的过程:
1、添加nagios运行所需要的用户和组:
     groupadd nagcmd
    useradd -m nagios
     usermod -a -G nagcmd nagios
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
usermod -a -G nagcmd apache
2、编译安装nagios:
tar zxf nagios-3.2.3tar.gz
cd nagios
./configure --with-command-group=nagcmd --enable-event-broker --prefix=/var/www/nagios
make all    将所有的编译环境都进行编译
make install
make install-init      编译安装开机启动程序
make install-config    编译安装配置文件
make install-commandmode   编译安装其命令
make install-webconf    编译安装web的配置文件,在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件,能够让我们使用web对其进行管理
    由此我们可以看出nagios的安装非常灵活,当我们需要哪个程序的时候可以有针对性的安装。
    创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
htpasswd -c /var/www/nagios/etc/htpasswd.users nagiosadmin
修改配置文件/etc/httpd/conf/httpd.conf,将httpd服务的默认网页路径改为:
  /var/www
以上过程配置结束以后需要重新启动httpd:
service httpd restart

3、编译、安装nagios-plugins
nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。
tar zxf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/var/www/nagios --with-mysql
在编译完成之后我们要仔细查看编译的过程,看是否有跳过mysql的警告语句,具体显示内容如下:

如果有,应首先确定mysql的库文件位置没有错,然后给编译的过程指定mysql库文件的位置,方法如下:
cp /usr/lib/mysql到/usr/lib/pkgconfig
指定之后重新执行  ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/var/www/nagios --with-mysql
编译完成之后我们还要查看编译过程,是否再次出现了跳过mysql的警告语句,如果还是有就拿出我们的杀手锏,方法如下
yum install mysql-devel -y  mysql的这个组件就是解决在编译时无法找到mysql的一些组件或是其他在编译中产生的怪异问题
   这步正确完成之后,就进行如下的步骤:
make
make install

4、配置并启动Nagios
(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
chkconfig --add nagios
chkconfig nagios on
(2)检查其主配置文件的语法是否正确:
/var/www/nagios/bin/nagios -v /var/www/nagios/etc/nagios.cfg
如果显示如下,则表示语法正确   

(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
service nagios start
  (4)通过web界面查看nagios:
http://192.168.0.82/nagios   这是主机的IP,根据自己主机的IP进行相应的修改
如果成功的话将出现如下内容,进行身份认证,输入我们之前设定的web认证帐号和密码:
     

如果一切顺利,成功登录后将显示如下部分画面

到此为止,nagios的监控端已经配置完成,现在我们只能进行当前主机的状态监控,如图


对被监控端的配置:
    被监控端的操作系统类型是很重要的,在开始的时候我们介绍了不同操作系统的被监控端应进行相应不同的的配置:   
如果被监控端是windows操作系统,我们采取如下配置:
首先关闭windows上的防火墙
1.  被监控端安装NSClient++-0.3.8-Win32.msi
在安装过程中只需要填写nagios服务的主机地址,并查看任务管理器中的进行是否已经开启:如图

2.  安装完成后修改配置文件NSC.ini把需要的库都打开,
找到配置文件的方法:
这个程序的配置文件默认为C:\Program Files\NSClient++下的NSC.ini文件
打开这个文件进行如下修改:
(1)、打开需要的库文件,将行的最前端带有“;”的,将这个符号删除即为打开。
      具体修改结果如下:
[modules]
NRPEListener.dll
NSClientListener.dll
NSCAAgent.dll
CheckWMI.dll
FileLogger.dll
Checksystem.dll
CheckEventLog.dll
CheckHelpers.dll
;# NSCLIENT++ MODULES
;# A list with DLLs to load at startup.
;  You will need to enable some of these for NSClient++ to work.
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
; *                                                               *
; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *
; *                                                               *
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
     (2)、配置nagios服务器的IP地址:
          修改结果如下:
          ;# ALLOWED HOST ADDRESSES

allowed_hosts=192.168.0.82
          保存配置文件即可   

3.  在监控服务器上修改nagios配置文件nagios.cfg
为了配置的方便进行我们对nagios的主配置文件做一个连接
ln -vs /var/www/nagios/etc/nagios.cfg /etc/nagios.cfg
对配置文件/etc/nagios.cfg进行如下修改   
去掉cfg_file=/var/www/nagios/etc/objects/windows.cfg 的注释
定义windows.cfg
修改/var/www/nagios/etc/objects/windows.cfg文件,修改结果如下
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server   ; A longer name associated with the host
        address         192.168.0.254  ; windows主机的IP,我的为192.168.0.254
        }
     保存退出即可:
     重新启动nagios服务
     service nagios restart  
   查看我们的nagios是否监控到了windows主机:
     如图显示则表示监控成功:


   到此,nagios对windows监控已经成功,关于对linux的监控以及被监控的主机状态发生改变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-663899-1-1.html 上篇帖子: nagios优化 下篇帖子: nagios配置全攻略
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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