zabbix利用python脚本发送报警邮件的方法

前言

zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善。本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接。

步骤如下:

1、编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径。

vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2、上传新增py脚本至AlertScriptsPath参数指定的绝对路径下,py文件如下:

#! /usr/bin/env python
# coding:utf-8
'''
[INFORMATION]
Zabbix Send Email With Python
AUTHOR : Wing
GitHub : https://github.com/wing324
Email : wing324@126.com
'''
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
import sys
def send_mail(_to_email,_subject,_message):
# 定义邮件发送
 smtp_host = 'smtp.xxx.xx'
 from_email = 'xxx@xxx.xx'
 passwd = 'xxxxxx'
 msg = MIMEText(_message,'plain','utf-8')
 msg['Subject'] = _subject
 smtp_server = smtplib.SMTP(smtp_host,25)
 smtp_server.login(from_email,passwd)
 smtp_server.sendmail(from_email,[_to_email],msg.as_string())
 smtp_server.quit()
if __name__ == '__main__':
 send_mail(sys.argv[1],sys.argv[2],sys.argv[3])

3、修改python脚本的权限

chown -R zabbix:zabbix zabbix_send_email.py
chmod 755 zabbix_send_email.py

4、zabbix web端配置

Administration –> Media types –> Create media type

创建一个测试用户Administration –> Users –> Create user

为新创建的user指定media:Administration –> Users –> Create user –> Media

创建action实现邮件报警Configuration –> Actions –> Create action

5、zabbix测试发送邮件

找一个test的zabbix_agentd,kill掉,查看是否收到报警邮件。再将其恢复,查看是否收到恢复后的邮件。如果一切如预期所想,那么至此就完成了使用python脚本完成zabbix的报警邮件了。如果没有如预期所想。

TIPS:

