• Nagios


    Linux监控

    学习使用3款主流的软件搭建监控服务器

    、监控概述

    1 什么是监控? 监视并控制

    2 监控目的? 问题没有出现或出现后第一时间处理(性能调整、系统瓶颈)

    3 监控谁?  服务器(网站  数据库  邮件  文件  存储  缓存)

    监控的资源 类别:吞吐量、反应时间、使用率

    公开数据:web、FTP、ssh、tcp/udp端口

    私有数据:cpu、内存、存储、网卡流量、用户、进程

    4手动监控

    4.1进程监控  ps aux | grep httpd  、  top

    4.2存储监控  df -h    free -m   swapon -s  

    硬件使用率 (用了多少 还剩多少):cpu  内存  存储

    4.3网络监控  

    网络流量  (进出数据流的百分比)   ifconfig   traceroute netstat

    网络接口的状态 up   down) ping

    4.4系统性能监控   

    uptime  cpu 负载 ;  mpstat 查看cpu状态; vmstat  查看内存或磁盘状态;

    iostat  查看硬盘状态;netstat  查看网络状态 ;sar 查看以上4类信息

    应用服务的运行状态(运行  停止):netstat  -antpu  ;systemctl  status  

    nmap做扫描

    操作系统运行情况(进程数(运行  休眠  僵尸)  登录的用户数  系统总用户数)

    ps aux  | wc  -l

    users

    wc  -l  /etc/passwd

    5 如何实现?

    使用系统自带的命令  或安装第3方软件提供的命令

    计划任务 +  自定义监控脚本

    搭建监控服务器做监控(主流监控软件:Nagios   Cacti     Zabbix)

    二、 Nagios 自动监控系统

    1.  Nagios简介

    是一款用来监视系统和网络的开源应用软件

    --利用其众多的插件实现对本机和远端服务的监控;当被监控对象异常时,会及时向管理员告警;提供一批预先设好的监控插件,用户可以直接调用;也可以自定义shell脚本来监控服务,适合各类企业的业务监控;可通过web页面显示对象状态、日志、告警信息

    2. Cacti简介

    一套基于LAMP展现的网络流量检测及分析工具

    数据采集:基于SNMP技术或自定义脚本从目标设备/主机获取监控指标信息

    数据存储:调用模版将数据存到数据库,通过RPDTool绘制结果图形

    数据展现:通过web方式将监控结果呈现出来

    3. Nagios与Cacti的区别

    Cacti:在监控方面绘图比较不错,在流量与图形展现方面存在优势

    Nagios:侧重于监控应用状态、故障分析、报警机制(邮箱、短信等)相对来说比Cacti灵活

    4. 配置发送报警信息的方式:mail、短信、微信...

    部署监控服务器的配置步骤:

    1部署服务运行环境

    2安装包

    3修改配置文件

    4启动服务

    5监控配置

    监控插件的使用

    5.1 监控本机

    5.2 监控远端主机

    监控公有数据

    监控私有数据

    5.3 监控报警

    6 访问监控服务器查看监控信息(登录监控页面查看监控信息)

    +++++++++++++++++++++++++++++++

    要求:在主机x.x.4.5部署Nagios监控服务

    1部署服务运行环境

    #yum   -y  install  httpd  php  elinks  gcc*

    # systemctl  start httpd ;systemctl  enable httpd

    #echo "hello world" >  /var/www/html/index.html

    #elinks  --dump   http://localhost

    # vim  /var/www/html/test.php

    <?php

    phpinfo();

    ?>

    #firefox   http://192.168.4.5/test.php

    2安装包

    2.1 安装提供服务的包

    #groupadd nagcmd

    #useradd   -G nagcmd   nagios

    #tar  xvf  nagios-4.2.4.tar.gz

    # ./configure --help

    # ./configure  --with-nagios-user=nagios --with-nagios-group=nagcmd   --with-command-user=nagios   --with-command-group=nagcmd

    #make  all    //编译主程序和cgi文件

    #make install    //装主程序和cgi文件

    #make install-init    //装启动脚本

    #make install-commandmode   //装改配置文件的访问权限

    #make install-config              //装例子文件

    #make install-webconf     //访问web接口程序的配置文件

    #make install-exfoliation   //web页面程序类型为exfoliation

    # ls /usr/local/nagios/

    bin  可执行命令、etc  配置文件、libexec  监控插件、sbin  cgi文件(web页面上对应的超连接)、share 网页文件、var 日志文件状态信息文件

    2.2 安装监控插件

    #tar  -xvf  nagios-plugins-2.1.4.tar.gz

    #cd nagios-plugins-2.1.4/

    #./configure  &&  make && make install

    #ls   /usr/local/nagios/libexec/check_*

    3  根据配置文件设置登录监控页面的用户和密码

    # tail   /etc/httpd/conf.d/nagios.conf

    # htpasswd   -c   /usr/local/nagios/etc/htpasswd.users  nagiosadmin

    #cat /usr/local/nagios/etc/htpasswd.users

    # grep  "nagiosadmin"   /usr/local/nagios/etc/cgi.cfg

    4 启动nagios监控服务( *默认监控本机 )

    #systemctl  restart  httpd

    # /etc/init.d/nagios  start|stop

    5  在客户端 访问监控页面查看监控信息

    firefox  http://192.168.4.5/nagios

    默认就监控本机,监控对象?

    cpu负载check_load           系统登录用户数量check_users

    网站服务器运行状态check_http        ping   check_ping   根分区使用量check_disk

    ssh服务运行状态check_ssh        交换分区使用量check_swap

    系统总进程数量check_procs

    6  nagios服务监控过程?

    服务运行时,加载配置文件,在配置文件中自动调用监控插件,根据插件的阀值返回监控状态信息。调用插件时,可以定义警告值、阀值和错误值,把监控到的数据和设置的警告值与错误值比较,按照如下规律显示监控状态:

    监控到的数据  <  警告值   OK

    监控到的数据 > 警告值且 <  错误值   warning

    找不到调用的监控插件,配置项错误   unkown

    监控到的数据 > 错误值  critical

    正在获取数据  pending

    监控插件的使用  cd /usr/local/nagios/libexec/check_load

    查看插件的帮助信息

    # cd /usr/local/nagios/libexec

    # ./check_users  -h

    # /usr/local/nagios/libexec/check_load   -h

    65  ./check_users -w 1  -c 3

    66  ./check_users -w 5  -c 10

    70  ./check_procs  -w 100  -c 101

    71  ./check_procs  -w 10  -c 15 -s Z 僵尸进程

    72  ./check_procs  -w 10  -c 15 -s R  正在运行进程 S睡眠

    78  df -h

    76  ./check_disk -w 50%  -c 25%   -p /dev/vda1         //监控磁盘空闲

    77  dd if=/dev/zero  of=/boot/test.txt  bs=1M  count=230

    79  ./check_disk -w 50%  -c 25%   -p /dev/vda1

    80  ./check_disk -w 50%  -c 25%   -p /

    96  ./check_http -H 192.168.4.56  -p 8080  

    97  ./check_http -H 192.168.4.56

    91  ./check_ssh -H 192.168.4.56   -p  2212    //默认22端口

    108  ./check_tcp  -H 127.0.0.1  -p 21

    109  ./check_tcp  -H 192.168.4.56  -p 21

    110  ./check_tcp  -H 192.168.4.56  -p 22

          ./check_ping  -H 192.168.4.254 -w 10.0,30%  -c 20.0,40%  -p 2  -t 5   //10毫秒内丢包率达到30%,拼2次,超时时间5秒,默认拼5次,超时时间20秒

    7  配置文件/usr/local/nagios/etc/ :          

    nagios.cfg  主配置文件

    resource.cfg 宏定义文件(设置nagios服务使用的变量)

    cgi.cfg  设置cgi访问权限

    etc/objects/:

    commands.cfg  定义监控命令的文件

    contacts.cfg  指定接收监控报警消息邮箱地址

    timeperiods.cfg 定义监控时间模版配置文件

    templates.cfg  定义监控模版配置文件

    localhost.cfg  监控本机配置文件

    windows.cfg    windows操作系统

    switch.cfg    交换机

    printer.cfg   打印机

    5.1 监控本机

      步骤:定义监控命令-->在监控主机的配置里调用监控命令-->验证配置是否正确-->重起服务-->登录管理页面查看监控信息-->若有警告或错误状态的监控项时,查看是否收到报警邮件

    cd  /usr/local/nagios/etc/objects

      # vim  commands.cfg   语法格式:

    define command{

            command_name    check_local_procs   //命令名

            command_line    $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$     93         }       //插件

    /usr/local/nagios/libexec/check_procs  -w   100  -c 110  -s  Z

    check_local_procs   $USER1$/check_procs -w  $ARG1$ -c $ARG2$ -s ARG3$

    check_local_procs!90!100!R      //!间隔符

    check_local_procs!10!11!Z

    check_local_disk!20%!15%!/boot

    check_local_disk!25%!10%!/

     # vim  localhost.cfg   //监控主机配置文件的语法格式

    define host {                          # 定义监控主机

         use                     linux-server   监控模版

        host_name            localhost     主机名     //主机状态在不在线host  status

        address                 127.0.0.1    ip地址

    }

    define service{ #定义监控资源/对象

         use                             local-service  监控模版

          host_name               localhost      主机名

         service_description             Total Processes  描述信息

         check_command check_local_procs!250!400!RSZDT  使用的监控命令  

    }

    1 监控本机引导分区的使用情况,当空闲空间小于20%时是报警状态  当空闲空间小于10%时是报错状态

    define  command {     command_name   check_local_boot

            command_line $USER1$/check_disk  -w 20%  -c 10%  -p /boot

           #check_local_boot

           #commond_line  $USER1$/check_disk  -w  $ARG1$  -c  $ARG2$  -p $ARG3$

           #check_local_boot!20%!10%!/   }

      define service{    use             local-service

            host_name                         localhost

            service_description            boot

             check_command                check_local_boot  }

    2 监控本机ftp服务的运行状态

    define  command {   command_name    check_local_ftp

            command_line    /usr/local/nagios/libexec/check_ftp   -H   localhost  }

     define service{      use                                    local-service

             host_name                        localhost

            service_description            ftp

             check_command               check_local_ftp       }

    3监控本机正在运行进程的数量

    define  command {    command_name check_local_rproce

            command_line $USER1$/check_procs  -w $ARG1$  -c $ARG2$  -s R  }

     define service{

            use                              local-service

            host_name                        localhost

            service_description               running_process

             check_command                    check_local_rpoce!50!51!R       }

    4 监控登录本机系统用户数量时,登录用户数大于1时是报警状态 大于2时是报错状态

    # vim  localhost.cfg

     define service{          use         local-service         

             host_name                        localhost

             service_description           Current Users

              check_command              check_local_users!1!2         }

    5 不监控本机交换分区  ( :124,129s/^/#/ )

    # vim  localhost.cfg

    #define service{

    #        use                                      local-service  

    #        host_name                          localhost

    #        service_description             Swap Usage

    #       check_command                  check_local_swap!20!10

    #        }

     检查加载文件语法错误

    # /usr/local/nagios/bin/nagios    -v   /usr/local/nagios/etc/nagios.cfg

    #alias  plj='/usr/local/nagios/bin/nagios  -v  /usr/local/nagios/etc/nagios.cfg'

    #plj

     启用监控

    #/etc/init.d/nagios   stop

    # /etc/init.d/nagios  start

    5.2 监控远端主机

    5.2.1  监控公有数据 (监控时通过连接端口就可以获取到信息)

    要求:监控远端主机192.168.4.56 httpd服务和FTP服务的运行状态

    #cd  /usr/local/nagios/etc/

    #vim  nagios.cfg

    cfg_file=/usr/local/nagios/etc/objects/host12.cfg

    #cd  objects/

    # grep -v "#" localhost.cfg  > host12.cfg

    #vim host12.cfg

    define host{      use            linux-server

            host_name               host12

            address                   192.168.4.56      }

    define service{      use       local-service

            host_name                        host12

            service_description              httpd

            check_command                   check_12_httpd       }

    define service{  use                 local-service

            host_name                        host12

            service_description             ftp

            check_command                   check_12_ftp       }

    # vim  commands.cfg

    define command { command_name  check_12_ftp

            command_line  $USER1$/check_tcp -H 192.168.4.56  -p 21  }

    define command {  command_name  check_12_httpd

            command_line  $USER1$/check_tcp -H 192.168.4.56 -p 80  }

    #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

    #/etc/init.d/nagios  stop

    #/etc/init.d/nagios  start

    5.2.2   监控私有数据(进程数量 用户数   磁盘  cpu  内存)

    要求:监控远端主机192.168.4.101  引导分区的使用情况:空闲空间小于30% 报警   空闲空间小于15% 报错 。

    5.2.2.1 被监控的配置4.56

    a 安装监控插件

    #rpm  -q  gcc  gcc_c++

    #tar -zxvf nagios-plugins-2.1.4.tar.gz

    #cd nagios-plugins-2.1.4/

    #./configure

    #make

    #make  install

    #ls /usr/local/nagios/libexec/check_*

    #/usr/local/nagios/libexec/check_procs -w 100 -c 110  -s  [RS]

    #/usr/local/nagios/libexec/check_users -w 1  -c 2

    #/usr/local/nagios/libexec/check_disk -w 30% -c 15% -p /boot     

    b 运行nrpe服务

    1 装包

    #useradd nagios

    #rpm -q  openssl  openssl-devel

    #yum -y  install openssl-devel

    #tar -zxvf nrpe-3.0.1.tar.gz

    #cd nrpe-3.0.1/

    #./configure         //端口号5666

    #make  all     //配置说明文件(NRPE.pdf)

    #make install  &&  make  install-daemon && make install-config  && make install-init

    #ls /usr/local/nagios/bin/nrpe

    #ls /usr/local/nagios/etc/nrpe.cfg

    #ls /usr/local/nagios/libexec/check_nrpe

    #ls /usr/lib/systemd/system/nrpe.service

    修改配置 nrpe.cfg

    # vim  /usr/local/nagios/etc/nrpe.cfg

    98行 allowed_hosts=127.0.0.1, 192.168.4.5

    288行 command[nrpe_10_users]=/usr/local/nagios/libexec/check_users -w 1 -c 3

    command[nrpe_10_disk_boot]=

    /usr/local/nagios/libexec/check_disk -w 40% -c 30% -p /boot

    command[nrpe_10_disk_root]=

    /usr/local/nagios/libexec/check_disk -w 30% -c 20% -p /root

    command[nrpe_10_procs_r]=

    /usr/local/nagios/libexec/check_procs -w 50 -c 51 -s R

    command[nrpe_10_procs_s]=

    /usr/local/nagios/libexec/check_procs -w 100 -c 110 -s S

    command[nrpe_10_procs_z]=/usr/local/nagios/libexec/check_procs -w 2 -c 3 -s Z

    3启动nrpe服务

    #systemctl  start nrpe ;  systemctl  enable nrpe

    #netstat -utnalp  | grep :5666

    4连接本机的nrpe服务测试配置

    # cd /usr/local/nagios/libexec/

    #./check_nrpe  -h

    #./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_disk_boot

    #  ./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_disk_root

    # ./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_procs_z

    #  ./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_procs_r

    # ./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_procs_s

    # ./check_nrpe  -H 127.0.0.1 -p 5666 -c nrpe_10_users

    5.2.2.2 监控服务器的配置4.5

    a 安装提供check_nrpe插件的软件包

    #rpm -q  openssl  openssl-devel

    #yum -y  install openssl-devel

    #tar -zxvf nrpe-3.0.1.tar.gz

    #cd nrpe-3.0.1/

    #./configure

    #make all  &&  make install  && make install-plugin

    # ls /usr/local/nagios/libexec/check_nrpe

    b 使用插件check_nrpe连接被监控主机

    #/usr/local/nagios/libexec/check_nrpe -H 192.168.4.56 -p 5666 -c nrpe_check_users

    c 定义监控命令

    # vim  commands.cfg

    define command{    command_name    check_10_users

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_users   }

    define command{     command_name    check_10_disk_boot

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_disk_boot   }

    define command{     command_name    check_10_disk_root

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_disk_root   }

    define command{    command_name    check_10_procs_z

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_procs_z     }

    define command{       command_name    check_10_procs_r

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_procs_r     }

    define command{   command_name    check_10_procs_s

            command_line    $USER1$/check_nrpe  -H 192.168.4.56 -p 5666  -c nrpe_10_procs_s      }

    d 在监控远端主机12配置文件里调用定义的监控命令

    #vim nagios.cfg     cfg_file=/usr/local/nagios/etc/objects/host56.cfg

    #vim  host56.cfg

    define host{    use              linux-server          

             host_name               remote-server

             address                 192.168.4.56      }

    define service{       use             local-service  

            host_name                       remote-server

            service_description             users

    check_command check_10_users        }

    define service{       use                             local-service  

             host_name                       remote-server

            service_description             boot

    check_command check_10_disk_boot        }

    define service{      use                             local-service  

            host_name                       remote-server

             service_description             root

    check_command check_10_disk_root       }

    define service{       use                             local-service  

             host_name                       remote-server

             service_description             running-process

    check_command check_10_procs_r       }

    define service{        use                             local-service  

             host_name                       remote-server

             service_description             sleeping-process

    check_command check_10_procs_s     }

    define service{ use                             local-service  

             host_name                       remote-server

             service_description             js-process

    check_command check_10_procs_z   }

    e 启动nagios服务

    #/usr/local/nagios/bin/nagios   -v   /usr/local/nagios/etc/nagios.cfg

    #/etc/init.d/nagios  stop

    #/etc/init.d/nagios  start

    192.168.4.56

    # dd  if=/dev/zero  of=/boot/a.txt  bs=1M count=240

    5.3 监控报警

    #grep  nagios  /etc/passwd

    #rpm  -q postfix

    #systemctl  status  postfix

    # mail -s "xxx" nagios < /etc/hosts

    # su   -  nagios

    #mail

    6 访问监控服务器查看监控信息(登录监控页面查看监控信息)

    http://192.168.4.5/nagios

    ++++++++++++++++++++++++++++++++++++++++

    nagios扩展内容(百度)

    1 nagios 服务运行时,调用自定义监控脚本

    2 使用第三方邮件服务器或微信发送报警消息

    3 主机依赖监控(主从同步)

    4 服务依赖监控LAMP)

    5 配置nagios服务 把监控到的数据绘制成图片(显示快超却未超时的数据)

     

     

     

     

     

     

     

     

    案例1:常用系统监控命令 

    案例2:搭建nagios监控服务器 

    案例3:配置文件及插件使用 

    案例4:监控远程主机的公有数据 

    案例5:监控远程主机的私有数据 

    1 案例1:常用系统监控命令

    1.1 问题

    本案例要求练习常用的系统监控命令完成以下任务:

    使用vmstat命令监控内存及磁盘I/O信息

    使用iostat命令监控CPU处理器及磁盘的I/O信息

    使用sar命令监控系统最近的CPU/内存等活动

    1.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:使用vmstat命令监控内存及磁盘I/O信息

    1)报告内存、交换分区、CPU等活动信息,每2秒更新一次数据

    [root@svr7 ~]# vmstat 2

    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

     2  0      0 1447960   1204 331260    0    0   422     9   59  153  1  1 98  0  0

     0  0      0 1447944   1204 331260    0    0     0     0    9   12  0  0 100  0  0

     0  0      0 1447944   1204 331260    0    0     0     0    9   12  0

    .. ..

    2)报告一次磁盘的I/O信息

    [root@svr7 ~]# vmstat -d

    disk- ------------reads------------ ------------writes----------- -----IO------

           total merged sectors      ms  total merged sectors      ms    cur    sec

    vda     7863     12  576137    2560   1427     25   12085    6142      0      3

    sr0       11      0      88       3      0      0       0       0      0      0

    dm-0    6529      0  562281    2503    356      0    7989    6480      0      3

    dm-1     141      0    2536       7      0      0       0       0      0      0

    3)报告一次指定分区的I/O信息

    [root@svr7 ~]# vmstat -p /dev/vda1

    vda1          reads   read sectors  writes    requested writes

                    1010       8792       1025       4096

    步骤二:使用iostat命令监控CPU处理器及磁盘的I/O信息

    1)报告一次CPU和磁盘I/O信息

    [root@svr7 ~]# iostat

    Linux 3.10.0-327.el7.x86_64 (svr7.tedu.cn)     2017年05月03日     _x86_64_    (1 CPU)

    avg-cpu:  %user   %nice %system %iowait  %steal   %idle

               0.77    0.00    0.71    0.05    0.00   98.47

    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    vda               9.85       304.60         6.45     288160       6103

    scd0              0.01         0.05         0.00         44          0

    dm-0              7.30       297.28         4.29     281232       4055

    dm-1              0.15         1.34         0.00       1268          0

    2)报告CPU和磁盘I/O信息,每2秒钟采样一次

    [root@svr7 ~]# iostat 2

    Linux 3.10.0-327.el7.x86_64 (svr7.tedu.cn)     2017年05月03日     _x86_64_    (1 CPU)

    avg-cpu:  %user   %nice %system %iowait  %steal   %idle

               0.66    0.00    0.61    0.05    0.00   98.68

    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    vda               8.42       259.61         5.62     288168       6235

    scd0              0.01         0.04         0.00         44          0

    dm-0              6.25       253.37         3.77     281240       4187

    dm-1              0.13         1.14         0.00       1268          0

    avg-cpu:  %user   %nice %system %iowait  %steal   %idle

               0.00    0.00    0.00    0.00    0.00  100.00

    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    vda               0.00         0.00         0.00          0          0

    scd0              0.00         0.00         0.00          0          0

    dm-0              0.00         0.00         0.00          0          0

    dm-1              0.00         0.00         0.00          0          0

    .. ..

    步骤三:使用sar命令监控系统最近的CPU/内存等活动

    1)查看一次最近的系统活动完整(-A)报告

    [root@svr7 ~]# sar -A

    Linux 3.10.0-327.el7.x86_64 (svr7.tedu.cn)     2017年05月03日     _x86_64_    (1 CPU)

    11时20分01秒

    CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle

    11时30分01秒     all      0.17      0.00      0.11      0.01      0.00      0.00      0.00      0.00      0.00     99.71

    11时30分01秒       0      0.17      0.00      0.11      0.01      0.00      0.00      0.00      0.00      0.00     99.71

    平均时间:     all      0.17      0.00      0.11      0.01      0.00      0.00      0.00      0.00      0.00     99.71

    平均时间:       0      0.17      0.00      0.11      0.01      0.00      0.00      0.00      0.00      0.00     99.71

    11时20分01秒    proc/s   cswch/s

    11时30分01秒      0.39     23.27

    平均时间:      0.39     23.27

    11时20分01秒  pswpin/s pswpout/s

    11时30分01秒      0.00      0.00

    平均时间:      0.00      0.00

    11时20分01秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff

    11时30分01秒      6.30      0.35    165.40      0.03    133.94      0.00      0.00      0.00      0.00

    平均时间:      6.30      0.35    165.40      0.03    133.94      0.00      0.00      0.00      0.00

    11时20分01秒       tps      rtps      wtps   bread/s   bwrtn/s

    11时30分01秒      0.38      0.27      0.11     12.59      0.70

    平均时间:      0.38      0.27      0.11     12.59      0.70

    11时20分01秒   frmpg/s   bufpg/s   campg/s

    11时30分01秒     -4.90      0.00      1.37

    平均时间:     -4.90      0.00      1.37

    11时20分01秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty

    11时30分01秒   1444844    604264     29.49      1204    277020   1547884     37.33    249044    241260         0

    平均时间:   1444844    604264     29.49      1204    277020   1547884     37.33    249044    241260         0

    11时20分01秒 kbswpfree kbswpused  %swpused  kbswpcad   %swpcad

    11时30分01秒   2097148         0      0.00         0      0.00

    平均时间:   2097148         0      0.00         0      0.00

    .. ..

    2)报告CPU活动信息,以5秒为间隔再采用3次

    [root@svr7 ~]# sar -u 5 3

    Linux 3.10.0-327.el7.x86_64 (svr7.tedu.cn)     2017年05月03日     _x86_64_    (1 CPU)

    11时44分20秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

    11时44分25秒     all      0.00      0.00      0.00      0.00      0.00    100.00

    11时44分30秒     all      0.00      0.00      0.00      0.00      0.00    100.00

    11时44分35秒     all      0.00      0.00      0.00      0.00      0.00    100.00

    平均时间:     all      0.00      0.00      0.00      0.00      0.00    100.00

    3)报告最近的磁盘I/O信息

    [root@svr7 ~]# sar -b

    Linux 3.10.0-327.el7.x86_64 (svr7.tedu.cn)     2017年05月03日     _x86_64_    (1 CPU)

    .. ..

    11时20分01秒       tps      rtps      wtps   bread/s   bwrtn/s

    11时30分01秒      0.38      0.27      0.11     12.59      0.70

    11时40分01秒      0.25      0.13      0.12     15.62      0.93

    平均时间:      0.31      0.20      0.11     14.11      0.81

    2 案例2:搭建nagios监控服务器

    2.1 问题

    本案例要求搭建一台nagios监控服务器,确认Web界面可用:

    安装nagios、nagios-plugins软件包

    配置及访问web界面,将管理用户/密码均设为 nagiosadmin

    2.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:安装前的准备工作

    1)安装网站平台环境、编译工具

    [root@svr7 ~]# yum  -y  install  httpd  php  gd

    [root@svr7 ~]# yum  -y  install  gcc  glibc  glibc-common

    2)创建运行账号

    [root@svr7 ~]# groupadd  nagcmd

    [root@svr7 ~]# useradd  -G  nagcmd  nagios

    [root@svr7 ~]# gpasswd  -a  apache  nagcmd

    步骤二:编译安装nagios及nagios-plugins

    1)安装nagios

    [root@svr7 ~]# tar  xf  ~/nagios-4.3.1.tar.gz  -C  /usr/src/

    [root@svr7 ~]# cd  /usr/src/nagios-4.3.1/

    [root@svr7 nagios-4.3.1]# ./configure  --with-command-group=nagcmd

    [root@svr7 nagios-4.3.1]# make  all                      //编译

    [root@svr7 nagios-4.3.1]# make  install                 //安装程序

    [root@svr7 nagios-4.3.1]# make  install-init             //安装控制脚本

    [root@svr7 nagios-4.3.1]# make  install-config             //安装配置

    [root@svr7 nagios-4.3.1]# make  install-commandmode      //调权限

    [root@svr7 nagios-4.3.1]# make install-webconf             //部署网站配置

    [root@svr7 nagios-4.3.1]# chkconfig  --add  nagios          //加载服务配置

    2)安装nagios-plugins

    [root@svr7 ~]# tar  xf  ~/nagios-plugins-2.1.4.tar.gz  -C  /usr/src/

    [root@svr7 ~]# cd  /usr/src/nagios-plugins-2.1.4/

    [root@svr7 nagios-plugins-2.1.4]# ./configure  --with-nagios-user=nagios  --with-nagios-group=nagcmd

    [root@svr7 nagios-plugins-2.1.4]# make

    [root@svr7 nagios-plugins-2.1.4]# make install

    步骤三:启用及访问Nagios平台

    1)为Nagios平台添加Web管理用户

    [root@svr7 ~]# htpasswd  -c  /usr/local/nagios/etc/htpasswd.users nagiosadmin                                                  //建Web管理用户

    2)启用nagios、httpd服务

    [root@svr7 ~]# systemctl  restart  nagios      //启用nagios

    [root@svr7 ~]# systemctl  restart  httpd          //启用Web

    3)访问nagios网页界面

    firefox http://服务器地址/nagios/,如图-1所示。

    -1

    3 案例3:配置文件及插件使用

    3.1 问题

    本案例要求熟悉nagios的常用插件程序,完成以下任务:

    使用插件 check_http 检测本机的Web端口

    使用插件 check_tcp 检测本机的FTP服务端口

    使用插件 check_disk 检测本机根分区使用率:可用空间低于80%报 WARNING,可用空间低于60%报 CRITICAL

    3.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:使用插件 check_http 检测本机的Web端口

    1)关闭本机的httpd服务,执行check_http检查

    [root@svr7 ~]# /usr/local/nagios/libexec/check_http -H localhost -p 80connect to address localhost and port 80: 拒绝连接

    HTTP CRITICAL - Unable to open TCP socket

    2)启动本机的httpd服务,并建立默认首页index.html

    [root@svr7 ~]# vim  /var/www/html/index.html

    Default site.

    [root@svr7 ~]# systemctl  restart  httpd

    3)再次执行check_http检查

    [root@svr7 ~]# /usr/local/nagios/libexec/check_http  -H  localhost  -p  80

    HTTP OK: HTTP/1.1 200 OK - 302 bytes in 0.006 second response time |time=0.006236s;;;0.000000 size=302B;;;0

    步骤二:使用插件check_tcp检测本机的FTP服务端口

    1)未启动FTP服务时,执行check_ftp检查

    [root@svr7 ~]# /usr/local/nagios/libexec/check_ftp -H localhost -p 21

    connect to address localhost and port 21: 拒绝连接

    2)安装及启动vsftpd服务以后,再次执行check_ftp检查

    [root@svr7 ~]# yum  -y  install  vsftpd

    [root@svr7 ~]# systemctl  restart  vsftpd

    [root@svr7 ~]# /usr/local/nagios/libexec/check_ftp -H localhost -p 21

    FTP OK - 0.002 second response time on localhost port 21 [220 (vsFTPd 3.0.2)]|time=0.002164s;;;0.000000;10.000000

    步骤三:使用插件check_disk检测本机/boot分区使用率

    1)查看/boot目录所在分区的使用率

    [root@svr7 ~]# df  -hT  /boot

    文件系统       类型  容量  已用  可用 已用% 挂载点

    /dev/vda1      xfs   497M  140M  358M   29% /boot

    2)使用check_disk检查

    可用空间低于80%报 WARNING,可用空间低于60%报 CRITICAL

    [root@svr7 ~]# /usr/local/nagios/libexec/check_disk  -w  80%  -c  60%  -p  /boot

    DISK WARNING - free space: /boot 357 MB (71% inode=99%);| /boot=139MB;99;198;0;496

    3)查看实际使用率情况,调低阈值再次check_disk测试

    [root@svr7 ~]# /usr/local/nagios/libexec/check_disk  -w  60%  -c  40%  -p  /boot

    DISK OK - free space: /boot 357 MB (71% inode=99%);| /boot=139MB;297;198;0;496

    4 案例4:监控远程主机的公有数据

    4.1 问题

    本案例要求在Nagios平台上添加对远程主机pc207的监控,主要包括下列服务:

    ping连通状态

    Web服务

    FTP服务

    SSH服务

    4.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:准备被监控主机pc207

    1)正确配置IP地址,确保与主机svr7可相互ping通

    [root@pc207 ~]# ping  192.168.4.7

    PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.

    64 bytes from 192.168.4.7: icmp_seq=1 ttl=64 time=0.621 ms

    64 bytes from 192.168.4.7: icmp_seq=2 ttl=64 time=0.427 ms

    .. ..

    2)确保已启用httpd、vsftpd、sshd服务,并关闭防火墙服务firewalld

    [root@pc207 ~]# yum  -y  install  httpd  vsftpd

    .. ..

    [root@pc207 ~]# systemctl  restart  httpd  vsftpd  sshd

    [root@pc207 ~]# systemctl  disable  firewalld  --now

    步骤二:配置监控服务器svr7

    1)新建监控配置pc207.cfg,定义监控目标(主机、服务)

    [root@svr7 ~]# vim  /usr/local/nagios/etc/objects/pc207.cfg

    define host {

            use    linux-server

            host_name   pc207

            address  172.25.0.10

            }

    define service {

            use    local-service

            host_name   pc207

            service_description     PING

            check_command         check_ping!100.0,20%!500.0,60%

            }

    define service  {

            use    local-service

            host_name   pc207

            service_description          Web Server

            check_command               check_http

            }

    define service  {

            use    local-service

            host_name   pc207

            service_description           FTP Server

            check_command               check_ftp

            }

    define service  {

            use    local-service

            host_name   pc207

            service_description           SSH Server

            check_command               check_ssh

            }

    2)调整nagios.cfg,启用pc207.cfg监控配置

    [root@svr7 ~]# vim /usr/local/nagios/etc/nagios.cfg

    .. ..

    cfg_file=/usr/local/nagios/etc/objects/pc207.cfg

    3)重启nagios服务

    [root@svr7 ~]# systemctl  restart  nagios

    步骤三:刷新Nagios管理界面,确认新增主机pc207的监控结果

    1)确认Hosts下新增的主机,如图-2所示

    -2

    2)确认Services下新增的服务信息,如图-3所示

    -3

    5 案例5:监控远程主机的私有数据

    5.1 问题

    本案例要求在Nagios服务器上添加对远程主机pc207上私有数据的监控,完成以下监控项目:

    运行的进程数

    登录的用户数

    CPU负载

    根分区使用量

    5.2 方案

    Linux主机的内存信息、磁盘I/O信息等私有数据默认不对外提供,若希望从Nagios监控平台获取远程主机的私有数据,需要在被监控主机上配置启用nrpe服务。

    主要工作结构:Nagios监控端(check_nrpe插件) ==> 被监控端(nrpe服务),如图-4所示。

    -4

    5.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:准备被监控主机pc207

    1)安装nagios-plugins插件

    [root@pc207 ~]# yum  -y  install  gcc  glibc  glibc-common

    [root@pc207 ~]# groupadd  nagcmd

    [root@pc207 ~]# useradd  -G  nagcmd  nagios

    [root@pc207 ~]# tar  xf  ~/nagios-plugins-2.1.4.tar.gz  -C  /usr/src/

    [root@pc207 ~]# cd  /usr/src/nagios-plugins-2.1.4/

    [root@pc207 nagios-plugins-2.1.4]# ./configure  --with-nagios-user=nagios  --with-nagios-group=nagcmd

    [root@pc207 nagios-plugins-2.1.4]# make

    [root@pc207 nagios-plugins-2.1.4]# make install

    2)安装nrpe

    [root@pc207 ~]# yum  -y  install  openssl-devel          //安装SSL头文件

    [root@pc207 ~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/

    [root@pc207 ~]# cd  /usr/src/nrpe-3.1.0/

    [root@pc207 nrpe-3.1.0]# ./configure

    [root@pc207 nrpe-3.1.0]# make  all                      //编译所有

    [root@pc207 nrpe-3.1.0]# make  install                     //安装nrpe及插件

    [root@pc207 nrpe-3.1.0]# make  install-init              //安装服务

    [root@pc207 nrpe-3.1.0]# make  install-config              //安装配置文件

    3)定义nrpe监控命令

    [root@pc207 ~]# vim  /usr/local/nagios/etc/nrpe.cfg

    .. ..

    allowed_hosts=172.25.0.0/24,127.0.0.1,::1              //允许哪些主机

    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_rootdir]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p  /

    command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 -s Z

    command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

    4)启用nrpe服务并测试

    [root@pc207 ~]# systemctl  restart  nrpe

    [root@pc207 ~]# systemctl  enable  nrpe

    .. ..

    [root@pc207 ~]# /usr/local/nagios/libexec/check_nrpe   -H  localhost

    NRPE v3.1.0-rc1              //测试连本机nrpe服务

    步骤二:配置Nagios监控服务器

    1)为Nagios安装check_nrpe插件

    [root@svr7 ~]# yum  -y  install  openssl-devel

    [root@svr7 ~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/

    [root@svr7 ~]# cd  /usr/src/nrpe-3.1.0/

    [root@svr7 nrpe-3.1.0]# ./configure

    [root@svr7 nrpe-3.1.0]# make  all                  //编译所有

    [root@svr7 nrpe-3.1.0]# make  install-plugin         //安装check_nrpe插件

    2)测试连远程的nrpe服务,并添加远程nrpe监控指令

    [root@svr7 ~]# /usr/local/nagios/libexec/check_nrpe  -H  172.25.0.10

    NRPE v3.1.0-rc1                                  //测试连远程 的nrpe服务

    [root@svr7 ~]# vim  /usr/local/nagios/etc/objects/commands.cfg

    .. ..

    define command{

        command_name   check_nrpe

        command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

                                                  //-c 要求对方执行的命令

    }

    3)修改监控目标配置pc207.cfg,添加对远程主机pc207私有数据的获取

    [root@svr7 ~]# vim  /usr/local/nagios/etc/objects/pc207.cfg

    .. ..

    define service {

            use    local-service

            host_name    pc207

            service_description    NRPE-Total Procs

            check_command    check_nrpe!check_total_procs

            }

    define service {

            use    local-service

            host_name    pc207

            service_description    NRPE-Users

            check_command    check_nrpe!check_users

            }

    步骤三:刷新Nagios管理界面,确认主机pc207的私有数据监控结果

    确认pc207主机及服务监控结果,如图-5所示。

    -5

  • 相关阅读:
    Servant:基于Web的IIS管理工具
    mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
    使用 OWIN Self-Host ASP.NET Web API 2
    Xamarin和微软发起.NET基金会
    SQLite vs MySQL vs PostgreSQL:关系型数据库比较
    Mono 3.2.7发布,JIT和GC进一步改进
    如何使用Microsoft技术栈
    c#开源消息队列中间件EQueue 教程
    通过一组RESTful API暴露CQRS系统功能
    NEsper Nuget包
  • 原文地址:https://www.cnblogs.com/fuzhongfaya/p/8952986.html
Copyright © 2020-2023  润新知