zabbix监控

zabbix server

//docker zabbix-appliance
//docker run --name my-zabbix-server -p 80:80 -p 10051:10051 -e PHP_TZ="Asia/Shanghai" -d zabbix/zabbix-appliance:ubuntu-4.4.4
//docker exec -i -t my-zabbix-server /bin/bash
docker network create zabbix_net
docker run --name zabbix-server -t -e DB_SERVER_HOST="10.0.75.1" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="1" --network=zabbix_net -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql:centos-5.2-latest
docker run --name zabbix-web -t -e DB_SERVER_HOST="10.0.75.1" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="1" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Asia/Shanghai" --network=zabbix_net -p 80:8080 -d zabbix/zabbix-web-nginx-mysql:centos-5.2-latest

zabbix agent

//docker centos
docker run -d --name my_centos  --privileged centos:7.5.1804 /sbin/init
docker exec -i -t my_centos /bin/bash 
//zabbix源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
//客户端
yum install zabbix-agent
systemctl enable zabbix-agent
systemctl start zabbix-agent

//docker zabbix agent
docker run --name zabbix-agent-centos1 -e ZBX_HOSTNAME="zabbix-agent1"  -e PHP_TZ="Asia/Shanghai" -e ZBX_SERVER_HOST="172.17.0.2" -d zabbix/zabbix-agent:centos-4.4.4

server 配置腾讯云短信

//alpine 
apk update
apk install py2-pip
//centos
yum install epel-release
yum install python2-pip
//ubuntu
apt-get install python-pip
//安装其他库
pip install qcloudsms_py
pip install pytz

zabbix配置

报警媒介类型:脚本tencent-sms.py,参数{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}
动作:触发消息内容

{
"eventType":"action",
"eventName":"{EVENT.NAME}",
"hostName":"{HOST.NAME}",
"eventDate":"{EVENT.DATE}",
"eventTime":"{EVENT.TIME}",
"eventLevel":"{EVENT.SEVERITY}"
}

恢复消息内容

{
"eventType":"recovery",
"eventName":"{EVENT.NAME}",
"hostName":"{HOST.NAME}",
"eventDate":"{EVENT.RECOVERY.DATE}",
"eventTime":"{EVENT.RECOVERY.TIME}",
"eventLevel":"{EVENT.SEVERITY}"
}

python脚本()

位置:/usr/lib/zabbix/alertscripts/tencent-sms.py

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
reload(sys)
sys.setdefaultencoding('utf8')
import json
import datetime
from pytz import timezone
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError

phone = sys.argv[1]
title = sys.argv[2]
message = sys.argv[3]

jsonData = json.loads(message)
eventType = jsonData['eventType']
eventName = jsonData['eventName']
hostName = jsonData['hostName']
eventLevel = jsonData['eventLevel']
eventDateTime = jsonData['eventDate'] + " " + jsonData['eventTime']  
# eventDate= jsonData['eventDate']
# eventTime = jsonData['eventTime']

utc = timezone('UTC')
beijing = timezone('Asia/Shanghai')
date_time = datetime.datetime.strptime(eventDateTime,'%Y.%m.%d %H:%M:%S') 
time_utc = utc.localize(date_time)
time_beijing = time_utc.astimezone(beijing)
date_time_str = time_beijing.strftime('%H:%M:%S')

'''
with open ('/aa/1.txt', 'a') as file:
	file.write('phone:' + phone + '\ntitle:' + title + '\nmessage:' + message 
		+ '\neventType:' + eventType + '\nhostName:' + hostName + '\neventName:' + eventName
		+ '\neventDateTime:' + eventDateTime + '\nformatTime:' + date_time_str + '\neventLevel:' + eventLevel +'\n')
	file.close()
'''
smsDate = date_time_str
smsServer = hostName
smsLevel = eventLevel
smsReason = eventName
if eventType == "action" :
	template_id = 111
elif eventType == "recovery" :
	template_id = 222
else :
	template_id = 1111

appid = 111111
appkey = "abababababab"
phone_number = phone
sms_sign = "签名"

ssender = SmsSingleSender(appid, appkey)
params = [smsServer, smsDate, smsLevel, smsReason]
try:
  result = ssender.send_with_param(86, phone_number,
      template_id, params, sign=sms_sign, extend="", ext="") 
except HTTPError as e:
  print(e)
except Exception as e:
  print(e)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值