1. 程式人生 > >Zabbix呼叫python指令碼監控mysql主從狀態

Zabbix呼叫python指令碼監控mysql主從狀態

指令碼只監控從庫的同步狀態

Zabbix安裝路徑:/usr/local/zabbix/

zabbix客戶端:192.168.15.66

一、配置指令碼查詢mysql帳號許可權

CREATE USER 'showslavestatus'@'localhost' IDENTIFIED BY '123456';
GRANT REPLICATION CLIENT ON *.* TO 'showslavestatus'@'localhost';

二、建立py指令碼存放路徑/usr/local/zabbix/script

cat SHOWSLAVESTATUS.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#__author:"zhengchaooo"
#date: 2018/3/31
import re,os
class SHOWSLAVESTATUS:
    mysqlpath = '/usr/local/d/bin/mysql'
    def __init__(self,ip,port,username,pwd):
        self.ip = ip
        self.port = port
        self.username = username
        self.pwd = pwd
    def show(self,content):
        pip =  os.popen('%s -h %s -P %s -u%s -p%s -e %s'%(self.mysqlpath,self.ip,self.port,self.username,self.pwd,content)).read()
        Slave_IO_Running = ((re.search('Slave_IO_Running: [\S]*', pip)).group()[18:])
        Slave_SQL_Running = ((re.search('Slave_SQL_Running: [\S]*', pip)).group()[19:])
        Last_Errno = int((re.search('Last_Errno: [\d]*',pip)).group()[12:])
        print ('Slave_IO_Running:%s Slave_SQL_Running:%s Last_Errno:%s'%(Slave_IO_Running,Slave_SQL_Running,Last_Errno))
        if Last_Errno == 0 and Slave_IO_Running == 'Yes' and Slave_SQL_Running == 'Yes':
            print ('Yes,主從庫同步正常')
        else:
            print ('False,主從庫同步異常')
s1 = SHOWSLAVESTATUS('127.0.0.1','63307','showslavestatus','123456')
s1.show('\"SHOW SLAVE STATUS\G\"')

授予許可權chmod +x SHOWSLAVESTATUS.py

測試指令碼./SHOWSLAVESTATUS.py


Slave_IO_Running #I/O執行緒是否被啟動併成功地連線到主伺服器上
Slave_SQL_Running #SQL執行緒是否被啟動
Last_Errno #被多數最近被執行的查詢返回的錯誤數量和錯誤訊息。錯誤數量為0並且訊息為空字串意味著“沒有錯誤”。
提示:Warning: Using a password on the command line interface can be insecure
在MySQL 5.6 在命令列輸入密碼,就會提示這些安全警告資訊,直接無視

三、新增zabbix_agentd.conf自定義配置指令碼 編輯/usr/local/zabbix/etc/zabbix_agentd.conf 增加

UnsafeUserParameters=1
UserParameter=SHOWSLAVESTATUS[*],/usr/local/zabbix/script/SHOWSLAVESTATUS.py

重啟zabbix_agentd,指令碼可以呼叫

四、在zabbix伺服器上呼叫測試

執行命令 192.168.15.66是客戶端指令碼的地址
/usr/local/zabbix/bin/zabbix_get -s 192.168.15.66 -p 30050 -k "SHOWSLAVESTATUS"

五、在zabbix新增監控指令碼

然後檢視最新資料檢視接收資料

六、建立觸發器,要是接收到False就告警

這邊關閉主庫資料庫檢查是否會告警

成功接收到報警郵件

相關推薦

Zabbix呼叫python指令碼監控mysql主從狀態

指令碼只監控從庫的同步狀態Zabbix安裝路徑:/usr/local/zabbix/zabbix客戶端:192.168.15.66一、配置指令碼查詢mysql帳號許可權CREATE USER 'showslavestatus'@'localhost' IDENTIFIED B

zabbix自定義監控mysql主從狀態,並做郵件告警

指定 def brush stat 群組 root -a utf-8 動作 通過zabbix自定義監控mysql主從狀態,並做郵件告警 分析: mysql主要是通過主從來提供安全性

zabbix自定義監控mysql主從狀態,並做郵件告警(詳細解說)

通過zabbix自定義監控mysql主從狀態,並做郵件告警 分析: mysql主要是通過主從來提供安全性,一個完整的主從體系,就應該包括資料同步、開啟二進位制日誌、全備、還有對Slave_IO_Running和Slave_SQL_Running兩個執行緒的實時監測,並做告警,而zabb

zabbix監控MySQL主從狀態

環境要求: 系統平臺 IP 安裝的服務 redhat7 192.168.225.128 MySQL redhat7 192.168.

