在运维工作中,及时发现并处理系统故障至关重要。Zabbix 作为强大的监控工具,报警管理功能在这一过程中发挥着关键作用。通过合理配置报警管理,运维人员能够在系统出现异常时,第一时间收到通知,快速响应并解决问题,从而保障业务的连续性和稳定性。本篇文章将深入介绍 Zabbix 报警管理,包括报警媒介配置、动作与报警规则设定,以及报警管理的实际应用案例。
一、报警媒介配置
1. 邮件报警配置
邮件是 Zabbix 中最常用的报警媒介之一。要配置邮件报警,首先需确保 Zabbix Server 所在服务器能够正常发送邮件。多数 Linux 系统可借助 Sendmail 或 Postfix 实现邮件发送功能,本文以 Postfix 为例进行讲解。
安装和配置 Postfix
在 Zabbix Server 上执行以下命令安装 Postfix:
sudo yum install -y postfix
安装完成后,编辑 Postfix 配置文件/etc/postfix/main.cf:安装完成后,编辑 Postfix 配置文件/etc/postfix/main.cf:
sudo vi /etc/postfix/main.cf
添加或修改以下配置参数:
myhostname = your_hostname.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca - certs.crt
smtp_use_tls = yes
注释:myhostname指定服务器主机名;mydomain指定域名;relayhost指定邮件中继服务器地址及端口;smtp_sasl_auth_enable开启认证;smtp_sasl_password_maps指定认证密码文件路径。
创建认证密码文件/etc/postfix/sasl_passwd,并添加邮件服务器的账号和密码:
sudo vi /etc/postfix/sasl_passwd
文件内容示例:
[smtp.example.com]:587 username:password
生成认证密码文件数据库:
sudo postmap /etc/postfix/sasl_passwd
重启 Postfix 服务使配置生效:
sudo systemctl restart postfix
配置 Zabbix 邮件报警媒介
登录 Zabbix Web 界面,进入 “管理” -> “报警媒介类型” -> “创建媒体类型”,填写如下信息:
参数 | 值 | 注释 |
名称 | | 报警媒介名称 |
类型 | 电子邮件 | 报警媒介类型 |
SMTP 服务器 | 邮件服务器地址 | |
SMTP 端口 | 587 | 邮件服务器端口 |
SMTP 用户 | username | 邮件服务器用户名 |
SMTP 密码 | password | 邮件服务器密码 |
发件人 | sender@example.com | 发件人邮箱地址 |
2. 短信报警配置
除邮件报警外,短信报警也是重要的报警方式。借助短信网关服务,Zabbix 可实现短信报警功能。以云片网短信服务为例,介绍短信报警配置方法。
首先,注册云片网账号并获取 API Key。在 Zabbix Server 上安装curl工具,用于发送 HTTP 请求:
sudo yum install -y curl
在 Zabbix Web 界面创建新的报警媒介类型,填写如下信息:
参数 | 值 | 注释 |
名称 | SMS | 报警媒介名称 |
类型 | 脚本 | 报警媒介类型 |
脚本名称 | sms.sh | 报警脚本名称 |
创建报警脚本sms.sh:
sudo vi /usr/local/bin/sms.sh
脚本内容如下:
#!/bin/bash
api_key = "your_api_key"
mobile = "$1"
message = "$2"
curl -s "https://sms.yunpian.com/v2/sms/single_send.json" \
-d "apikey = $api_key" \
-d "mobile = $mobile" \
-d "text = $message"
注释:api_key为云片网 API Key;$1表示接收短信的手机号码;$2表示短信内容。设置脚本可执行权限:
sudo chmod +x /usr/local/bin/sms.sh
3. 钉钉报警配置
钉钉作为广泛使用的企业通讯工具,借助其机器人功能,能实现 Zabbix 的钉钉报警。
准备工作
首先,在钉钉群中添加机器人。打开钉钉群聊窗口,点击右上角的群设置图标,选择 “智能群助手”,点击 “添加机器人”。选择 “自定义” 机器人,设置机器人名字并获取 Webhook 地址,此地址用于向钉钉发送报警消息。
在 Zabbix 中配置钉钉报警媒介
在 Zabbix Server 上创建报警脚本dingtalk.sh:
sudo vi /usr/local/bin/dingtalk.sh
脚本内容如下:
#!/bin/bash
webhook="https://oapi.dingtalk.com/robot/send?access_token=your_access_token"
content=$2
curl -X POST $webhook \
-H 'Content-Type: application/json' \
-d "{
\"msgtype\": \"text\",
\"text\": {
\"content\": \"$content\"
}
}"
注释:webhook为钉钉机器人的 Webhook 地址,$2表示报警消息内容。通过curl命令向钉钉发送 POST 请求,实现报警消息推送。
赋予脚本执行权限:
sudo chmod +x /usr/local/bin/dingtalk.sh
在 Zabbix Web 界面创建新的报警媒介类型:进入 “管理”→“报警媒介类型”→“创建媒体类型”,填写如下信息:
参数 | 值 | 注释 |
名称 | DingTalk | 报警媒介名称 |
类型 | 脚本 | 报警媒介类型 |
脚本名称 | dingtalk.sh | 报警脚本名称 |
4. 企业微信报警配置
企业微信同样支持通过机器人实现报警功能。
准备工作:在企业微信管理后台创建一个群聊机器人,并获取 Webhook 地址。
在 Zabbix Server 上创建报警脚本wework.sh:
sudo vi /usr/local/bin/wework.sh
脚本内容如下:
#!/bin/bash
webhook="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key"
content=$2
curl -X POST $webhook \
-H 'Content-Type: application/json' \
-d "{
\"msgtype\": \"text\",
\"text\": {
\"content\": \"$content\"
}
}"
注释:webhook为企业微信机器人的 Webhook 地址,$2代表报警消息内容。利用curl发送 POST 请求推送报警消息。
赋予脚本执行权限:
sudo chmod +x /usr/local/bin/wework.sh
在 Zabbix Web 界面创建新的报警媒介类型:进入 “管理”→“报警媒介类型”→“创建媒体类型”,填写如下信息:
参数 | 值 | 注释 |
名称 | WeWork | 报警媒介名称 |
类型 | 脚本 | 报警媒介类型 |
脚本名称 | wework.sh | 报警脚本名称 |
通过添加以上四种的报警媒介,运维人员可在不同场景下,通过多种渠道及时获取报警信息,进一步提升 Zabbix 报警管理的灵活性与及时性。
二、动作与报警规则
1. 动作配置
动作定义了 Zabbix 在触发报警时执行的一系列操作。登录 Zabbix Web 界面,进入 “配置” -> “动作” -> “创建动作”,在 “名称” 字段输入动作名称,如 “主机故障报警”。在 “条件” 选项卡中,设置触发动作的条件,如主机状态为 “问题”。在 “操作” 选项卡中,选择报警媒介类型(如 Email 或 SMS),并指定接收报警的用户或用户组。
2. 报警规则
报警规则用于细化报警条件,确保在合适的情况下发送报警。可在动作的 “条件” 选项卡中,添加更多条件,如特定监控项的值超过阈值,或特定触发器处于 “问题” 状态。
三、报警管理应用案例
假设某服务器 CPU 使用率持续超过 80%,Zabbix 需向运维人员发送报警邮件。创建一个触发器,设置表达式为{Server:system.cpu.util[,avg1].last(0)}>80。然后创建一个动作,条件为该触发器处于 “问题” 状态,操作选择之前配置的 Email 报警媒介,并指定接收报警的运维人员邮箱。当 CPU 使用率超过 80% 时,运维人员将收到报警邮件。
通过合理配置 Zabbix 报警管理,可在系统出现异常时及时通知运维人员,有效提高运维效率,保障业务系统稳定运行。