Zabbix自定义监控与邮件告警配置实践
作者:找唐娃娃_622 | 来源:互联网 | 2024-11-22 08:33
本文详细介绍了如何在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. 确认告警动作的操作部分已选择发送到指定用户。
推荐阅读
-
flea,frame,db,使用,之 ...
[详细]
蜡笔小新 2024-11-20 12:00:16
-
本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ...
[详细]
蜡笔小新 2024-11-19 12:12:24
-
-
mysql数据库json类型数据,sql server json数据类型 ...
[详细]
蜡笔小新 2024-11-19 11:05:28
-
我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ...
[详细]
蜡笔小新 2024-11-14 10:07:21
-
本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ...
[详细]
蜡笔小新 2024-11-20 16:56:14
-
本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ...
[详细]
蜡笔小新 2024-11-19 20:00:19
-
本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ...
[详细]
蜡笔小新 2024-11-19 13:48:51
-
协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ...
[详细]
蜡笔小新 2024-11-19 10:13:02
-
本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ...
[详细]
蜡笔小新 2024-11-19 09:19:01
-
目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ...
[详细]
蜡笔小新 2024-11-18 20:33:30
-
作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ...
[详细]
蜡笔小新 2024-11-18 08:45:23
-
本文详细介绍了在Mac平台上安装和配置MySQL的步骤,包括下载安装包、卸载MySQL以及解决命令行中找不到mysql命令的问题。 ...
[详细]
蜡笔小新 2024-11-17 18:44:08
-
驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ...
[详细]
蜡笔小新 2024-11-16 22:04:31
-
开发笔记:1035 Password (20) ...
[详细]
蜡笔小新 2024-11-16 19:33:06
-
文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ...
[详细]
蜡笔小新 2024-11-14 10:57:02
-