如果你用的zabbix3.0,请注意Administration –> Media types –> Create media type这一步的配置如下:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • Python利用Nagios增加微信报警通知的功能

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios是调用微信公共平台的api接口发送报警邮件.在正式操作之前,有几个准备工作要做.先安装nagios,可以使用我提供的nagios一键安装脚本.然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也可以使用.最后登录公共平台添加通讯录,和

  • Zabbix安装图文教程(需要LAMP或者LNMP运行环境)

    说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需要有LAMP或者LNMP运行环境 准备篇: 一.Web环境:Nginx+MySQL+PHP CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14 二.zabbix软件包下载 zabbix-2.2.6 http://jaist.dl.sourceforge.ne

  • Python监控主机是否存活并以邮件报警

    利用Python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟.丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理. #!/usr/bin/env python # coding:UTF-8 import time import pexpect import smtplib from email.mime.text import MIMEText mail_host = "smtp.163.com" #定义smtp服务器 mai

  • Python+微信接口实现运维报警

    说到运维报警,我觉得都可以写个长篇历史来详细解释了报警的前世来生,比如最早报警都是用邮件,但邮件实时性不高,比如下班回家总不能人一直盯着邮箱吧,所以邮件这种报警方式不适合用来报紧急的故障,日常磁盘利用率监控什么的可以用它来报没问题,网站宕机不能访问这种故障,用它就明显不合适了,那对这种业务稳定性要求比较高的业务,后来就发展成了用短信,就是公司买个短信机,提供一个http接口,然后运维人员写脚本把收集到的异常数据写入文件,然后脚本实时检测如果这个文件不为空,就调用短信机接口把文件里的内容发送出去,

  • Zabbix监控交换机设置方法

    说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对交换机进行监控. 具体操作: 以下操作在被监控的交换机上进行,这里以Cisco交换机为例. 一.登录到Cisco交换机,开启snmp服务 注意:使用telnet或者仿真终端登录到交换机特权配置模式 enable #切换到特权模式 configure terminal #进入全局配置模式 snmp-server community public ro #打开交换机snmp服务,设置团体名称为public,只读 snmp-serve

  • Zabbix邮件报警设置方法

    说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 具体操作: 以下操作在Zabbix监控服务端进行 备注:Zabbix监控服务端 操作系统:CentOS 主机名:zabbix.osyunwei.com 邮件报警有两种情况: 1.Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本

  • 微信报警 zabbix实现详解

    现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本. 微信的第三方接口要求我们先申请一个企业号--传送门:https://qy.weixin.qq.com/ 如何操作企业号?     1.通讯录添加企业成员 我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时

  • Zabbix实现微信报警功能

    一. 申请企业微信账号,申请地址 https://qy.weixin.qq.com/ 二. 登陆企业微信账 图一 图二 2.添加微信账号 图一 图二 完成以上步骤后 就完成了微信账号的添加 三.新建应用 图一 图二 图三 图四 以上四幅图完成后就应用创建完成 四.设置权限管理 图一 图二 图三 完成以上三幅图的操作,权限管理设置完成:到此微信设置已经完成! 五.Zabbix Server配置 图一 图二 图三 完成以上三幅图中的配置,则zabbix server的配置已经完成. 七.weixin

  • Zabbix监控Linux主机设置方法

    说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配置防火墙,开启10050.10051的TCP和UDP端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件 -A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCE

  • zabbix利用python脚本发送报警邮件的方法

    前言 zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善.本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接. 步骤如下: 1.编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径. vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr

  • Python3爬虫教程之利用Python实现发送天气预报邮件

    前言 此次的目标是爬取指定城市的天气预报信息,然后再用Python发送邮件到指定的邮箱. 下面话不多说了,来一起看看详细的实现过程吧 一.爬取天气预报 1.首先是爬取天气预报的信息,用的网站是中国天气网,网址是http://www.weather.com.cn/static/html/weather.shtml,任意选择一个城市(比如武汉),然后要爬取的内容为下面的部分: 先查看网页源代码,并没有找到第一张图中的内容,说明是这些天气信息是通过别的方式加载出来的.我们打开开发者工具,点击XHR选项

  • 利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: utf-8 -*- import time import sys import logging import smtplib import socket import signal import ConfigParser from datetime import datetime from email

  • 利用Python脚本写端口扫描器socket,python-nmap

    目录 Socket模块编写 扫描给定主机是否开放了指定的端口 python-nmap模块编写 扫描给定ip或给定网段内指定端口是否开放 前言: 一个用python写的简单的端口扫描器,python环境为 3.7.0,windows系统 Socket模块编写 扫描给定主机是否开放了指定的端口 TCP连接扫描是利用TCP的三次握手来确定主机的端口是否开放.确定主机端口开放之后,给端口发送消息,接收端口返回的消息,然后判断该端口运行的服务. 使用时,-H 参数可以提供主机的域名或者ip地址,-p/-P

  • Python实现发送QQ邮件的封装

    本文实例为大家分享了Python实现发送QQ邮件的封装代码,供大家参考,具体内容如下 封装code import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header # type=plain 文本格式 默认 # type=ht

  • Python定时发送天气预报邮件代码实例

    这篇文章主要介绍了Python定时发送天气预报邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送.以下是代码- #导入模块 import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText

  • Python实现钉钉发送报警消息的方法

    钉钉开放平台传送门:https://open.dingtalk.com 我司使用钉钉作为内部通讯工具,基本上大家在电脑和手机上都开着,消息可以第一时间查看,报警消息的即时性要求比较高,所以适合用钉钉通知. 下面介绍如何用Python实现钉钉发送报警消息. 获取access token 要使用钉钉发送消息,首先需要获取access token,代码如下: def get_access_token(): url = 'https://oapi.dingtalk.com/gettoken?corpid

  • 利用Python脚本实现自动刷网课

    人在学校,身不由己.总有一些奇奇怪怪的学习任务,需要我们刷够一定的时长去完成,但这很多都是不太令人感兴趣的文字或是视频,而这些课都有共同的特点就是会间隔一定时间发出弹窗,确认屏幕前的我们是否还在浏览页面.每次靠人工去点击,会严重影响我们做其他正事的效率. 最近小李也需要刷够一定的学习时长.于是乎,我便找了好兄弟Python来帮忙.下面我们就用Python来实现自动化刷课吧! 说到自动化,Selenium这个浏览器自动化测试框架就派上了用场,整个自动刷课的主角便是它. 网站登录 那么为了实现自动刷

  • 利用Python脚本批量生成SQL语句

    通过Python脚本批量生成插入数据的SQL语句 原始SQL语句: INSERT INTO system_user (id, login_name, name, password, salt, code, createtime, email, main_org, positions, status, used, url, invalid, millis, id_card, phone_no, past, end_date, start_date) VALUES ('6', 'db', 'db',

  • python实现发送QQ邮件(可加附件)

    本文实例为大家分享了python实现发送QQ邮件的具体代码,供大家参考,具体内容如下 东西比较简单,简单讲一下,直接贴代码了,其他邮箱都类似. 1.首先在qq 邮箱里面把stmp服务 打开 2.拉到下面,开启第一个,发送短信验证后会得到一个授权码: 3.代码,要注意的地方我都贴了注释: # coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage

随机推荐