zabbix監控mysql主從

  1. 添加主機  略
    python

  2. 添加 腳本mysql


使用Zabbix監控服務器的時候,用到了監控mysql的主從狀態,咱們知道,Mysql主從複製同步(複製)啓動後,要知足如下兩個條件纔算是成功,即:linux

Slave_IO_Running: yesSlave_SQL_Running: Yes

腳本一

新建一個腳本文件,mysqlms.shweb

#!/bin/bash
/usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

將其放置到某目錄(須要有權限),我這裏放到/etc/zabbix/mysqlms.sh,在zabbix_agentd.conf中下方加入如下一條語句: /etc/zabbix/目錄下  vim /etc/zabbix/zabbix_agentd.confsql

UserParameter=mysql.slavestatus,/etc/zabbix/mysqlms.sh

重啓zabbix-agent:vim

sudo service zabbix-agent restart

截下來在Zabbix-Server所在服務器執行如下語句,測試是否成功:bash

zabbix_get -s 23.10.98.83 -k mysql.slavestatus

其中83爲剛剛腳本所在服務器,mysql.slavestatus爲Key值。若返回2,則表示主從服務正常。而後將該監控項在web平臺測加入items,設置好報警通知便可。服務器

腳本二

新建腳本mysqlms2.py網絡

#!/usr/bin/python 
#coding:utf-8 
 
import MySQLdb 
import sys 
 
class check_mysql_repl(): 
    def __init__(self): 
        self.dbhost = 'localhost' 
        self.dbuser = 'root' 
        self.dbpass = 'wisp888' 
        self.dbport = 3306 
        self.sock = "/data/db_misc/mysql_3306.sock" 
 
        self.conn = MySQLdb.connect(unix_socket=self.sock) #根據實際狀況鏈接
        self.cursor = self.conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
        self.sql = 'show slave status' 
        self.cursor.execute(self.sql) 
        self.data = self.cursor.fetchall() 
        self.io = self.data[0]['Slave_IO_Running'] 
        self.sql = self.data[0]['Slave_SQL_Running'] 
        self.conn.close() 
 
    def get_io_status(self): 
        if self.io == 'Yes': 
            return 1 
        else: 
            return 0 
 
    def get_sql_status(self): 
        if self.io == 'Yes': 
            return 1 
        else: 
            return 0                
 
 
if __name__ == "__main__": 
    if len(sys.argv) != 2: 
        print "Usage: %s [io|sql]" % sys.argv[0] 
        sys.exit(1) 
    mysql = check_mysql_repl() 
    if sys.argv[1] == "io": 
        print mysql.get_io_status() 
    elif sys.argv[1] == "sql": 
        print mysql.get_sql_status()

(該腳原本自網絡)打開編輯文件socket

vi /etc/zabbix/zabbix_agentd.conf

下方加入如下內容:

UserParameter=mysql.repl_io,/etc/zabbix/mysqlms2.py io 
UserParameter=mysql.repl_sql,/etc/zabbix/mysqlms2.py sql

其餘設置同腳本一。


3.建立監控項   主機-項目

wKiom1adsHvjdPD5AAKBkT0DFm4931.jpg

4.建立觸發器

wKiom1adsO6xFYY_AAIkQCQ6PLk939.jpg

相關文章
相關標籤/搜索