• 当前位置: 首 页 > 教育百科 > 其他 > 正文

    网络工程师常用的2个监控工具:Nagios、Zabbix

    :2024年06月11日
    网络技术干货圈

    本文介绍网络工程师常用的监控工具有Nagios和Zabbix。Nagios是一款开源的网络监控工具,支持多种监控功能,如网络和服务器监控、服务监控、资源使用监控等。Zabbix则是一款功能强大的工具,可扩展性好,...

    转载请注明以下内容:
    来源:公众号【网络技术干货圈】
    作者:圈圈
    ID:wljsghq

    在现代网络管理中,监控工具是确保网络运行正常、快速发现和解决问题的关键。本文将详细介绍网络工程师常用的两款监控工具:Nagios、Zabbix。每款工具都有其独特的功能和使用场景,了解并掌握这些工具的使用对于网络工程师而言至关重要。

    10001.jpg

    Nagios

    Nagios是一款开源的网络监控工具,最初由Ethan Galstad在1999年发布。它的设计目的是监控系统的运行状态,包括网络设备、服务器、应用程序及服务,并在问题发生时提供告警。Nagios的核心优势在于其灵活的插件系统,可以通过各种插件扩展其功能,适应不同的监控需求。

    https://www.nagios.org/

    10002.jpg

    主要功能

    Nagios的主要功能包括:

    1. 网络和服务器监控:监控主机的可达性和服务的运行状态。

    2. 服务监控:支持HTTP、SMTP、POP3、NNTP、PING等常见协议的监控。

    3. 资源使用监控:监控CPU负载、内存使用、磁盘使用等系统资源。

    4. 告警机制:通过电子邮件、短信等方式发送告警通知,及时报告问题。

    5. 插件支持:通过自定义插件扩展监控功能,支持几乎所有的应用程序、服务和系统。

    安装与配置

    为了使用Nagios进行网络监控,首先需要在服务器上安装并配置Nagios。

    在安装Nagios之前,需要准备一台运行Linux操作系统的服务器。本文以CentOS 7为例,介绍Nagios的安装过程。

    1. 更新系统包:

    sudo yum update

    1. 安装必要的软件包:

    sudo yum install httpd php gcc glibc glibc-common gd gd-devel make net-snmp

    1. 启动并配置HTTP服务器:

    sudo systemctl start httpd

    sudo systemctl enable httpd

    1. 下载并解压Nagios Core源码包:

    cd /tmp

    wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz

    tar -zxvf nagios-4.4.6.tar.gz

    cd nagios-4.4.6

    1. 配置、编译并安装Nagios:

    ./configure

    make all

    sudo make install

    sudo make install-init

    sudo make install-commandmode

    sudo make install-config

    sudo make install-webconf

    1. 创建Nagios用户和组:

    sudo useradd nagios

    sudo groupadd nagcmd

    sudo usermod -a -G nagcmd nagios

    sudo usermod -a -G nagcmd apache

    1. 下载并解压Nagios插件:

    cd /tmp

    wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz

    tar -zxvf nagios-plugins-2.3.3.tar.gz

    cd nagios-plugins-2.3.3

    1. 配置、编译并安装Nagios插件:

    ./configure --with-nagios-user=nagios --with-nagios-group=nagios

    make

    sudo make install

    1. 启动Nagios服务并配置为开机自启动:

    sudo systemctl start nagios

    sudo systemctl enable nagios

    1. 确保Apache服务器也在运行:

    sudo systemctl start httpd

    sudo systemctl enable httpd

    10003.jpg

    使用方法

    Nagios的配置文件主要位于/usr/local/nagios/etc目录下。通过编辑这些配置文件,可以定义需要监控的主机、服务和告警规则。

    • nagios.cfg:主配置文件,控制Nagios的全局设置。

    • objects/commands.cfg:命令定义文件,包含Nagios使用的检查命令。

    • objects/contacts.cfg:联系人定义文件,定义告警接收者。

    • objects/localhost.cfg:本地主机和服务定义文件,默认示例。

    配置示例

    1. 编辑nagios.cfg,确保配置正确:

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

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

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

    1. 添加监控对象

    在objects/localhost.cfg文件中,添加需要监控的主机和服务。例如:

    define host {

    use             linux-server

    host_name       webserver

    alias           My Web Server

    address         192.168.1.1

    }

    define service {

    use                     generic-service

    host_name               webserver

    service_description     HTTP

    check_command           check_http

    }

    检查配置文件并重启Nagios

    1. 检查配置文件语法:

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

    1. 如果没有错误,重启Nagios:

    sudo systemctl restart nagios

    实际案例

    案例一:监控Web服务器

    配置Nagios监控一台Web服务器的运行状态,并设置告警策略。当Web服务器无法访问时,Nagios会发送邮件告警。

    1. 添加Web服务器的主机定义:

    define host {

    use             linux-server

    host_name       webserver

    alias           My Web Server

    address         192.168.1.1

    }

    1. 添加HTTP服务的监控:

    define service {

    use                     generic-service

    host_name               webserver

    service_description     HTTP

    check_command           check_http

    notification_interval   10 ; 每10分钟通知一次

    notification_options    w,u,c,r ; 通知类型:warning, unknown, critical, recovery

    }

    1. 配置联系人以接收告警通知:

    编辑contacts.cfg文件,添加联系人信息:

    define contact {

    contact_name            admin

    alias                   Nagios Admin

    service_notification_period     24x7

    host_notification_period        24x7

    service_notification_options    w,u,c,r

    host_notification_options       d,u,r

    service_notification_commands   notify-service-by-email

    host_notification_commands      notify-host-by-email

    email                   admin@example.com

    }

    1. 配置告警命令:

    编辑commands.cfg文件,定义告警命令:

    define command {

    command_name    notify-service-by-email

    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

    }

    define command {

    command_name    notify-host-by-email

    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nHost: $HOSTNAME$\nState: $HOSTSTATE$\n\nAddress: $HOSTADDRESS$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$HOSTOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

    }

    案例二:监控数据库服务器

    配置Nagios监控一台MySQL数据库服务器的性能指标,包括CPU使用率、内存使用率、磁盘I/O、数据库查询性能等。当某项指标超出阈值时,发送告警邮件。

    1. 添加数据库服务器的主机定义:

    define host {

    use             linux-server

    host_name       dbserver

    alias           My Database Server

    address         192.168.1.2

    }

    1. 添加MySQL服务的监控:

    首先,需要安装MySQL监控插件,如check_mysql。假设插件已安装并配置好,可以在Nagios中添加相应的服务定义:

    define service {

    use                     generic-service

    host_name               dbserver

    service_description     MySQL

    check_command           check_mysql

    notification_interval   10

    notification_options    w,u,c,r

    }

    深入配置与高级功能

    除了基本的安装和配置,Nagios还提供了一些高级功能,可以更有效地帮助管理员监控和管理网络系统。

    使用NRPE插件进行远程监控

    NRPE(Nagios Remote Plugin Executor)插件允许Nagios服务器执行远程主机上的插件,从而监控远程主机的状态。下面是配置NRPE插件的步骤:

    1. 在远程主机上安装NRPE和Nagios插件:

    sudo yum install nrpe nagios-plugins-all

    1. 配置NRPE:

    编辑/etc/nagios/nrpe.cfg文件,允许Nagios服务器访问:

    allowed_hosts=127.0.0.1,192.168.1.10

    1. 在NRPE配置文件中定义命令:

    command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10

    command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

    1. 启动并启用NRPE服务:

    sudo systemctl start nrpe

    sudo systemctl enable nrpe

    1. 在Nagios服务器上配置远程主机和服务检查:

    在Nagios服务器的配置文件中添加远程主机和服务定义:

    define host {

    use             linux-server

    host_name       remote_host

    alias           Remote Host

    address         192.168.1.20

    }

    define service {

    use                     generic-service

    host_name               remote_host

    service_description     Users

    check_command           check_nrpe!check_users

    }

    define service {

    use                     generic-service

    host_name               remote_host

    service_description     Load

    check_command           check_nrpe!check_load

    }

    使用Nagios XI进行高级管理

    Nagios XI是Nagios的商业版本,提供了更加用户友好的界面和一些高级功能,如自动发现、配置向导、报告和预测分析等。虽然Nagios XI是付费软件,但对于大规模部署和需要更复杂管理功能的企业来说,它是一个非常值得考虑的选项。

    10004.jpg

    1. 安装Nagios XI:

    Nagios XI的安装比Nagios Core稍微复杂,需要更多的系统资源。可以参考官方文档进行安装:https://www.nagios.com/products/nagios-xi/

    1. 使用自动发现功能:

    Nagios XI提供自动发现功能,可以快速发现网络中的设备并进行初始配置,大大减少手工配置的工作量。

    1. 配置向导:

    配置向导帮助用户快速配置常见的监控场景,如Web服务器、数据库服务器、网络设备等,极大地简化了配置过程。

    使用Nagios Fusion进行集中管理

    Nagios Fusion是另一款Nagios的商业产品,允许用户集中管理多个Nagios服务器。对于大型企业或多站点的网络监控,Nagios Fusion提供了统一的视图和集中管理功能。

    1. 安装Nagios Fusion:

    同样,Nagios Fusion的安装可以参考官方文档:https://www.nagios.com/products/nagios-fusion/

    1. 添加多个Nagios服务器:

    在Nagios Fusion的管理界面中,可以添加多个Nagios服务器,集中查看和管理它们的状态。

    1. 统一视图:

    Nagios Fusion提供了统一的视图,显示所有连接的Nagios服务器的状态,帮助管理员快速了解整个网络的健康状况。

    以下是一个复杂的实际案例,展示了如何使用Nagios监控一个包含多种设备和服务的网络环境。

    某公司拥有一个大型网络环境,包括多个Web服务器、数据库服务器、文件服务器和网络设备(如路由器、交换机)。公司希望使用Nagios监控所有这些设备,并在出现问题时及时通知相关管理员。

    定义主机组:

    为了更好地组织和管理主机,可以将相同类型的主机分组。例如,将所有Web服务器分为一个组:

    define hostgroup {

    hostgroup_name  web-servers

    alias           Web Servers

    members         webserver1,webserver2,webserver3

    }

    define hostgroup {

    hostgroup_name  db-servers

    alias           Database Servers

    members         dbserver1,dbserver2

    }

    define hostgroup {

    hostgroup_name  file-servers

    alias           File Servers

    members         fileserver1,fileserver2

    }

    定义服务模板:

    为了减少重复配置,可以定义一些服务模板。例如,定义一个HTTP服务模板:

    define service {

    name                            http-service

    use                             generic-service

    check_command                   check_http

    notification_interval           30

    notification_options            w,u,c,r

    register                        0

    }

    应用模板到主机组:

    将HTTP服务模板应用到所有Web服务器:

    define service {

    use                             http-service

    hostgroup_name                  web-servers

    service_description             HTTP

    }

    添加特定服务监控:

    为数据库服务器添加MySQL监控:

    define service {

    use                             generic-service

    hostgroup_name                  db-servers

    service_description             MySQL

    check_command                   check_mysql

    notification_interval           10

    notification_options            w,u,c,r

    }

    配置告警策略:

    为每个主机组配置不同的告警策略。例如,为Web服务器配置邮件告警,为数据库服务器配置短信告警:

    define contact {

    contact_name                    webadmin

    alias                           Web Admin

    service_notification_period     24x7

    host_notification_period        24x7

    service_notification_options    w,u,c,r

    host_notification_options       d,u,r

    service_notification_commands   notify-service-by-email

    host_notification_commands      notify-host-by-email

    email                           webadmin@example.com

    }

    define contact {

    contact_name                    dbadmin

    alias                           Database Admin

    service_notification_period     24x7

    host_notification_period        24x7

    service_notification_options    w,u,c,r

    host_notification_options       d,u,r

    service_notification_commands   notify-service-by-sms

    host_notification_commands      notify-host-by-sms

    pager                           +1234567890

    }

    Zabbix

    Zabbix是一款企业级开源监控解决方案,由Alexei Vladishev在1998年创建,并于2001年发布第一个版本。Zabbix的设计目标是提供全面的监控功能,涵盖从硬件到软件、从网络设备到虚拟化环境的监控需求。Zabbix不仅支持实时监控,还能生成详细的报告和图表,帮助管理员进行性能分析和容量规划。

    10005.jpg

    Zabbix的主要功能包括:

    1. 自动发现:能够自动发现网络中的设备和服务,并生成相应的监控项。

    2. 多种监控方式:支持SNMP、JMX、IPMI、WMI、agent、agentless等多种监控方式。

    3. 高级告警:支持多种告警渠道,如电子邮件、短信、即时通讯工具等,具备灵活的告警策略和依赖关系管理。

    4. 可视化:提供丰富的图表、仪表盘、报告等可视化工具,帮助管理员直观地了解系统状态。

    5. 数据存储和趋势分析:支持大规模数据存储和长时间趋势分析,方便进行历史数据查询和分析。

    Zabbix安装与配置

    为了使用Zabbix进行网络监控,首先需要在服务器上安装并配置Zabbix。

    在安装Zabbix之前,需要准备一台运行Linux操作系统的服务器。本文以CentOS 7为例,介绍Zabbix的安装过程。

    1. 更新系统包:

    sudo yum update

    1. 安装MariaDB数据库:

    sudo yum install mariadb-server mariadb

    sudo systemctl start mariadb

    sudo systemctl enable mariadb

    1. 安装Apache和PHP:

    sudo yum install httpd php php-mysql php-gd php-xml php-bcmath php-mbstring

    sudo systemctl start httpd

    sudo systemctl enable httpd

    1. 添加Zabbix仓库:

    sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm

    sudo yum clean all

    1. 安装Zabbix Server、Web前端和Agent:

    sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

    1. 创建Zabbix数据库和用户:

    mysql -uroot -p

    CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

    CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

    FLUSH PRIVILEGES;

    exit;

    1. 导入初始架构和数据:

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

    1. 编辑/etc/zabbix/zabbix_server.conf文件,配置数据库连接:

    DBHost=localhost

    DBName=zabbix

    DBUser=zabbix

    DBPassword=password

    1. 启动并启用Zabbix Server和Agent:

    sudo systemctl start zabbix-server

    sudo systemctl enable zabbix-server

    sudo systemctl start zabbix-agent

    sudo systemctl enable zabbix-agent

    1. 编辑Apache配置文件/etc/httpd/conf.d/zabbix.conf:

    php_value date.timezone Europe/Riga

    将Europe/Riga替换为实际的时区,例如Asia/Shanghai。

    1. 启动并启用Apache:

    sudo systemctl restart httpd

    1. 通过Web浏览器访问Zabbix前端安装向导,完成安装配置:

    访问//your-server-ip/zabbix,根据提示完成安装向导的配置。

    使用方法

    完成安装和基本配置后,可以开始使用Zabbix进行监控。

    添加主机和监控项

    1. 添加主机:

    在Zabbix前端界面,导航到“Configuration” -> “Hosts”,点击“Create host”按钮,添加需要监控的主机。配置主机名、群组、接口等信息。

    1. 创建监控项:

    在主机配置页面,导航到“Items”标签,点击“Create item”按钮,添加需要监控的项。例如,监控CPU使用率:

    Name: CPU Load

    Type: Zabbix agent

    Key: system.cpu.load[percpu,avg1]

    Type of information: Numeric (float)

    Units: %

    10006.jpg

    1. 创建触发器:

    在主机配置页面,导航到“Triggers”标签,点击“Create trigger”按钮,添加告警触发条件。例如,CPU使用率超过80%时触发告警:

    Name: CPU load is too high

    Expression: {hostname:system.cpu.load[percpu,avg1].last()} > 0.8

    Severity: High

    配置告警和通知

    1. 添加媒体类型:

    导航到“Administration” -> “Media types”,添加新的媒体类型(如电子邮件、短信等)。

    1. 配置告警动作:

    导航到“Configuration” -> “Actions”,点击“Create action”按钮,配置告警动作。例如,配置当CPU使用率超过阈值时发送电子邮件通知:

    Name: CPU load high alert

    Event source: Trigger

    Condition: Trigger severity = "High"

    Operation: Send message to user group "Zabbix administrators"

    使用模板

    Zabbix提供了许多预定义的模板,帮助快速配置常见的监控场景。可以在Zabbix前端界面导航到“Configuration” -> “Templates”,导入或创建模板,并应用到需要监控的主机上。

    实际案例

    案例一:监控Web服务器

    配置Zabbix监控一台Web服务器的运行状态,包括HTTP响应时间、CPU使用率、内存使用率等。当某项指标超出阈值时,发送告警通知。

    1. 添加Web服务器主机:

    在Zabbix前端添加Web服务器主机,配置基本信息。

    1. 创建HTTP监控项:

    在主机配置页面的“Items”标签,创建HTTP监控项:

    Name: HTTP response time

    Type: HTTP agent

    Key: web.page.get[example.com,,80]

    Type of information: Numeric (float)

    Units: s

    1. 创建触发器:

    在主机配置页面的“Triggers”标签,创建触发器:

    Name: HTTP response time is too high

    Expression: {hostname:web.page.get[example.com,,80].last()} > 2

    Severity: High

    1. 配置告警通知:

    导航到“Configuration” -> “Actions”,创建告警动作,发送电子邮件通知管理员。

    案例二:监控数据库服务器

    配置Zabbix监控一台MySQL数据库服务器的性能指标,包括CPU使用率、内存使用率、磁盘I/O、数据库查询性能等。当某项指标超出阈值时,发送告警通知。

    1. 添加数据库服务器主机:

    在Zabbix前端添加数据库服务器主机,配置基本信息。

    1. 导入MySQL模板:

    导航到“Configuration” -> “Templates”,导入MySQL监控模板。

    1. 应用模板到数据库服务器:

    在数据库服务器主机配置页面,导航到“Templates”标签,选择MySQL模板并应用。

    1. 创建自定义监控项和触发器:

    根据具体需求,创建额外的监控项和触发器。例如,监控MySQL查询时间:

    Name: MySQL query time

    Type: Zabbix agent

    Key: mysql.query.time

    Type of information: Numeric (float)

    Units: s

    创建触发器:

    Name: MySQL query time is too high

    Expression: {hostname:mysql.query.time.last()} > 1

    Severity: High

    深入配置与高级功能

    除了基本的安装和配置,Zabbix还提供了一些高级功能,可以更有效地帮助管理员监控和管理网络系统。

    使用Zabbix代理和代理守护进程

    Zabbix代理(Agent)和代理守护进程(Proxy)是Zabbix的重要组件,允许在被监控主机上收集数据,并将其发送到Zabbix服务器。

    Zabbix代理

    Zabbix代理安装在被监控主机上,直接从操作系统和应用程序收集数据,并将其发送到Zabbix服务器。以下是安装和配置Zabbix代理的步骤:

    1. 在被监控主机上安装Zabbix代理:

    sudo yum install zabbix-agent

    1. 配置Zabbix代理:

    编辑/etc/zabbix/zabbix_agentd.conf文件,配置服务器地址和主机名:

    Server=your_zabbix_server_ip

    Hostname=your_monitored_host_name

    1. 启动并启用Zabbix代理:

    sudo systemctl start zabbix-agent

    sudo systemctl enable zabbix-agent

    Zabbix代理守护进程

    Zabbix代理守护进程用于代理模式下,可以收集分布式网络中的数据并汇总到一个或多个Zabbix服务器。这对于大规模分布式网络环境尤为有用。

    1. 在代理服务器上安装Zabbix代理守护进程:

    sudo yum install zabbix-proxy-mysql

    1. 配置Zabbix代理守护进程:

    编辑/etc/zabbix/zabbix_proxy.conf文件,配置数据库和Zabbix服务器连接:

    Server=your_zabbix_server_ip

    Hostname=your_proxy_name

    DBHost=localhost

    DBName=zabbix_proxy

    DBUser=zabbix

    DBPassword=password

    1. 启动并启用Zabbix代理守护进程:

    sudo systemctl start zabbix-proxy

    sudo systemctl enable zabbix-proxy

    使用Zabbix API进行自动化

    Zabbix提供了功能强大的API接口,允许用户通过编程方式与Zabbix系统进行交互,进行自动化操作。例如,批量添加主机、监控项、触发器等。

    1. Zabbix API认证:

    首先,需要获取Zabbix API的认证令牌:

    import requests

    import json

    url = "http://your_zabbix_server_ip/api_jsonrpc.php"

    headers = {"Content-Type": "application/json"}

    data = {

    "jsonrpc": "2.0",

    "method": "user.login",

    "params": {

    "user": "Admin",

    "password": "zabbix"

    },

    "id": 1

    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    auth_token = response.json()["result"]

    1. 通过API添加主机:

    使用获取的认证令牌,通过API添加主机:

    data = {

    "jsonrpc": "2.0",

    "method": "host.create",

    "params": {

    "host": "New_Host",

    "interfaces": [

    {

    "type": 1,

    "main": 1,

    "useip": 1,

    "ip": "192.168.1.10",

    "dns": "",

    "port": "10050"

    }

    ],

    "groups": [

    {

    "groupid": "2"

    }

    ]

    },

    "auth": auth_token,

    "id": 2

    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    print(response.json())

    通过这些API调用,可以实现Zabbix系统的自动化配置和管理,极大地提高工作效率。

    使用Zabbix的可视化和报表功能

    Zabbix提供了丰富的可视化和报表功能,帮助管理员更好地分析和展示监控数据。

    1. 创建图表:

    在Zabbix前端界面,导航到“Monitoring” -> “Graphs”,选择需要展示的主机和监控项,创建图表。例如,展示CPU使用率、内存使用率等。

    1. 创建仪表盘:

    导航到“Monitoring” -> “Dashboard”,创建自定义仪表盘,添加多个小组件(如图表、地图、报警视图等),实时监控系统状态。

    1. 生成报表:

    导航到“Reports” -> “Availability Report”或“Triggers Top 100”,生成系统可用性报告或最频繁触发的告警报告,进行深入分析。

    实际案例:监控复杂网络环境

    以下是一个复杂的实际案例,展示了如何使用Zabbix监控一个包含多种设备和服务的网络环境。

    案例背景

    某公司拥有一个大型网络环境,包括多个Web服务器、数据库服务器、文件服务器和网络设备(如路由器、交换机)。公司希望使用Zabbix监控所有这些设备,并在出现问题时及时通知相关管理员。

    案例配置

    1. 定义主机组:

    为了更好地组织和管理主机,可以将相同类型的主机分组。例如,将所有Web服务器分为一个组:

    define hostgroup {

    hostgroup_name  web-servers

    alias           Web Servers

    members         webserver1,webserver2,webserver3

    }

    define hostgroup {

    hostgroup_name  db-servers

    alias           Database Servers

    members         dbserver1,dbserver2

    }

    define hostgroup {

    hostgroup_name  file-servers

    alias           File Servers

    members         fileserver1,fileserver2

    }

    1. 定义监控模板:

    为了减少重复配置,可以定义一些监控模板。例如,定义一个HTTP服务模板:

    define service {

    name                            http-service

    use                             generic-service

    check_command                   check_http

    notification_interval           30

    notification_options            w,u,c,r

    register                        0

    }

    1. 应用模板到主机组:

    将HTTP服务模板应用到所有Web服务器:

    define service {

    use                             http-service

    hostgroup_name                  web-servers

    service_description             HTTP

    }

    1. 添加特定服务监控:

    为数据库服务器添加MySQL监控:

    define service {

    use                             generic-service

    hostgroup_name                  db-servers

    service_description             MySQL

    check_command                   check_mysql

    notification_interval           10

    notification_options            w,u,c,r

    }

    1. 配置告警策略:

    为每个主机组配置不同的告警策略。例如,为Web服务器配置邮件告警,为数据库服务器配置短信告警:

    define contact {

    contact_name                    webadmin

    alias                           Web Admin

    service_notification_period     24x7

    host_notification_period        24x7

    service_notification_options    w,u,c,r

    host_notification_options       d,u,r

    service_notification_commands   notify-service-by-email

    host_notification_commands      notify-host-by-email

    email                           webadmin@example.com

    }

    define contact {

    contact_name                    dbadmin

    alias                           Database Admin

    service_notification_period     24x7

    host_notification_period        24x7

    service_notification_options    w,u,c,r

    host_notification_options       d,u,r

    service_notification_commands   notify-service-by-sms

    host_notification_commands      notify-host-by-sms

    pager                           +1234567890

    }

    ---END---

    来源:https://mp.weixin.qq.com/s/r2Y1yLxQYGv1LjJGib53hQ

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 转载 注明 以下 内容 来源
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证