Zabbixの監視MySQLデータベースの自動検出

結果は、地図を表示します

次のように第2の自動発見MySQLの結果内外への流量を監視することで、変更、削除、MySQLは追加の監視自動検出ZABBIX、私たちは図の結果を見てみましょうすることです:
第2の操作量のMysqlあたり

MySQLのトラフィック監視

Zabbixの監視権限に対するMySQL

まず、より安全な、比較的小規模な権限のユーザーの監視、使用状況を作成します。SQLは、次の

grant usage on *.* to 'monitor'@'127.0.0.1' identified by 'shijiangepwd';
flush privileges;

次のようにテストユーザーが発効するかどうかを監視し、試験結果は

mysql -umonitor -h 127.0.0.1 -pshijiangepwd -A
mysql> show global status;
+-----------------------------------------------+-------------+
| Variable_name                                 | Value       |
+-----------------------------------------------+-------------+
| Aborted_clients                               | 0           |
| Aborted_connects                              | 0           |
| Binlog_cache_disk_use                         | 0           |
| Binlog_cache_use                              | 0           |
| Binlog_stmt_cache_disk_use                    | 0           |
| Binlog_stmt_cache_use                         | 0           |

モニタリングで書かれたシェルスクリプト

スクリプトは、MySQLがステータス情報mysql_check.shを監視するためのグローバルな状態を示して使用します。

port=$1
key=$2
mysql -umonitor -pshijiangepwd -h 127.0.0.1 -P${port} -e "show global status" |grep "${key}\s" |awk '{print $2}'

結果は以下のように、Zabbixの監視のみに番号を返す必要があります

[root@test ~]# sh mysql_check.sh 3306 Bytes_received
439
[root@test ~]# sh mysql_check.sh 3306 Bytes_sent
11935

MySQLのモニタリングポートは、自動検出を使用します

自動検出スクリプトmysql_discovery.pyを使用してMySQLポート

# -*- coding: utf-8 -*-
try:
  import json
except:
  import simplejson as json
import commands

(status, output) = commands.getstatusoutput(""" sudo netstat -tlnp|grep mysql|awk '{print $4}'|awk -F':' '{print $2}'|sort -u """)
outputs = output.split('\n')
result = []
for one in  outputs:
  result.append( {'{#ONE}': one} )
print( json.dumps({'data':result},sort_keys=True,indent=4) )

あなたはsudoを使用する必要がありますので、デフォルトのZabbixユーザは、netstatコマンドを使用することはできません、Zabbixのユーザーはsudo権限を追加する必要がvisudoを

zabbix ALL= NOPASSWD: /bin/netstat
Defaults:zabbix   !requiretty

次のようにMySQLのポート自動検出結果は、

[root@test ~]# python mysql_discovery.py 
{
    "data": [
        {
            "{#ONE}": "3306"
        }
    ]
}

監視対象のクライアントは、カスタムキー設定を追加します

監視対象のクライアントには、次の設定を追加し、その後のZabbixエージェントを再起動する必要があります

UserParameter=mysql.discovery,python /etc/zabbix/mysql_discovery.py
UserParameter=mysql.check[*],sh /etc/zabbix/mysql_check.sh $1 $2 2>/dev/null

なぜ我々は2>を/ dev / nullを追加する必要があり、このバージョンでは、以下の安全のためのヒントがあるだろうコマンドで直接コードを記述する高のMySQLの防止であるので、あまりにもフィルタリング

mysql: [Warning] Using a password on the command line interface can be insecure.

Zabbixの監視設定のスクリーンショット

MySQLのMySQLのモニタ構成の自動検出

おすすめ

転載: blog.51cto.com/zhuangweihong/2428243