使用nagios做运维监控

Nagios是一款开源的网络及服务的监控工具,其功能强大、灵活性强。能有效监控windows、Linux和Unix等系统的主机各种状态信息,交换机、路由器等网络设备,以及主机端口及URL服务等。根据不同业务故障级别发出告警信息给管理员,当故障恢复时也会发出恢复消息给管理员。

1. 环境准备

服务端:192.168.1.201

客户端:192.168.1.201、192.168.1.202

2. 安装nagios和nagios-plugins

  1. 配置扩展epel yum源 ,见之前的文章 yum源如何使用国内源

2.1 安装服务端

  1. 安装nagios服务及相关的服务

    注:由于我这里服务端的这台机器本身也是需要呗监控的,所有这台机器服务端和客户端都安装了。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    [root@zmr-service ~]# yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.aliyun.com
    * extras: mirrors.aliyun.com
    * updates: mirrors.aliyun.com
    base | 3.6 kB 00:00:00
    docker-ce-stable | 3.5 kB 00:00:00
    updates/7/x86_64/primary_db | 20 MB 00:00:26
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 nagios.x86_64.0.4.4.9-1.el7 将被 安装
    --> 正在处理依赖关系 group(nagios),它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 group(nagios),它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 mailx,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-common,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-plugins-disk,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-plugins-http,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-plugins-load,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-plugins-ping,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    --> 正在处理依赖关系 nagios-plugins-procs,它被软件包 nagios-4.4.9-1.el7.x86_64 需要
    ...
    ...

  2. 创建用户和密码(可选,默认的用户名和密码都是nagiosadmin)

    1
    2
    [root@zmr-service ~]# htpasswd -c /etc/nagios/passwd nagiosadmin

  3. 检测配置文件

    1
    2
    3
    [root@zmr-service ~]# nagios -v /etc/nagios/nagios.cfg

    如下图所示即配置正确,没有问题

    image-20230424145503453

  4. 启动服务

    1
    2
    [root@zmr-service ~]# service httpd start
    [root@zmr-service ~]# service nagios start
  5. 打开浏览器访问nagios

    image-20230424145908822

    image-20230424145935781

    看知道这个画面,表示服务端已经没问题了

2.2 安装客户端

客户端只需要安装客户端即可,因此不需要再安装nagios服务了

  1. 同上,配置扩展epel yum源

  2. 安装客户端所需的软件

    1
    [root@zmr-service ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
  3. 编辑配置文件

    1
    2
    3
    4
    5
    6
    # vim /etc/nagios/nrpe.cfg

    1.“allowed_hosts=127.0.0.1” 改为 “allowed_hosts=192.168.1.201” ---nagios服务主机

    2.” dont_blame_nrpe=0” 改为  “dont_blame_nrpe=1” 

  4. 启动服务

    1
    [root@zmr-service ~]# service nrpe start
  5. 服务端的机器(201),添加被监控的主机

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    [root@zmr-service ~]#  cd /etc/nagios/conf.d/

    [root@zmr-service ~]# vim 192.168.1.202.cfg

    define host{

            use                     linux-server            

            host_name           192.168.1.202

            alias                     1.202

            address                 192.168.1.202

            }

    define service{

            use                     generic-service

            host_name               192.168.1.202

            service_description     check_ping

            check_command           check_ping!100.0,20%!200.0,50%

            max_check_attempts 5

            normal_check_interval 1

    }

    define service{

            use                     generic-service

            host_name               192.168.1.202

            service_description     check_ssh

            check_command           check_ssh

            max_check_attempts      5   

            normal_check_interval    1 

            notification_interval         60 

    define service{

            use                     generic-service

            host_name               192.168.1.202

            service_description     check_http

            check_command           check_http

            max_check_attempts      5

            normal_check_interval    1

    }

    配置说明:

    1
    2
    3
    4
    service_description: 表示检查项的名称
    max_check_attempts  5  ;表示当nagios检测到问题时,一共尝试检测5次都有问题才会告警,如果该数值为1,那么检测到问题立即告警。
    normal_check_interval  1 ;重新检测的时间间隔,单位是分钟,默认是3分钟
    notification_interval  60  ;在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。 
  6. 检测配置文件,确认没有报错

    1
    [root@zmr-service ~]# nagios -v /etc/nagios/nagios.cfg
  7. 重启nagios服务

    1
    [root@zmr-service ~]# service nagios start
  8. 到页面上确认,监控机也已经出现了

    image-20230424155220975

    image-20230424155244086