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

经典难过死(nagios)监控详解及其配置 附件

[复制链接]

尚未签到

发表于 2019-1-13 11:45:55 | 显示全部楼层 |阅读模式
·nagios特征
Nagios 是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主 机和服务进行监控,在状态变差和变好的时候给出告警信息。
1.网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
2.主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
3.可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
4.可以通过配置Nagios远程执行插件远程执行脚本
5.远程监控支持SSH或SSL加通道方式进行监控
6.简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shellscripts、C++、Perl、ruby、Python、PHP、C#等)
7.包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
8.可并行服务检查
9.能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查
10.当服务或主机出现问题时发出通告,可通过email, pager, sms或任意用户自定义的plugin进行通知
11.能够自定义事件处理机制重新激活出问题的服务或主机
12.自动日志循环
13.支持冗余监控
14.包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等
  Nagios原理
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测                    都是通过各种插件来完成的。
启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。
Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。
Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供管理员及时发现故障。
Nagios 系统提供了一个插件NRPENagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图所示:



Nagios的四种状态

  状态
  代码
  颜色
  数字
  正常
  ok
  绿色
  0
  警告
  warning
  ***
  1
  严重
  critical
  红色
  2
  未知
  unknown
  深***
  3

---------------------------------------------------------------------------------
安装nagios

1.配置yum
       [root@localhost /]# mount /dev/cdrom/media/
       [root@localhost /]# vim/etc/yum.repos.d/rhel-debuginfo.repo
              [rhel-debuginfo]
              name=RedHat Enterprise Linux $releasever - $basearch -Debugbaseurl=file:///media/Server
              enabled=1
              gpgcheck=1
              gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2.安装依赖包
       [root@localhost /]# yum -y install gccglibc glibc-common gd gd-devel httpd php mysql

3.修改配置文件支持php解析
       [root@localhost etc]# vim php.ini
              501default_charset = "utf-8"
       [root@localhost /]# vim/etc/httpd/conf/httpd.conf
              200LoadModule php5_module       modules/libphp5.so
              769AddType application/x-httpd-php .php .phtml
              391DirectoryIndex index.html index.html.var index.php
4.创建的用户
       [root@localhost /]# useradd nagios
       创建一个用户组用于从web接口处执行外部命令,将用户nagios和apache添加到这个组
       [root@localhost /]# groupadd nagcmd
       [root@localhost /]# usermod -G nagcmdapache
       [root@localhost /]# usermod -G nagcmdnagios
5.安装nagios
       [root@localhost /]# tar -zxvfnagios-3.2.0.tar.gz -C /usr/src/
       [root@localhost /]# cd/usr/src/nagios-3.2.0/
       [root@localhost nagios-3.2.0]#./configure --with-command-group=nagcmd
       [root@localhost nagios-3.2.0]# make all             编译
       [root@localhost nagios-3.2.0]# makeinstall
       安装nagios主程序的cgi和html文件
       [root@localhost nagios-3.2.0]# makeinstall-init
       在/etc/rc.d/init.d目录下创建nagios启动脚本
       [root@localhost nagios-3.2.0]#  make install-commandmode
配置目录权限
       [root@localhost nagios-3.2.0]# makeinstall-config
创建nagios示例配置文件,这里的安装路径是       /usr/local/nagios/etc
       [root@localhost nagios-3.2.0]# makeinstall
[root@localhost objects]# pwd
/usr/local/nagios/etc/objects
[root@localhost objects]# vim contacts.cfg

指定接收nagios邮件的地址,默认是本机的nagios的用户
[root@localhost objects]# service sendmail restart
       [root@localhost nagios-3.2.0]# chkconfig--add nagios
       [root@localhost nagios-3.2.0]# chkconfig--level 35 nagios on
6.nagios目录文件介绍
bin
Nagios 可执行程序所在目录
etc
Nagios 配置文件所在目录
sbin
Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
share
Nagios网页文件所在的目录
libexec
Nagios 外部插件所在目录
var
Nagios 日志文件、lock 等文件所在的目录
var/archives
Nagios 日志自动归档目录
var/rw
用来存放外部命令文件的目录

       etc目录下文件

