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

Nagios安装配置教程(四)配置使用

[复制链接]

尚未签到

发表于 2019-1-14 10:04:37 | 显示全部楼层 |阅读模式
  

  

Nagios安装配置教程(四)配置使用

  

  

  我是一只小鸟,老鸟直接飞过,有什么错误,还请谅解,谢谢
  当您可以在web页面打开nagios的页面,就可以配置以下文件了

  

  

  默认配置文件介绍
  Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/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 主机的一个配置文件模板,默认没有启用此文件
  

  

  进行监控文件配置的流程大概是这样,每增加一台被监控的机器(linux、window)都需要安装下面的配置文件一一做出相应的修改
  

  修改主配置文件nagios.cfg             启用以下文件的配置、或者不启用以下的配置等
  配置时间模板timeperiods.cfg          定义报警的时间,监视的时间等
  配置联系人模板contacts.cfg           出现问题联系人,邮箱信息等
  配置联系组模板contactgroups.cfg      联系组,网络问题的网络管理组,系统问题的系统组等
  配置主机模板hosts.cfg                监控的主机信息,ip地址、主机名等
  配置主机组模板hostgroups.cfg         像linux系统组、window系统组,web服务器组等
  配置检测服务模板services.cfg       监控主机的服务,像监控ping 、snmp、磁盘空间、web服务等
  

  注:如果文件夹下没有此文件,请在安装包中找,或者新建
  

  

  

  (一) 修改主配置文件nagios.cfg  
  

  Nagios的主配置文件是nagios.cfg,我们就从这个文件开始修改。用vi编辑nagios.cfg,注释行,然后把下面几行的注释去掉:
  

  cfg_file=/usr/local/nagios/etc/contactgroups.cfg    //联系组配置文件路径  
  cfg_file=/usr/local/nagios/etc/contacts.cfg         //联系人配置文件路径  

  cfg_file=/usr/local/nagios/etc/hostgroups.cfg       //主机组配置文件路径  

  cfg_file=/usr/local/nagios/etc/hosts.cfg            //主机配置文件路径              上面已经介绍过文件配置的作用
  cfg_file=/usr/local/nagios/etc/services.cfg         //服务配置文件路径  

  cfg_file=/usr/local/nagios/etc/timeperiods.cfg      //监视时段配置文件路径  

  

  去掉前面的 # 号,保持启用,我们编辑的配置文件有没有效果,全部都是在这个地方进行应用的
  

  还要修改以下地方
  check_external_commands=0为check_external_commands=1  
  这行的作用是允许在web界面下执行重启nagios、停止主机/服务检查等操作
  command_check_interval=115s为command_check_interval=10s
  根据自己的情况定这个命令检查时间间隔,不要太长也不要太短
  

  

  

  

  (二) 配置时间模板timeperiods.cfg
  

  此文件只要用于定义监控的时间段,下面是一个配置好的实例:
  

  
  #下面是定义一个名为24x7的时间段,即监控所有时间段
  define timeperiod{  

  timeperiod_name     24x7//时间段的名称,这个地方不要有空格
  alias           24 Hours A Day, 7 Days A Week
  sunday          00:00-24:00
  monday          00:00-24:00
  tuesday         00:00-24:00
  wednesday       00:00-24:00
  thursday        00:00-24:00
  friday          00:00-24:00
  saturday        00:00-24:00
  }
  #下面是定义一个名为workhours的时间段,即工作时间段。
  define timeperiod{
  timeperiod_name workhours
  alias           Normal Work Hours
  monday          09:00-17:00
  tuesday         09:00-17:00
  wednesday       09:00-17:00
  thursday        09:00-17:00
  friday          09:00-17:00
  }
  

  
