”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为 Zabbix 编写电报和电子邮件通知脚本

为 Zabbix 编写电报和电子邮件通知脚本

发布于2024-11-08
浏览:664

Writing a Telegram and Email Notifications Script for Zabbix

监控整个基础设施非常重要,特别是在 IT 基础设施中。我最近学习创建和编写这样的监控脚本。我将向您分享我如何制作电报和电子邮件通知脚本。每当基础设施出现问题时,此脚本都会发送电报和电子邮件通知。

Zabbix是什么

Zabbix 是一款开源软件,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的运行状况和完整性。 Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。 Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。

电报通知脚本

通过 SSH 登录到您的 Zabbix 代理/服务器并转到“externalscripts”目录。

cd /usr/lib/zabbix/externalscripts

为 Telegram 机器人创建脚本。在这里设置您的电报机器人。

sudo vim telegram-notif.sh

粘贴下面的脚本

#!/bin/bash

# Telegram Bot API Token
BOT_TOKEN="YOUR_BOT_TOKEN"

# Telegram Chat ID
CHAT_ID="YOUR_TELEGRAM_CHAT_ID"

# Message to be sent
MESSAGE="$1"

# Sends the telegram message
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" -d "chat_id=$CHAT_ID&text=$MESSAGE"

保存您的脚本。

:wq

转换为可执行文件

chmod  x telegram-notif.sh

电子邮件通知脚本

在同一目录下,创建一个python文件。

sudo vim email-notif.py

粘贴此代码。此代码需要您的 Gmail 帐户的应用程序密码。在此创建您的应用程序密码。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import sys

# Get the alert message from command-line arguments
alert_message = sys.argv[1]

# Email account credentials
gmail_user = 'YOUR_EMAIL_ADDRESS'
gmail_password = 'YOUR_APP_PASSWORD'  # Use your App Password here

# Create the message
msg = MIMEMultipart()
msg['From'] = gmail_user
msg['To'] = 'YOUR_RECIPIENT_EMAIL_ADDRESS'  # Recipient's email address
msg['Subject'] = 'Alert Message Subject'  # Subject of the email
message = alert_message
msg.attach(MIMEText(message, 'plain'))

# Attempt to send the email
try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_user, gmail_password)
    server.send_message(msg)
    server.close()

    print('Email sent!')
except Exception as e:
    print('Failed to send email:', e)

不要忘记保存并使其成为可执行文件

:wq
chmod  x email-notif.py

该脚本可以集成到 Zabbix 中,以通知需要尽快解决的问题。

在某些情况下,在服务器中运行 python 脚本需要 root 权限 (sudo)。要允许 Zabbix 使用 sudo 运行 python 脚本,您必须编辑 visudo.

sudo visudo

找到“用户权限规范”,将这行代码粘贴到下面。

zabbix  ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py

所以它看起来像这样

# User privilege specification
root    ALL=(ALL:ALL) ALL
zabbix  ALL=(ALL) NOPASSWD: /usr/bin/python3
zabbix  ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/your_script.py

感谢您的阅读!

版本声明 本文转载于:https://dev.to/kurtchan/writing-a-telegram-and-email-notifications-script-for-zabbix-5ddj?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3