文件名或目录名
用途
cgi.cfg
控制CGI访问的配置文件
nagios.cfg
Nagios 主配置文件
resource.cfg
变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$
objects
objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
objects/commands.cfg
命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg
定义联系人和联系人组的配置文件
objects/localhost.cfg
定义监控本地主机的配置文件
objects/printer.cfg
定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg
定义监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg
定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg
定义Nagios 监控时间段的配置文件
objects/windows.cfg
监控Windows 主机的一个配置文件模板,默认没有启用此文件

7.nagios配置
       [root@localhost nagios-3.2.0]# makeinstall-webconf
安装nagios的web配置配置文件到apache的conf.d下
       [root@localhost nagios-3.2.0]# htpasswd-c /usr/local/nagios/etc/htpasswd.users nagiosadmin
              创建一个用户用于登陆nagios的web接口不要更改nagiosadmin,不然在别的配置文件中也要更改
8.插件安装
       nagios-plugins是官方提供的插件程序,nagios监控主机主要是通过插件完成的。
       [root@localhost /]# tar -zxvfnagios-plugins-1.4.14.tar.gz -C /usr/src/
       [root@localhost nagios-plugins-1.4.14]#./configure --with-nagios-user=nagios --with-nagios-group=nagios
       [root@localhost nagios-plugins-1.4.14]#make &&make install
[root@localhost /]# service iptables
[root@localhost /]# setenforce 0
访问验证


  Nagios监控windows主机
Nagios在配置方面非常灵活,默认的配置文件并不是必须的,可以使用,也可以创建    自己的配置文件,然后再在主配置nagios.cfg中引用即可
配置文件间的关系
nagios的配置文件是互为关联,相互引用的,Nagios的配置过程中需要定义的有主机,主机组,服务,服务组,联系人,联系人组,监控时间,和监控命令
Objects里面存放的是主配置文件nagios.cfg包含进去的文件,在nagios.cfg中就可以指定单独包含一个cfg,也可以包含一个目录,也就是该目录下所有的cfg文件都会包含进来

Nsclient++介绍
NSClient++是用来监控Windows主机时安装在Windows主机上的组件。被监控机上安装NSClient,,当监控主机将监控请求发给NSClient后,NSClient直接完成/监控,所有的监控是由NSClient完成的.不需要额外的插件。
nsclient++集成了非常多的插件nsca,nrpe等都支持,一般检测windows用check_nt插件
  
  NSClient原理
  
  
  
  
  
  
  



Nsclient++安装



方框中可以全部打勾


注意关闭windows防火墙
查看是否启用了5666和12489端口

查看nsclient++服务是否启动

Nsclient++配置文件
当要修改监控主机的IP地址,或者忘记密码时可以修改这个文件


在linux主机测试插件check_nt是否能查询windows信息

-H 要查询的主机ip地址 -p指定端口 -v要查询的信息
配置检测一台windows主机的思路首先是安装nsclient++,这个前面已经安装好了,重点要说的是在linux上配置启动监控windows主机;中心点是要监控的主机一切围绕被监控的主机展开

修改文件前请全部备份
1.[root@localhostobjects]# vim windows.cfg

[root@localhostetc]# pwd
/usr/local/nagios/etc
[root@localhostetc]# vim nagios.cfg

重新启动服务,这样一台主机就添加玩了,

是不是觉得很简单,嗯,是的我想告诉你,你想多了,功能这么强大的nagios会这么简单?开玩笑,,咳咳,回归正题,其实添加一台主机也没那么难下面来添加第二台windows主机,
  ----------------------
  先把检测的命令写好
  [root@localhost objects]# vim commands.cfg

里面的这些命令我们都可以引用

[root@localhostobjects]# vim windows1.cfg      定义监控的主机

如果要监控多个服务,可以多谢几个define service
[root@localhost etc]# pwd
/usr/local/nagios/etc
[root@localhost etc]# vim nagios.cfg          添加windows1.cfg