注:蓝色标注为自定义,根据自己的系统机器进行相应的修改,前后对应,切记直接复制
  

  

  

  

  (三) 配置联系人模板contacts.cfg
  

  [root@localhost etc]# vi contacts.cfg
  

  define contact{
          contact_name                    test
  //联系人的名称,这个地方不要有空格
          alias                           sys admin     
  // 随便填,不意义
  
          service_notification_period     24x7
  //时间段就是上面在timeperiods.cfg中定义的timeperiod_name要对应
          host_notification_period        24x7
  //时间段就是上面在timeperiods.cfg中定义的timeperiod_name要对应
          service_notification_options    w,u,c,r  
  //当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况恢复正常,在这四种情况下通知联系人.
          host_notification_options       d,u,r   
  //当主机出现d—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人
          service_notification_commands   notify-by-email
  //服务出问题通知采用的命令notify-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件.至于commands.cfg之后将专门介绍
          host_notification_commands      host-notify-by-email   
  //同上,主机出问题时采用的也是发邮件的方式通知联系人
          email                           test@test.com
  //邮箱通知
          pager                           1338757xxxx
  //短信通知
          address1                        xxxxx.xyyy@test.com
  //随便填,不意义
          address2                        555-555-5555
  //随便填,不意义
          }
  

  注:蓝色标注为自定义,根据自己的系统机器进行相应的修改,前后对应,切记直接复制
  

  

  (四) 配置联系组模板contactgroups.cfg
  

  [root@localhost etc]# vi contactgroups.cfg
  

  define contactgroup{
          contactgroup_name       sagroup
  //联系人组的名称,同样不能空格
          alias                   System Administrators        
  //别名
          members                test
  //组的成员,来自于上面定义的contacts.cfg,如果有多个联系人则以逗号相隔,切记对应上面的配置
          }
  

  

  

  (五) 配置主机模板hosts.cfg  
  

  [root@localhost etc]# vi hosts.cfg
  

  define host{
          host_name                       nagios-server
  //被监控主机的名称,最好别带空格,自定义
          alias                           nagios server
  //别名
          address                         125.222.31.20
  //被监控主机的IP地址,我现在暂时先填本机的IP
          check_command                   check-host-alive
  //监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活
          max_check_attempts              5
  //检查失败后重试的次数
          check_period                   24x7
  //检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中定义的,切记对应
          contact_groups                  sagroup
  //联系人组,上面在contactgroups.cfg中定义的sagroup,切记对应
          notification_interval           10
  //提醒的间隔,每隔10秒提醒一次
          notification_period             24x7
  //提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg中定义的,切记对应
          notification_options            d,u,r
  //指定什么情况下提醒,具体含义见之前contacts.cfg部分的介绍
          }
  

  

  注:蓝色标注为自定义,根据自己的系统机器进行相应的修改,前后对应,切记直接复制
  

  

  (六) 配置主机组模板hostgroups.cfg
  

  与联系人可以组成联系人组一样,多个主机也可以组成主机组.创建文件hostgrops.cfg
  

  [root@localhost etc]# vi hostgroups.cfg
  define hostgroup{
          hostgroup_name          sa-servers
  //主机组名称,自定义
          alias                   sa Servers  
  //别名
          members                 nagios-server
  //组的成员主机,多个主机以逗号相隔,必须是上面hosts.cfg中定义的,切记对应
          }
  

  

  

  (七) 配置检测服务模板services.cfg
  

  [root@localhost etc]# vi services.cfg
  

  #service definition
  define service{
          host_name               nagios-server
  //被监控的主机,hosts.cfg中定义的,自定义
          service_description     check-host-alive
  //这个监控项目的描述(也可以说是这个项目的名称),可以空格,我们这里定义的是监控这个主机是不是存活
          check_command           check-host-alive
  //所用的命令,是commands.cfg中定义的
          max_check_attempts      5
          normal_check_interval   3
          retry_check_interval    2
          check_period            24x7
  //监控的时间段,是timeperiods.cfg中定义的,切记对应
          notification_interval   10
          notification_period     24x7
  //通知的时间段, ,是timeperiods.cfg中定义的,切记对应
          notification_options    w,u,c,r
  //在监控的结果是wucr时通知联系人,具体含义看前文.
          contact_groups          sagroup
  //联系人组,是contactgroups.cfg中定义的,切记对应
          }
  

  注:蓝色标注为自定义,根据自己的系统机器进行相应的修改,前后对应,切记直接复制
  

  

  

  插入针对配置检测服务模板services.cfg中的
  check_command           check-host-alive
  这一命令,是检查服务器得服务状态,监控主机的服务,像监控ping 、snmp、磁盘空间、web服务等,具体的命令已经命令的书写可以查看commands.cfg详细的说明
  

  check_command                   check_ping!100.0,20%!500.0,60%
  //查看ping
  check_command                   check_local_disk!20%!10%!/
  //查看本机磁盘使用情况
  check_command                   check_local_users!20!50
  //查看本机用户
  check_command                   check_local_procs!250!400!RSZDT
  //查看本机程序
  check_command                 check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
  //查看本机负载
  check_command                   check_local_swap!20!10
  //查看swap 使用空间
  

  其中的一些参数说明
  check_local_disk定义如下
  

  # 'check_local_disk' command definition
  define command{
  command_name    check_local_disk
  command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
  }
  

  check_local_disk实际上是执行的check_disk插件.这里的$ARG1$, $ARG2$, $ARG3$是什么意思呢?在之前我们已经提到了这个check_disk这个插件的用法,-w的参数指定磁盘剩了多少是警告状态,-c的参数指定剩多少是严重状态,-p用来指定路径.
  在使用check-host-alive的时候,只需要在services.cfg中直接写上这个命令名check-host-alive.后面没任何的参数.而使用check_local_disk则不同,在services.cfg中这要这么写
  check_local_disk!10%!5%!/
  在命令名后面用!分隔出了3个参数,10%是$ARG1$的值,5%是$ARG2$的值,/ 是$ARG3$的值,
  

  

  在以上是监控命令中分为两种对于像磁盘容量,cpu负载这样的”本地信息”,nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力.毕竟没得到被控主机的适当权限是不可能得到这些信息的.为了解决这个问题,nagios有这样一个附加组件----NRPE.用它就可以完成对linux类型主机”本地信息”的监控.
  

  NRPE总共由两部分组成:
  – check_nrpe 插件,位于在监控主机上
  – NRPE daemon,运行在远程的linux主机上(通常就是被监控机)
  按照上图,整个的监控过程如下:
  当nagios需要监控某个远程linux主机的服务或者资源情况时
  1.nagios会运行check_nrpe这个插件,告诉它要检查什么.
  2.check_nrpe插件会连接到远程的NRPE daemon,所用的方式是SSL
  3.NRPE daemon会运行相应的nagios插件来执行检查
  4.NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
  注意:NRPE daemon需要nagios插件安装在远程的linux主机上,否则,daemon不能做任何的监控.
  监控内部信息,需要通过客户端的NRPE 插件收集内部信息,服务器通过check_nrpe 接收客户端的信息。
  配置被监控机器
  [root@server nrpe-2.12]# groupadd nagios
  [root@server nrpe-2.12]# useradd -g nagios -s /sbin/nologin nagios
  [root@server libexec]# chown nagios.nagios /usr/local/nagios
  [root@server libexec]# chown -R nagios.nagios /usr/local/nagios/libexec
  

  1. 安装nrpe 插件
  [root@server ~]# tar zxvf nrpe-2.12.tar.gz
  [root@server ~]# cd nrpe-2.12
  [root@server nrpe-2.12]# ./configure
  [root@server nrpe-2.12]# make all
  [root@server nrpe-2.12]# make install-plugin
  [root@server nrpe-2.12]# make install-daemon
  [root@server nrpe-2.12]# make install-daemon-config
  

  2. 安装nagios 补丁
  [root@server ~]# tar zxvf nagios-plugins-1.4.14.tar.gz
  [root@server ~]# cd nagios-plugins-1.4.14
  [root@server nagios-plugins-1.4.14]# ./configure --with-nagios-user=nagios --with-
  nagios-group=nagios
  [root@server nagios-plugins-1.4.14]# make
  [root@server nagios-plugins-1.4.14]# make install
  

  3. 配置nrpe.cfg
  [root@server libexec]# vim /usr/local/nagios/etc/nrpe.cfg
  allowed_hosts=127.0.0.1,192.168.30.100  # 添加监控主机的IP
  

  4. 启动nrpe守护进程
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  检查nrpe是否已经启动
  [root@server ~]# netstat -nultp |grep 5666
  tcp  0  0 0.0.0.0:5666     0.0.0.0:*      LISTEN      18929/nrpe
  

  5. 测试nrpe功能
  [root@server ~]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
  NRPE v2.12
  正常的返回值为被监控服务器上安装的NRPE的版本信息,如果能看到这些,表示NRPE已经正常工作了
  

  6. 定义监控服务器内容
  

  服务端上的配置
  1. 安装nrpe
  [root@server ~]# tar zxvf nrpe-2.12.tar.gz
  [root@server ~]# cd nrpe-2.12
  [root@server nrpe-2.12]# ./configure
  [root@server nrpe-2.12]# make all
  [root@server nrpe-2.12]# make install-plugin
  [root@server nrpe-2.12]# make install-daemon
  [root@server nrpe-2.12]# make install-daemon-config
  检测nrpe是否能正常和客户端通信
  [root@server ~]# /usr/local/nagios/libexec/check_nrpe  -H 192.168.30.110
  CHECK_NRPE: Error - Could not complete SSL handshake.
  注意:这里有一个报错。
  

  解决办法:
  1).检查是否安装了openssl和openssl-devel包
  [root@server ~]# rpm -qa |grep ssl
  openssl-devel-1.0.0-20.el6_2.5.x86_64
  openssl-1.0.0-20.el6_2.5.x86_64
  2). 检查/usr/local/nagios/etc/nrpe.cfg 此配置文件是否配置正确
  allowed_hosts=127.0.0.1,192.168.30.100
  3).重启系统
  

  若check_nrpe 的返回值是其版本号,则表示已正常通信
  [root@server nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe  -H 192.168.30.110
  NRPE v2.12
  

  

  在运行nagios之前首先做测试
  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  看到下面这些信息就说明没问题了
  Total Warnings: 0
  Total Errors:   0
  Things look okay - No serious problems were detected during the pre-flight check
  如果有问题的话就可以按照输出信息来排查
  

  作为守护进程后台启动nagios
  /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
  

  登陆http://your ip address /nagios/来查看吧.点左边的Host Detail
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  





运维网声明 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-663062-1-1.html 上篇帖子: Nagios安装配置教程(三)开始安装 下篇帖子: CentOS下Nagios的安装与配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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