zabbix报警机制

本文详细介绍了如何配置Zabbix的邮件报警功能,包括服务器上的邮件设置、Zabbix web界面的报警媒介类型创建和动作设定,以及故障报警机制的测试。通过这些步骤,确保在服务出现问题时能及时接收到报警邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置邮件报警功能

服务器上配置

1、安装mailx

yum -y install mailx

2、编辑/etc/mail.rc/

vim /etc/mail.rc/


set from=mxx941113@163.com
set smtp=smtp.163.com
set smtp-auth-user=mxx941113@163.com
set smtp-auth-password=授权码(这里是自己邮箱的授权码,下面有具体步骤)
set smtp-auth=login

邮箱授权码的获取

我这里以163邮箱为例

mark

3、测试邮箱报警是否成功

echo "hello world" | mail -s "testmail" mxx941113@163.com

mark

4、编辑自动发送报警邮件脚本

cd /usr/lib/zabbix/alertscripts			#注意这里一定要进入这个目录底下,不然后面的邮件发送会出问题!
vim mailx.sh

#!/bin/bash
#send mail

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

5、创建mailx.log文件,并授权

touch /tmp/mailx.log
chown -R zabbix.zabbix /tmp/mailx.log 
chmod +x /usr/lib/zabbix/alertscripts/mail.sh 
chown -R zabbix.zabbix /usr/lib/zabbix/

6、测试脚本是否成功

 ./mailx.sh mxx941113@163.com "nihao" "hello world"

mark

服务器web的配置

登录https://192.168.28.40/zabbix

1、点击<管理>------><报警媒介类型>------><创建媒体类型>

mark

2、点击<报警媒介类型>,编辑具体内容

mark

3、编辑完报<警媒介类型>,点击<选项>,进行编辑

mark

mark

4、点击<管理>-----><报警媒介>,进行编辑

mark

5、点击<更新>

mark

6、点击<配置>-----><动作>,删除模板,创建新动作

mark

7、创建动作

mark

8、点击<操作>,进行编辑

默认操作步骤持续时间:60		#单位s
	默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
	消息内容:   
		告警主机:{HOST.NAME}
		告警 IP:{HOST.IP}
		告警时间:{EVENT.DATE}-{EVENT.TIME}
		告警等级:{TRIGGER.SEVERITY}
		告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
		事件 ID:{EVENT.ID}

mark

mark

9、编辑<恢复操作>

默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
	消息内容:   
		恢复主机:{HOST.NAME}
		恢复 IP:{HOST.IP}
		恢复时间:{EVENT.DATE}-{EVENT.TIME}
		恢复等级:{TRIGGER.SEVERITY}
		恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
		恢复 ID:{EVENT.ID}

mark

在<新的>中的编辑和<操作>的一样

10、点击<添加>

mark

mark

测试故障报警机制

1、开始时,没有报警信息

mark

2、在agent上停止sshd服务

#查看sshd服务是否开启
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2021-03-29 19:29:12 CST; 3 days ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 17939 (sshd)
    Tasks: 1
   Memory: 5.1M
   CGroup: /system.slice/sshd.service
           └─17939 /usr/sbin/sshd -D

4月 02 11:24:23 localhost.localdomain sshd[8554]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:25:23 localhost.localdomain sshd[8564]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:26:23 localhost.localdomain sshd[8574]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:27:23 localhost.localdomain sshd[8584]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:28:23 localhost.localdomain sshd[8595]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:29:23 localhost.localdomain sshd[8605]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:30:23 localhost.localdomain sshd[8620]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:31:23 localhost.localdomain sshd[8630]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:32:23 localhost.localdomain sshd[8640]: Connection closed by 192.168.28.40 port 3...h]
4月 02 11:33:23 localhost.localdomain sshd[8651]: Connection closed by 192.168.28.40 port 3...h]
Hint: Some lines were ellipsized, use -l to show in full.


#关闭sshd服务
[root@localhost ~]# systemctl stop sshd

这时,我们会收到报警邮件和报警信息

mark

mark

3、启动sshd服务

[root@localhost ~]# systemctl start sshd

刷新页面,会发现报警解除!被收到邮件!

mark
mark

### Zabbix 报警机制 Zabbix报警机制主要通过触发器(Trigger)、动作(Action)和媒体类型(Media Type)来实现。当某个指标超出预设阈值时,会触发相应的报警事件并通知指定的接收者。 #### 触发器配置 触发器用于检测特定条件是否满足,并基于此生成事件。例如,在 Linux 服务器中监控系统账户数量: ```bash {Template OS Linux:system.users.num[].last()}>35 ``` 这表示如果 `system.users.num[]` 返回的用户数大于 35,则触发报警[^1]。 #### 动作配置 动作定义了如何响应触发器产生的事件。可以通过创建一个新的动作来设置报警邮件的通知方式。在“Actions”页面中新增一个动作,选择合适的触发器条件,并关联到 Media 类型。 #### 媒体类型配置 为了发送电子邮件告警,需先配置 Mail 邮件服务作为 Media 类型之一。进入 “Administration -> Media Types”,添加 SMTP 设置参数如服务器地址、端口等信息[^2]。 --- ### Zabbix 进阶操作 除了基本的功能外,还可以利用一些高级特性提升效率与灵活性: #### 自动发现 (Auto Discovery) 自动发现功能使得管理员无需手动添加每台设备即可完成初始配置工作。它支持多种类型的资源扫描,比如网络接口、文件系统利用率等等。对于新加入网络中的客户端机器,只需确保其能够被主节点探测到便可快速纳入管理范围之内[^1]。 #### 主动模式 vs 被动模式 默认情况下采用被动模式收集数据;而主动模式下 agent 定期向 server 发送更新请求。这种方式特别适合跨防火墙场景或者 NAT 后面部署的情况[^3]。 --- ### 监控案例分享 以下是几个常见的实际应用场景及其解决方案概述: #### Nginx 状态监测 安装必要的开发库之后编译 nginx stub_status 模块,接着编写 shell 或 python 脚本来获取访问统计数值并通过 UserParameter 提供给 zabbix 使用[^4]: ```python import requests def get_nginx_status(): url = 'http://localhost/nginx_status' resp = requests.get(url) active_connections = int(resp.text.split()[2]) return f'active={active_connections}' print(get_nginx_status()) ``` 将以上脚本保存为 `/etc/zabbix/scripts/check_nginx.py` 并赋予执行权限后修改对应的 configuration 文件增加如下内容: ```ini UserParameter=custom.nginx.status,/usr/bin/python3 /etc/zabbix/scripts/check_nginx.py ``` 最后重启 service 生效变更。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值