监控整个基础设施非常重要,特别是在 IT 基础设施中。我最近学习创建和编写这样的监控脚本。我将向您分享我如何制作电报和电子邮件通知脚本。每当基础设施出现问题时,此脚本都会发送电报和电子邮件通知。
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
感谢您的阅读!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3