zabbix 모니터링 mysql 의 실례 방법

1.모니터링 계획
감시 항목 을 만 들 기 전에 무엇 을 감시 하고 어떻게 감시 하 며 데 이 터 를 어떻게 저장 하 는 지,데 이 터 를 어떻게 보 여 주 는 지,경 보 를 어떻게 처리 하 는 지 등 을 최대한 고려 해 야 한다.모니터링 을 하려 는 시스템 계획 은 Zabbix 에 대해 잘 알 아야 한다.여 기 는 모니터링 의 수요 만 제시 할 뿐이다.
수요 1:MySQL 의 상 태 를 감시 하고 상태 에 이상 이 발생 하면 경 고 를 보 냅 니 다.
수요 2:MySQL 의 조작 을 감시 하고 도표 로 보 여 줍 니 다.
2.사용자 정의 스 크 립 트 모니터링 확장 에이전트
Zabbix Server 와 Agent 간 모니터링 데이터 의 수집 은 주로 Zabbix Server 를 통 해 에이전트 에 게 특정한 Key 의 값 을 물 어 보 는 것 입 니 다.Agent 는 Key 에 따라 해당 하 는 함 수 를 호출 하여 이 값 을 얻 고 서버 에 되 돌려 줍 니 다.Zabbix 2.4.7 의 Agent 본 에는 MySQL 의 모니터링 기능 이 내장 되 어 있 지 않 습 니 다(그러나 서버 에서 해당 하 는 Template 설정 을 제공 합 니 다).따라서 저 희 는 Zabbix 의 User Parameters 기능 을 사용 하여 MySQL 에 모니터링 스 크 립 트 를 추가 해 야 합 니 다.
3.mysql 로그 인 사용자 권한 부여(에이전트 쪽)

mysql> grant usage on *.* to [email protected] identified by '123456';

mysql> flush privileges;
4.에이전트 엔 드 설정
생존 검사
User Parameter 인 자 를 이용 하여 Agent Key 를 사용자 정의 합 니 다.
수요 1 에 대해 저 희 는 my sqladmin 이라는 도 구 를 사용 하여 이 루어 집 니 다.명령 은 다음 과 같 습 니 다.

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping 
mysqld is alive

MySQL 상태 가 정상 이면 mysqld is alive 가 표 시 됩 니 다.그렇지 않 으 면 연결 이 되 지 않 음 을 알려 줍 니 다.서버 쪽 에 서 는 my sqld is alive 라 는 문장 이 이해 되 지 않 습 니 다.서버 쪽 에 서 는 1 과 0 만 받 는 것 이 좋 습 니 다.1 은 서비스 가 사용 가능 하 다 는 것 을 표시 하고 0 은 서비스 가 사용 되 지 않 는 다 는 것 을 표시 합 니 다.그러면 이 명령 을 다시 개선 하 겠 습 니 다.다음 과 같 습 니 다.

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping |grep -c alive
1
사용자 이름과 비밀 번 호 를 명령 에 두 면 나중에 유지 할 수 없습니다.그래서 저 희 는/var/lib/zabbix/다음 에 MySQL 사용자 이름과 비밀 번 호 를 포함 하 는 설정 파일'my.cnf'를 만 듭 니 다.다음 과 같 습 니 다.

user=zabbix
host=127.0.0.1
password='123456'

이 파일 이 있 으 면 명령 을 변경 합 니 다.

HOME=/var/lib/zabbix/ mysqladmin ping |grep -c alive
1
이 단 계 를 마 친 후에 해 야 할 일 은 이 모니터링 명령 을 Zabbix Agent 에 추가 하고 Key 와 대응 하 는 것 입 니 다.그러면 Zabbox Server 는 이 Key 를 통 해 MySQL 의 상 태 를 얻 을 수 있 습 니 다.MySQL 상태의 Key 로 mysql.ping 을 사용 합 니 다.
우선 제거/etc/zabbix/zabbixagentd.conf 중
“Include=/etc/zabbix_agentd.d/이 줄 의 주석 부호 입 니 다.
그 다음으로/etc/zabbix/zabbixagentd.d/디 렉 터 리 에 userparameter 만 들 기mysql.conf 파일.파일 에 다음 명령 을 추가 합 니 다:

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
아래 명령 을 사용 하여 정상 적 인 작업 여 부 를 테스트 합 니 다.

