결과는지도를 표시
우리도의 결과를 살펴 보자, 자동 검색 ZABBIX 두 번째 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 사용자는 도우 권한이 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.