重启服务就可以了
      
      
  ================================
  监控linux主机
  nagios监控linux服务器, 都是依靠插件去完成的,而监控linux主要使用NRPE插件,
  NRPE总共由两部分组成:

  check_nrpe插件,运行在监控主机上。
  NRPE daemon,运行在远程的linux主机上(通常就是被监控机)
  整个的监控过程:(如下图)
  当Nagios需要监控某个远程linux主机的服务或者资源情况时:
  1).nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.
  2).check_nrpe插件会通过SSL连接到远程的NRPEdaemon.
  3).NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.
  4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项, ./configure--enable-ssl --with-ssl-lib=/lib/,否则也会出错.
需要提前安装openssl
在监控主机上安装nrpe插件
[root@localhost /]# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/
[root@localhost nrpe-2.12]# ./configure --enable-ssl --with-ssl-lib=/usr/lib/
[root@localhost nrpe-2.12]# make all
[root@localhost nrpe-2.12]# make install-plugin






配置被监控端

[root@localhost /]# useradd nagios
安装nagios-plugin
[root@localhost /]# tar -zxvf nagios-plugins-1.4.14.tar.gz -C/usr/src/
[root@localhost /]# cd /usr/src/nagios-plugins-1.4.14/
[root@localhost nagios-plugins-1.4.14]# ./configure--with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround(非必加,如果出现
checking for redhat spopen problem…时可以加上这个选项,关于他是干什么的,目前还不知道)
[root@localhost nagios-plugins-1.4.14]# make
[root@localhost nagios-plugins-1.4.14]# make install
[root@localhost nagios-plugins-1.4.14]# chown -R nagios:nagios/usr/local/nagios/

在被监控主机上安装nrpe插件
创建运行nrpe的用户
[root@localhost /]# useradd nagios
[root@localhost /]# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/
[root@localhost /]# cd /usr/src/nrpe-2.12/
[root@localhost nrpe-2.12]# ./configure --enable-ssl--with-ssl-lib=/usr/lib/
[root@localhost nrpe-2.12]# make all
[root@localhost nrpe-2.12]# make install-plugin
[root@localhost nrpe-2.12]# make install-daemon
[root@localhost nrpe-2.12]# make install-daemon-config
配置nrpe
[root@localhost etc]# pwd
/usr/local/nagios/etc
[root@localhost etc]# vim nrpe.cfg
79 allowed_hosts=100.1.1.100      允许来检测的IP地址,多台主机用“,”隔开
[root@localhostetc]# /usr/local/nagios/bin/nrpe -c nrpe.cfg -d   启动nrpe
检查是否启动
[root@localhostnagios]# netstat -anpt|grep nrpe
tcp        0     0 0.0.0.0:5666               0.0.0.0:*                   LISTEN      6939/nrpe
在监控端执行
[root@localhostlibexec]# ./check_nrpe -H 100.1.1.103
NRPE v2.12   查看被监控端nrpe的版本
在被监控端如果出现:
[root@localhostlibexec]# ./check_nrpe -H 127.0.0.1
CHECK_NRPE:Error - Could not complete SSL handshake.
请修改/usr/local/nagios/etc/nrpe.cfg
[root@localhostetc]# vim nrpe.cfg

重新启动nrpe进程
[root@localhostlibexec]# ./check_nrpe -H 127.0.0.1
NRPE v2.12



添加一台监控主机(在监控主机上)

[root@localhostobjects]# vim commands.cfg

[root@localhostobjects]# cp localhost.cfg linux103.cfg
[root@localhostobjects]# vim linux103.cfg

[root@localhostetc]# vim nagios.cfg   添加


重启服务就可以看到新添加的主机了


  



附件:http://down.运维网.com/data/2365798


运维网声明 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-662705-1-1.html 上篇帖子: nagios下给监控项添加监控数据,导致无法画图 下篇帖子: Centos nagios监控windows主机并开启PNP模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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