linux上zabbix監控mysql主從狀態

linux上zabbix監控mysql主從狀態 1:主從mysql上,建立監控使用者    #建立zabbix監控使用者(只有查詢許可權)    grant select on *.*  to [email protected]'127

Mysql主從狀態監控腳本

mysql主從監控腳本目標:對Mysql從庫進行狀態監控,如果從庫復制異常就告警思路:1、首先查找Mysql從庫的4個參數值(show slave status根據這個命令);分別是從庫的IO線程、SQL線程、復制延遲時間(這個在以下腳本沒用到,可以再寫個腳本對其延遲進行告警)、錯誤碼2、函數Mysql_st

zabbix使用Python實現監控MongoDB副本集狀態

python zabbix mongodb pymongo 公司有 Windows 和 Linux 服務器,都搭建了 MongoDB 副本集,並且都要在 zabbix 平臺中實現監控。Linux 系統直接使用 shell 腳本即可實現,但是 Windows 系統的不太好實現,我這裏使用

監控mysql主從同步狀態是否異常,如果異常,則發生短信或郵寄給管理員

監控mysql主從同步狀態是否異常階段1:開發一個守護進程腳本每30秒實現檢測一次。階段2:如果同步出現如下錯誤號(1158,1159,1008,1007,1062),請跳過錯誤階段3:請使用數組技術實現上述腳本(獲取主從判斷及錯誤號部分)[[email protected]/* */ ~]# m

zabbix監控mysql主從復制

zabbix監控mysql主從復制 zabbix mysql5.6zabbix監控mysql主從復制.監控MySQL的復制原理:利用在slave上運行show slave status獲取Slave_IO_Running和Slave_SQL_Running的值1.在mysql上新建監控用戶 grant r

監控mysql主從同步狀態

inf http use 監控mysql 編寫 運行時 xxxxx 操作 ast 在高並發網站架構中,MySQL數據庫主從同步是不可或缺的,不過經常會發生由於網絡原因或者操作錯誤,MySQL主從經常會出現不同步的情況,那麽如何監控MySQL主從同步,也變成網站正常運行的重要

python腳本 監控MySQL slave 狀態

nbsp xxxxx oot lB seconds pytho split() show split #!/usr/bin/python#!gbk import osimport sys mysqlbase = ‘/usr/bin/mysql‘host = ‘ip‘us

zabbix企業級監控監控MYSQL主從

專題 定期 mar lin 更新 技術分享 host tex src 1.監控mysql 主從的要監控哪些指標?根據Slave_SQL_Running和Slave_IO_Running的線程狀況去判斷主從的情況,Yes的個數是2的時候就說明主從的是正常的2.設置shell與

zabbix監控mysql主從同步

2個 多少 mon 令行 stat ffffff name http dad 1,部署了個mysql從數據庫,需要時時監控這個從數據庫的主從狀態。原理的話,是通過從mysql上的zabbix執行show slave status獲取Slave_IO_Running|Slav

python 監控mysql主從

soc col 主從 spa fetchall pan swd second egg #!/usr/bin/env python #-*- coding: utf-8 -*- import os os.environ[‘PYTHON_EGG_CACHE‘] = ‘/tmp

zabbix監控mysql主從

環境說明: 主機名 ip 服務 zhu 192.168.100.233 主資料庫 cong 192.168.100.234 從資料庫 zabbix 192.168.100.11 zabbix 關閉防火牆、selinux 搭建zabbi

zabbix監控MySQL服務狀態

Mysql模板使用 在zabbix_agent配置檔案中加入監控配置 vim etc/zabbix_agentd.conf ... UserParameter=mysql.version,mysqladmin -P3366 -hlocalhost version | grep mysqladmin UserP

zabbix自帶模板監控MySQL服務

items brush 主機 onf password 只讀 nbsp rap ges 1.GUI界面添加Mysql模板Configuration --> Hosts --> 點擊要添加的主機 --> Templates 添加新的模板,點擊Select -

zabbix 自帶模板監控Mysql

zabbix1,配置mysql的客戶端,創建一個用戶來獲取mysql的相關數據,使用mysql賬號密碼登陸數據庫, > grant all on *.* to zabbix@‘localhost‘ identified by ‘123456789‘; 我這是測試環境就用all來授

zabbix通過percona模板監控MySQL

mil gen 拷貝 client wid mon err -i type 現有環境已經安裝了zabbix server和 agent端1 下載percona監控插件https://www.percona.com/downloads/percona-monitoring

日常管理03-監控MYSQL主從延時3秒腳本;

urn print inf lines ssa utf message lru mes #!/bin/env python # -*- encoding: utf-8 -*- import time import os import sys import json impo