【Zabbix技术系列文章】第③篇——Zabbix 报警管理

        在运维工作中,及时发现并处理系统故障至关重要。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 界面,进入 “管理” -> “报警媒介类型” -> “创建媒体类型”,填写如下信息:

参数

注释

名称

Email

报警媒介名称

类型

电子邮件

报警媒介类型

SMTP 服务器

smtp.example.com

邮件服务器地址

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 报警管理,可在系统出现异常时及时通知运维人员,有效提高运维效率,保障业务系统稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳腾_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值