热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Zabbix自定义监控与邮件告警配置实践

本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。
### Zabbix自定义监控项目的添加
本文将指导您如何在Zabbix监控系统中添加自定义监控项目,配置邮件告警功能,并解决可能出现的邮件不发送问题。

#### 监控项目创建步骤
1. **需求分析**:假设我们需要监控某台Web服务器的80端口连接数,并将数据可视化。
2. **步骤一**:在Zabbix监控中心创建监控项目。
3. **步骤二**:通过图形界面展示监控数据。

对于第一步,需要在客户端定义脚本,并确保Zabbix用户可执行此脚本。例如,可以通过以下命令创建一个脚本来获取80端口的并发连接数,并设置正确的执行权限:
```bash
[[email protected] ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
# 获取80端口并发连接数
netstat -ant | grep ':80 ' | grep -c ESTABLISHED
[[email protected] ~]# chmod 755 /usr/local/sbin/estab.sh
```

接着,在客户端的Zabbix代理配置文件中添加自定义监控项:
```bash
[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 # 允许使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
```

完成配置后,重启Zabbix代理服务以应用更改:
```bash
systemctl restart zabbix-agent
```

#### 验证与图形创建
1. 在服务端验证自定义监控项是否正确配置:
```bash
[[email protected] ~]# zabbix_get -s 192.168.21.129 -p 10050 -k 'my.estab.count'
0
```
2. 登录Zabbix Web界面,配置新的监控项目,并为其创建图形展示。

### 配置邮件告警
为了使Zabbix能够在监控指标异常时发送邮件通知,需要进行如下配置:
1. **邮箱设置**:使用163或QQ邮箱作为告警邮件的发送工具,需先在邮箱中开启POP3、IMAP、SMTP服务,并获取授权码。
2. **Zabbix告警配置**:在Zabbix的“管理” -> “报警媒介类型” -> “创建媒体类型”中配置邮件告警。
3. **创建告警脚本**:编写Python脚本`mail.py`用于发送邮件,脚本示例如下:
```python
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(username, password, mail_from, mail_to, subject, content):
server = 'smtp.qq.com'
port = 25
try:
msg = MIMEText(content, 'plain', 'utf-8')
msg['From'] = mail_from
msg['To'] = mail_to
msg['Subject'] = subject
smtp = smtplib.SMTP(server, port)
smtp.login(username, password)
smtp.sendmail(mail_from, mail_to, msg.as_string())
smtp.quit()
except Exception as e:
print(f'Send mail failed. Error: {e}')

if __name__ == '__main__':
to = sys.argv[1]
subject = sys.argv[2]
cOntent= sys.argv[3]
send_email('your_email@qq.com', 'your_password', 'your_email@qq.com', to, subject, content)
```
确保脚本具有执行权限:
```bash
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
```

4. **创建接收告警邮件的用户**:在Zabbix中创建一个用户,并为其配置告警媒介。
5. **设置告警动作**:定义触发条件和操作,确保在特定条件下发送邮件通知。

### 测试告警
为了验证配置是否有效,可以通过故意更改监控项目来触发告警,并观察邮件是否成功发送。例如,设置一个系统负载过高的触发器,当负载低于1时触发告警。

### 解决邮件不发送的问题
如果在测试过程中发现邮件没有发送,可以按照以下步骤排查:
1. 检查邮件发送脚本是否正确配置。
2. 确认Zabbix用户设置中的收件人邮箱地址无误。
3. 检查用户权限是否设置为读写,否则可能无法接收到告警邮件。
4. 确认告警动作的操作部分已选择发送到指定用户。

推荐阅读
author-avatar
找唐娃娃_622
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有