zabbix配置钉钉报警

zabbix配置钉钉报警

一、服务版本

linux:7.5-1804

zabbix:4.0.22

mysql:5.7.17

nginx:1.16.1

php:5.4.16

python-pip:2.7.5

二、部署zabbix利用自带模板监控mysql数据库

1、可以参照网上的文档,这里不再赘述

三、配置mysql利用zabbix

1、IP规划

Hostnameip服务
zabbix-server192.168.43.10zabbix-server、zabbix-agent、MySQL、nginx、php、python-pip
zabbix-agent-mysql192.168.43.11MySQL

2、利用zabbix自带模板实现对mysql监控

​ a.在zabbix-agent-mysql的MySQL里授权

[root@zabbix-agent-mysql ~]# mysql -uroot -p
mysql> grant select on *.* to “zabbix”@”%” identified by “123456”;

3、修改UnsafeUserParameter参数

[root@zabbix-agent-mysql ~]# grep UnsafeUserParameters /etc/zabbix/zabbix_agent.conf
### Option: UnsafeUserParameters
UnsafeUserParameters=1

4、编写监控脚本

[root@zabbix-agent-mysql ~]# vim /etc/zabbix/script/chk_mysql.sh
#!/bin/bash
MySQlBin=/usr/bin/mysql
MySQLAdminBin=/usr/bin/mysqladmin
Host=192.168.43.11
User=zabbix
Password=123456
if [[ $# == 1 ]];then
	case $1 in
	Uptime)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null    |cut -f2 -d":"|cut -f1 -d"T"`
		echo $result
		;;
	Com_update)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_update"|cut -d"|" -f3`
		echo $result
		;; 
	Slow_queries)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null    |cut -f5 -d":"|cut -f1 -d"O"`
		echo $result
		;;
	Com_select)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_select"|cut -d"|" -f3`
		echo $result
		;;
	Com_rollback)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_rollback"|cut -d"|" -f3`
		echo $result
		;;
	Questions)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host status 2>/dev/null    |cut -f4 -d":"|cut -f1 -d"S"`
		echo $result
		;;
	Com_insert)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_insert"|cut -d"|" -f3`
		echo $result
		;;
	Com_delete)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_delete"|cut -d"|" -f3`
		echo $result
		;; 
	Com_commit)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_commit"|cut -d"|" -f3`
		echo $result
		;; 
	Bytes_sent)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Bytes_sent" |cut -d"|" -f3`
		echo $result
		;; 
	Bytes_received)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Bytes_received" |cut -d"|" -f3`
		echo $result
		;; 
	Com_begin)
		result=`$MySQLAdminBin -u$User -p$Password -h$Host extended-status 2>/dev/null    |grep -w "Com_begin"|cut -d"|" -f3`
		echo $result
		;;
	*)
		echo -e "\033[33mUsage: ./getmysqlinfo {Uptime|Com_update|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_sent|Bytes_sent} \033[0m"
		;;
	esac
fi

5、在/etc/zabbix/etc/zabbix-agent/etc/编辑文件.my.cnf(需新建该文件),添加以下内容

[root@zabbix-agent-mysql script]# cat ../etc/.my.cnf 
[mysql]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/tmp/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/tmp/mysql.sock

6、编写/etc/zabbix/zabbix_agentd/userparameter_mysql.conf

[root@zabbix-agent-mysql ~]# vim /etc/zabbix/zabbix_agentd/userparameter_mysql.conf
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/etc/zabbix/etc mysql -N'
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/etc/zabbix/script/chk_mysql.sh $1
UserParameter=mysql.ping,mysqladmin -uzabbix -p123456 -P3306 -h127.0.0.1 ping 2>/dev/null| grep -c alive

7、对文件重新授权

[root@zabbix-agent-mysql ~]# chown -R zabbix.zabbix /etc/zabbix
[root@zabbix-agent-mysql ~]# chmod 755 /etc/zabbix/script/chk_mysql.sh

8、重启服务

[root@zabbix-agent-mysql ~]# systemctl restart zabbix-agent

9、在zabbix的web界面添加主机
检查是否已启用

四、配置钉钉报警

1、在钉钉群聊的右上角添加自定义机器人

2、将webhook内容保存下来,备用

3、在server端编写脚本dingding.py

[root@zabbix-server ~]# grep alert /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python

import json
import requests
import sys

def send_msg(url, remiders, msg):
    headers = {'Content-Type': 'application/json; charset=utf-8'}
    data = {
        "msgtype": "text",
        "at": {
            "atMobiles": remiders,
            "isAtAll": True,
        },
        "text": {
            "content": msg,
        }
    }
    r = requests.post(url, data=json.dumps(data), headers=headers)
    return r.text

if __name__ == '__main__':
    msg = sys.argv[1]
    remiders = []
    url = '刚刚复制wehook'
    print(send_msg(url, remiders, msg))

4、linux系统python默认没有requests模块,运行脚本会报错

[root@zabbix-server ~]# yum -y install python-pip #安装pip工具
[root@zabbix-server ~]# pip install requests

5、测试脚本

[root@zabbix-server ~]# /usr/lib/zabbix/alertscripts/dingding.py '测试'
{"errcode":0,"errmsg":"ok"}

6、配置zabbix的web界面

​ 1)、创建报警媒介

2)、配置用户可以使用脚本报警

​ 3)、配置触发动作

​ a.将所有触发器添加

​ b.编辑操作,点击新的,恢复动作同样操作,最后点击更新

5)、测试

​ a.停掉192.168.43.11的mysql

[root@zabbix-agent-mysql ~]# systemctl stop mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306

故障发送成功

​ b.重启mysql服务

[root@zabbix-agent-mysql ~]# systemctl start mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      15841/mysqld

​ b.重启mysql服务

[root@zabbix-agent-mysql ~]# systemctl start mysqld
[root@zabbix-agent-mysql ~]# netstat -tnupl | grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      15841/mysqld

恢复发送成功

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值