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

nagios 监控平台搭建

[复制链接]

尚未签到

发表于 2019-1-14 09:27:58 | 显示全部楼层 |阅读模式
  nagios搭建配置
  一、需要的软件包
  1、nagios-3.2.3.tar.gz  nagios主监控包
  tar -zxvf nagios-3.2.3.tar.gz
  cd nagios-3.2.3
  ./configure --prefix=/usr/local/nagios
  make all
  make install
  命令对主程序,cgi及html进行安装
  make install-init
  命令在/etc/rc.d/init.d/目录中安装启动脚本
  make install-commandmode
  命令来安装和配置外部命令对Nagios主路径操作的权限。(这里所谓的外部命令主要是指Apache服务通过CGI来对
  Nagios的进行的操作。用户将通过Web以执行CGI程序脚本的方式来对Nagios的检测结果进行读取和调用。)
  make install-config
  命令在/usr/local/nagios/etc/下安装nagios配置文件示例模版
  chkconfig --add nagios on 开机启动nagios
  chkconfig --level 35 nagios on
  useradd nagios
  创建nagios用户
  chown -R  nagios.nagios /usr/local/nagios
  权限设置
  nagios-plugins-1.4.15.tar.gz 监控插件
  2、tar -zxvf nagios-plugins-1.4.15.tar.gz
  cd nagios-plugins-1.4.15
  ./configure --prefix=/usr/local/nagios
  make && make install
  nagios-cn-3.2.3.tar.bz2  汉化包
  tar -jxvf nagios-cn-3.2.3.tar.bz2
  cd nagios-cn-3.2.3
  ./configure
  make && make install
  3、httpd-2.2.14.tar.gz 安装apache
  tar -zxvf httpd-2.2.14.tar.gz
  cd httpd-2.2.14
  ./configure --prefix=/usr/local/apache
  make
  make install
  4、php-5.4.0.tar.gz 安装php
  tar -zxvf php-5.4.0.tar.gz
  cd php-5.4.0
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/aache/bin/apxs(apache可以调用php)
  make
  make install
  二、修改apache配置文件
  1、修改:
  User  nagios
  Group nagios
  修改为:
  DirectoryIndex index.html index.php
  增加:
  AddType application/x-httpd-php .php
  设置apache授权访问在配置文件最后添加:
  #setting for nagios
  ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
  
  AuthType   Basic
  Options    ExecCGI
  AllowOverride AuthConfig
  Order allow,deny
  Allow from all
  AuthName "Welcome to user nagios"
  AuthUserFile  /usr/local/apache/conf/htpasswd
  Require  valid-user
  
  

  Alias /nagios  "/usr/local/nagios/share"
  
  AuthType   Basic
  Options    ExecCGI
  AllowOverride AuthConfig
  Order allow,deny
  Allow from all
  AuthName "Welcome to user nagios"
  AuthUserFile  /usr/local/apache/conf/htpasswd
  Require  valid-user
  
  

  2、创建验证文件
  /usr/local/apache/bin/htasswd -c /usr/local/apache/conf/htpasswd nagiosadmin
  注意-c 为创建文件用,nagiosadmin为所创建的用户,下次使用该命令创建用户,不能用-c这样会覆盖之前的用户
  chown -R nagios.nagios /usr/local/apache
  权限设置,不然验证不通过
  启动nagios:
  service nagios start
  启动apache
  /usr/local/apache/bin/httpd -k start
  浏览器访问 http://ip/nagios/ 要求输入用户名密码,显示nagios监控界面恭喜你基本安装成功
  三、nagios 配置文件分析
  1、/usr/local/nagios/nagios/etc/nagios.cfg  nagios的主配置文件
  cfg_file=/usr/local/nagios/etc/objects/commands.cfg       定义nagios命令的配置文件
  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      定义主机和服务的一个模版配置文件
  cfg_file=/usr/local/nagios/etc/objects/windows.cfg        定义windons主机的模版配置文件
  cfg_dir=/usr/local/nagios/etc/nagiosconf在主配置文件中可以通过这条命令指定,nagios配置文件目录nagiosconf这
  个目录可以按类型嵌套目录,nagios执行中寻找这个目录中后缀为.cfg的所有文件
  

  2、cgi.cfg 控制CGI访问的配置文件
  use_authentication=1
  设定启用身份验证。
  authorized_for_system_information=nagiosadmin
  设定系统信息的授权用户。
  authorized_for_configuration_information=nagiosadmin
  设定配置信息的授权用户。
  authorized_for_system_commands=nagiosadmin
  设定系统命令的授权用户。
  authorized_for_all_services=nagiosadmin
  设定全部监测服务的授权用户。
  authorized_for_all_hosts=nagiosadmin
  设定全部被监测主机的授权用户。
  authorized_for_all_service_commands=nagiosadmin
  设定全部监测服务命令的授权用户。
  authorized_for_all_host_commands=nagiosadmin
  设定全部主机命令的授权用户。
  3、resource.cfg  资源文件,主要是定义命令所在地,以便其他配置文件引用
  

  3、object目录,存放很多模版配置文件,被其他配置文件引用
  nagios中的配置文件是这样一个逻辑应用结构:
  当一个任务被触发要有这样的工作,任务可以是主机或服务,这个任务什么时候被检查(需要timeperiods.cfg模版定义),
  检查这个任务的命令是什么(需要commands.cfg模版定义),报警什么时候发送(由timeperiods.cfg模版定义),联系人是
  谁(由contact.cfg模版定义)
  templates.cfg 文件分析
  define contact{
  name                            generic-contact       name用来定义一个类名,应为这是个difine contact段所以这是个联系人类名,可被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-email   服务报警通知方式
  host_notification_commands      notify-host-by-email      主机报警通知方式
  register                        0                      用来说明它是个类
  }
  看这个配置文件“24x7”这是一个时间段名,是在timeeriods.cfg 定义。  notify-host-by-email命令是在commadns.cfg定义,涉及到了模版配置文件的引用
  define host{
  name                            generic-host         命名一个主机类 generic-host可被应用
  notifications_enabled           1                    设定启用主机事件通知
  event_handler_enabled           1                    设定启用主机事件处理程
  flap_detection_enabled          1                    设定启用状态抖动监测
  failure_prediction_enabled      1                    设定启用故障预测
  process_perf_data               1                    设定启用进程性能数据记录
  retain_status_information       1                    设定启用状态信息保存功能
  retain_nonstatus_information    1                    设定启用非状态信息保存功能
  notification_period             24x7                 设定事件通知的工作时间段
  register                        0
  }
  define host{
  name                            linux-server         定义了一个linux主机类
  use                             generic-host         通过use引用之前定义过的类
  check_period                    24x7                 服务的检查时间
  check_interval                  5                    检查间隔5分
  retry_interval                  1                    主机失败检查重试时间间隔
  max_check_attempts              10                   主机失败最大重检次数
  check_command                   check-host-alive     检查命令在commands.cfg中定义
  notification_period             workhours            发送报警的时间
  

  

  notification_interval           120                  主机未回复重发报警的时间间隔120分
  notification_options            d,u,r                触发参数
  contact_groups                  admins               联系人
  register                        0                    类
  }
  define service{
  name                            generic-service
  active_checks_enabled           1
  passive_checks_enabled          1
  parallelize_check               1
  obsess_over_service             1
  check_freshness                 0
  notifications_enabled           1
  event_handler_enabled           1
  flap_detection_enabled          1
  failure_prediction_enabled      1
  process_perf_data               1
  retain_status_information       1
  retain_nonstatus_information    1
  is_volatile                     0
  check_period                    24x7
  max_check_attempts              3
  normal_check_interval           10
  retry_check_interval            2
  contact_groups                  admins
  notification_options            w,u,c,r
  notification_interval           60
  notification_period             24x7
  register                        0
  }
  

  此为定义一个服务基本类,就是说基本上服务检查需要指定的内容,若有特殊需要可以在此基础上引用重定义,如下工作,一个监测工
  作就是一个服务。服务定义段就是要定义Nagios将进行什么样的监测工作的配置段。而且服务当中也能够定义服务的类,并且类也能继承类,
  运用比较灵活。
  

  define service{
  name                            local-service
  use                             generic-service       通过use引用generic-service类
  max_check_attempts              4
  normal_check_interval           5                    重定义后覆盖generic-service 中的定义
  retry_check_interval            1
  register                        0
  }
  这里的服务并不是指被监测主机上运行的服务,而是指Nagios所进行的“各种不同功能的监测
  

  contact.cfg文件分析
  

  define contact{
  contact_name                    nagiosadmin           定义一个联系人
  use                             generic-contact       引用templates.cfg模版中的generic-contact类
  alias                           Nagios Admin          联系人描述
  email                           nagios@localhost      联系人邮件地址
  }
  define contactgroup{
  contactgroup_name       admins                        定义一个联系人组
  alias                   Nagios Administrators         描述
  members                 nagiosadmin                   组成员,组成员必须是define contact{}段定义的,成员之间用逗号隔开
  

  }
  

  timeperiods.cfg 文件分析
  

  define timeperiod{
  timeperiod_name 24x7                                  timeperiod_name 定义时间段名,这个时间段名可被引用
  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' timeperiod definition
  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
  }
  

  commamnds.cfg 文件分析
  define command{
  command_name    notify-host-by-email
  command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotificationType: $NOTIFICATIONTYPE$\nHost:
  $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:
  $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
  }
  define command{
  command_name    check-host-alive
  command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
  }
  通过define关键字command来表示一个命令定义段,定义内用在两个大括号内,并且一个属性必须占一行。如果要定义多个命令的话要写多个
  define command {}段
  commnad_name  来命令一个命令名,在服务的定义当中,只能引用在commands.cfg中定义过的命令名
  通过command_line来定义该命令的所使用到的插件程序以及参数配置格式,也可使用系统程序或自己安装的程序,
  如notify-host-by-email
  命令的定义它通过command_line 调用了/usr/bin/printf;、/bin/mial 命令,后面是它们的参数
  如check-host-alive
  命令的定义它通过command_line 调用了$USER1$下的check_ping 命令,而$USER1$其实是个目录在resource.cfg配置文件中定义了nagios的
  资源在哪里,
  

  resource.cfg配置文件:
  $USER1$=/usr/local/nagios/libexec
  

  localhost.cfg 具体应用实例配置分析
  define host{
  use                     linux-server        引用linux-server类
  

  

  host_name               localhost           被监控主机名,报警时会提示,根据业务定
  alias                   localhost           描述主机应用
  address                 127.0.0.1           主机ip
  }
  define hostgroup{
  hostgroup_name  linux-servers
  alias           Linux Servers
  members         localhost
  }
  

  define service{
  use                             local-service     引用locak-server类
  host_name                       localhost
  service_description             Root Partition
  check_command                   check_local_disk!20%!10%!/
  }
  重点说check_command      check_local_disk!20%!10%!/
  在命令配置文件中check_local_disk命令的command_line行是这样
  command_line   $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
  对比之下我们知道check_local_disk 就相当于$USER1$/check_disk -w  -c  -p 那么
  20%这个参数就是$ARG1$的实际值
  10%这个参数就是$ARG2$的实际值
  /这个参数就是$ARG3$的实际值
  多个参数之间用!!隔开
  至于check_disk 这个命令的用法可以执行check_disk --help 来查看,其他命令也一样,举例来说:
  check_local_disk!20%!10%!/
  -p选项指定要监控的分区为/
  -w选项触发warn报警当/空间小于20%
  -c选项触发crit报警当/空间小于10%
  

  配置文件终于说完了,不知是否啰嗦了,我觉得啰嗦点没关系如果大家能更好的理解,说的不对的地方大家指正这里先谢谢了!
  

  四、nrpe包的安装
  1、nagios监控主程序可以理解为一个监控平台,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios
  的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等
  这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮
  演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。
  如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还
  必须安装 NRPE核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口
  监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,在必须要安装Nagios-plugins插件程序和
  NRPE核心扩展插件程序。唯一不同的是,Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人
  监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了。
  在被监控主机上安装Nagios-plugins插件程序
  首先要添加用户useradd nagios 这是必须的
  tar -zxvf nagios-plugins-1.4.15.tar.gz
  cd nagios-plugins-1.4.15
  ./configure --prefix=/usr/local/nagios
  make && make install
  chown -R nagios.nagios /usr/local/nagios
  安装nrpe包
  tar -zxvf nrpe-2.13.tar.gz
  cd nrpe-2.13
  ./configure
  make all
  make install-plugin  安装nrpe插件程序
  make isntall-daemon  安装nrpe守护程序
  make install-daemon-config  安装nrpe守护进程配置文件
  

  2、vi /usr/local/nagios/etc/nrpe.cfg
  pid_file=/var/run/nrpe.pid
  设定NRPE运行的PID文件,这个默认就设定好了,不用更改。
  server_port=5666
  这个是NRPE守护进程占用的系统端口。
  #server_address=0.0.0.0
  server_address=192.168.1.9
  设定系统监听NRPE的网络接口。一般设定具体的IP地址,如果要多个网卡的话就用逗号“,”来分隔多个IP地址。如果要监听系统
  全部的网络接口的话,可以使用“0.0.0.0”这个表示全部网络接口的特殊地址,但是不可以用通配符“*”。
  nrpe_user=nagios
  nrpe_group=nagios
  设定NRPE的宿主用户。
  allowed_hosts=192.168.1.12
  这里是设定允许与本机进行NRPE交互的主机的IP地址,也就是Nagios监测服务器的地址,如果要指定多个Nagios服务器的话,那么用逗号“,”来分隔多个IP地址。
  

  command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
  command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
  command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
  command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
  command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
  以上是NRPE默认就有的扩展插件命令,这是至关重要的地方了。当被监测主机运行NRPE守护进程的时候,同时就运行起来了这些在NRPE配置文件中定义的NRPE
  扩展命令了。可以看出这些扩展命令都已经指定了好了命令名、插件路径以及选项参数了。格式如下:
  

  command[NRPE命令名]=插件路径/插件 选项1 参数1 选项2 参数2 ...
  

  注意,如果要指定该被监测主机需要被监控的服务的话,就必须在这里都配置好NRPE命令并运行在NRPE守护进程里。这里没有配置的NRPE命令则Nagios监测服
  务器是无法监控到的。
  

  3、了解NRPE的执行程序的使用方式
  /usr/local/nagios/bin/nrpe -h
  -------------------------------------------------------
  Usage: nrpe [-n] -c  
  运行方法:nrpe -c NRPE配置文件路径 运行模式
  

  Options:
  可用选项
  

  -n           = Do not use SSL
  不使用SSL方式,一般都使用SSL。
  

   = Name of config file to use
  指定NRPE配置文件路径,这个NRPE主配置文件就是nrpe.cfg。
  

           = One of the following two operating modes:
  指定NRPE的运行方式,一共有2种可用的NRPE运行方式:
  

  -i           =     Run as a service under inetd or xinetd
  以超级守护进程inetd或xinetd方式运行NRPE,要通过这种方式运行的话还要安装和配置xinetd,一般不用。
  

  -d           =     Run as a standalone daemon
  以独立守护进程方式运行NRPE,一般常用这种运行方式。
  

  4、运行NRPE守护进程
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  -c 指定配置文件
  -d 以独立守护进程方式运行nrpe
  检查是否启动
  ps aux | grep nrpe
  netstat -anlp | grep nrpe
  5、将NRPE运行添加加入系统启动脚本中
  echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local
  到此,被监控主机要做的工作已经完成了。
  

  五、在监控主机上安装nrpe程序
  tar -zxvf nrpe-2.13.tar.gz
  cd nrpe-2.13
  ./configure
  make all
  安装NRPE扩展插件程序
  make install-plugin
  Nagios只要拥有NRPE的扩展插件功能就可以了,所以在Nagios监测服务器安装NRPE工作到这步就可以了。接下来要
  做的就是在Nagios监测服务器上配置NRPE的扩展插件命令,使得Nagios监测服务器能够定义nrpe命令,从而可以定
  义出“远程系统监测服务”。
  在监控主机上配置NRPE的服务
  1.查看新扩展插件check_nrpe的使用方法
  /usr/local/nagios/libexec/check_nrpe -h|less
  -------------------------------------------------------
  Usage: check_nrpe -H  [-n] [-u] [-p ] [-t ] [-c ]
  使用方式:check_nrpe -H 主机名 -p NRPE端口 -c NRPE命令名
  

  Options:
  选项:
  

        = The address of the host running the NRPE daemon
  主机,运行着NRPE守护进程的远程被监测主机名,并且该主机名必须在host里定义过。
  

  [port]      = The port on which the daemon is running (default=5666)
  端口,被监测的远程主机上运行NRPE的端口,默认是5666,如果是默认就不用指定。
  

  [command]   = The name of the command that the remote daemon should run
  命令,这些命令名必须是被监测主机上NRPE守护进程运行着的。
  -------------------------------------------------------
  

  2.在command.cfg命令定义文件中添加NRPE命令。
  vi /usr/local/nagios/etc/commands.cfg
  -------------------------------------------------------
  # NRPE Command
  添加NRPE功能命令。
  

  define command(
  command_name   nrpe
  command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  }
  -------------------------------------------------------
  这里要说明几点:
  (1)这里定义的命令名就叫作nrpe。
  (2)$USER1$/check_nrpe会通过引用resource.cfg获得/usr/local/nagios/libexec/check_nrpe这个绝对路径。
  (3)-H $HOSTADDRESS$ 用来获得指定被监测主机的IP地址,$HOSTADDRESS$变量会通过定义主机名查找到host段中的IP地址。
  (4)-c $ARG1$ 用来指定被监测主机上NRPE守护进程运行着的NRPE命令名。
  

  3.添加NRPE监控服务
  -------------------------------------------------------
  #Define Remote Current Users
  定义监测远程系统当前登录用户数量服务。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Current Users On Remote System
  check_command                    nrpe!check_users
  }
  

  #Define Remote System Loads
  定义监测远程系统当前负载服务。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Current System Loads
  check_command                    nrpe!check_load
  }
  

  #Define Remote Zombie Processes
  定义监测远程系统僵尸进程数服务。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Zombie Processes On Remote System
  check_command                    nrpe!check_zombie_procs
  }
  

  #Define Remote System Total Processes
  定义监测远程系统进程总数服务。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Total Processes On Remote System
  check_command                    nrpe!check_total_procs
  }
  -------------------------------------------------------
  再强调一遍:
  (1)这里check_command后面的nrpe是commands.cfg里定义的命令名。
  (2)而nrpe命令名后用感叹号“!”分隔的是NRPE命令名,这些NRPE命令是在远端被监测主机上nrpe.cfg中command后方括号“[]”
  中定义的命令名,并且被远程NRPE守护进程运行着。
  

  3.在修改配置并确认完毕后,重新启动Nagios主程序。
  service nagios restart
  Running configuration check...done
  Stopping nagios: done.
  Starting nagios: done.
  这里特别提醒一点: 如果配置文件当中不小心出现偏差的话,那么Nagios程序将启动失败,而且通过service nagios restart
  这种方式的话,还可能不会出现配置文件出错的任何提示信息,即使在日志中也不会记录,就是单单地告诉你不能启动,这样
  会给排查错误带来巨大的困扰。如果发生了配置文件错误而导致Nagios启动失败的话,那么请不要使用service nagios restart/start
  这样的方式启动。而是使用命令的方式启动它:/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 这个
  命令来启动Nagios主程序,这样的方式下,如果Nagios配置错误的话,它还会提示出错信息,以方便于故障的排查。
  

  

  六、定制个性化的NRPE远程监控服务:
  默认情况下被检测主机上的NRPE配置文件nrpe.cfg中只给出了5条NRPE命令名,如下
  -------------------------------------------------------
  command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
  command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
  command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
  command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
  command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
  -------------------------------------------------------
  其实在方括号“[]”里面写的才是真正的NRPE命令名,而其后的部分则是指定了所使用到的插件路径以及相应的选项和参数,也就
  是说,命令名和其使用到的插件以及相应的选项和参数是在被监测端定义的,而Nagios主监测服务器上只要把被监控端上定义的
  NRPE命令名拿过来再加入到服务定义中就可以了。
  

  比如我要增加两个远程监测服务,分别是:
  (1)监测远程主机上的sda1磁盘空间使用状况。
  (2)监测远程主机上的swap交换分区使用状况。
  

  1.首先要找到相应的插件,以及使用方法。
  根据要求,找到check_disk和check_swap这两个插件。
  首先看看check_disk的用法。
  /usr/local/nagios/libexec/check_disk -h|less
  -------------------------------------------------------
  Usage: check_disk -w limit -c limit {-p path | -x device}
  格式:check_disk -w 低限% -c 低限% -p 磁盘设备文件或则分区文件的绝对路径
  

  Options:
  选项
  

  -w, --warning=PERCENT%
  设定告警通知百分比数,空间低于该百分比则发出告警通知。
  

  -c, --critical=PERCENT%
  设定严重告警通知百分比数,空间低于该百分比则发出严重告警通知。
  

  -p, --path=PATH, --partition=PARTITION
  指定磁盘设备文件或则分区文件的绝对路径。
  -------------------------------------------------------
  

  再来看看check_swap的用法。
  /usr/local/nagios/libexec/check_swap -h|less
  -------------------------------------------------------
  Usage:check_swap [-av] -w % -c %
  check_swap -w 剩余空间% -c 剩余空间%
  

  check_swap [-av] -w  -c
  check_swap -w 剩余字节数 -c 剩余字节数
  

  Options:
  选项
  

  -w, --warning=INTEGER
  设定告警通知剩余字节数,剩余字节低于该值则发出告警通知,只可整数。
  

  -w, --warning=PERCENT%%
  设定告警通知百分比数,剩余空间低于该百分比则发出告警通知,双百分号。
  

  -c, --critical=INTEGER
  设定严重告警通知剩余字节数,剩余字节低于该值则发出严重告警通知,只可整数。
  

  -c, --critical=PERCENT%%
  设定严重告警通知百分比数,剩余空间低于该百分比则发出严重告警通知,双百分号。
  -------------------------------------------------------
  

  2、在被监控主机上编辑nrpe.cfg配置文件:
  vi /usr/local/nagios/etc/nrpe.cfg
  -------------------------------------------------------
  # Added NRPE Commands
  下面两条是自己添加的NRPE命令名。
  

  command[disk_observer]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda
  设定监测/dev/sda块设备文件,空间小于20%产生告警,小于10%产生严重告警。
  

  command[swap_observer]=/usr/local/nagios/libexec/check_swap -w 45%% -c 25%%
  设定监测Swap交换分区,占用率大于55%则产生告警,大于75%则产生严重告警。
  -------------------------------------------------------
  

  3、重新启动被监控主机的NRPE守护进程:
  killall nrpe
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  

  4、检查被监测主机的NRPE守护进程:
  ps aux | grep nrpe
  nagios    27504   0.0   0.3   4396   868   ?   Ss 03:35 0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  

  5、在Nagios监控服务器上首先确认NRPE的命令定义:
  vi /usr/local/nagios/etc/commands.cfg
  -------------------------------------------------------
  define command{
  command_name nrpe
  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  }
  -------------------------------------------------------
  

  6.在Nagios监控服务器上然后按照NRPE命令定义来添加NRPE远程监控服务:
  vi /usr/local/nagios/etc/localhost.cfg
  -------------------------------------------------------
  #Define Remote System Disk Using
  定义监测远程系统磁盘使用状况。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Disk Using Of Remote System
  check_command                    nrpe!disk_observer
  }
  

  #Define Remote System Swap Using
  定义监测远程系统交换分区使用状况。
  define service{
  use                              remote-service
  host_name                        KCentOS5A
  service_description              Swap Using Of Remote System
  check_command                    nrpe!swap_observer
  }
  -------------------------------------------------------
  7、重新启动Nagios监测服务器的监测程序:
  service nagios restart
  Running configuration check...done
  Stopping nagios: .done.
  Starting nagios: done.
  

  8、查看Naigos服务运行状况:
  ps aux | grep nagios
  nagios     7367   0.0   0.3   22888    904 ?         Ssl   21:24    0:00 /usr/local/nagios/bin/nagios -d
  /usr/local/nagios/etc/nagios.cfg
  root       7376   0.0   0.2    3884    660 pts/2     R+    21:25    0:00 grep 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-663029-1-1.html 上篇帖子: nagios 监控 mysql 主从同步状态 下篇帖子: nagios部署安装上篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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