# /usr/sbin/zabbix_agentd -t mysql.ping
mysql.ping                                    [t|1]
기타 성능 지표
1.userparameter 추가mysql

vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

####  mysql     

UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_mysql.sh $1

#####mysql  

UserParameter=mysql.version,mysql -V
2.check_mysql.sh

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName: check_mysql.sh
# Revision: 1.0
# -------------------------------------------------------------------------------
# Copyright:
# License: GPL

#    
MYSQL_USER='zabbix'

#   
MYSQL_PWD='zabbix@123'

#     /IP
MYSQL_HOST='ip'

#   
MYSQL_PORT='3306'

#     
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"

#       
if [ $# -ne "1" ];then
echo "arg error!"
fi

#     
case $1 in
Uptime)
result=`${MYSQL_CONN} status 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status  2>/dev/null  |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status  2>/dev/null   |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status   2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;

*)
echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
3.권한 부여:

chmod +x  /etc/zabbix/zabbix_agentd.d/check_mysql.sh

Chown zabbix.zabbix  /etc/zabbix/zabbix_agentd.d/check_mysql.sh
4. zabbix_에이전트 테스트:
zabbix_agentd -t mysql.ping
在这里插入图片描述
5.Zabbix_서버 테스트
zabbix_get-s ip-P 포트-k mysql.ping
在这里插入图片描述
5.웹 에서 설정
**호스트 생 성**
在这里插入图片描述
在这里插入图片描述
관련 템 플 릿
在这里插入图片描述
모니터링 항목 만 들 기

도형 만 들 기

모니터링 영상 보기

기타 모니터링 항목 설정 완료
6.zabbix 자체 mysql 모니터링 항목

version:     
key_buffer_size:myisam   buffer  
sort_buffer_size:       (         )
join_buffer_size:                ,            、    、         
max_connections:           
max_connect_errors:               ,             (  100)。    flush hosts       
open_files_limits:      mysql       ,    opened_tables          table_open_cache,  opened_tables                table_open_cache
max-heap_tables_size:           (  16M)     tmp_table_size             (           ),      ,     innodb myisam  ,(5.7.5      myisam,5.7.6   innodb,    internal_tmp_disk_storage_engine    )。
max_allowed_packet:        
##########GET INNODB INFO
#INNODB variables
innodb_version:
innodb_buffer_pool_instances: innodb          (   1)
innodb_buffer_pool_size:innodb     、5.7.5   innodb_buffer_pool_chunk_size,
innodb_doublewrite:    doublewrite(    )
innodb_read_io_threads:IO      
innodb_write_io_threads:IO      
########innodb status
innodb_buffer_pool_pages_total:innodb       、    innodb_buffer_pool_size/(16*1024)
innodb_buffer_pool_pages_data:innodb             
########## GET MYSQL HITRATE
1、       
  Qcache_hits+Com_select<>0   Qcache_hits/(Qcache_hits+Com_select),   0

2、       
  Connections<>0,  1-Threads_created/Connections,   0

3、myisam      
  Key_read_requests<>0,  1-Key_reads/Key_read_requests,   0

4、myisam       
  Key_write_requests<>0,  1-Key_writes/Key_write_requests,   0

5、     
  Key_blocks_used+Key_blocks_unused<>0, Key_blocks_used/(Key_blocks_used+Key_blocks_unused),   0

6、            
  Created_tmp_disk_tables+Created_tmp_tables<>0, Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables),   0

7、     
  max_connections<>0, threads_connected/max_connections,   0

8、      
  open_files_limit<>0, open_files/open_files_limit,   0

9、      
  table_open_cache<>0, open_tables/table_open_cache,   0
이 글 은 zabbix 모니터링 my sql 의 인 스 턴 스 방법 에 관 한 글 입 니 다.더 많은 zabbix 모니터링 my sql 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기