본문 바로가기

리눅스

[draft] MySQL 서버에 MySQL by Zabbix 에이전트 템플릿을 구성하는 방법

728x90

MySQL 서버에 MySQL by Zabbix 에이전트 템플릿을 구성하는 방법

MySQL by Zabbix 에이전트 템플릿을 구성하는 방법은 다음과 같습니다.

MySQL 서버(zabbix agent)

1. Zabbix 에이전트 및 MySQL 클라이언트를 설치합니다.

필요한 경우 전역 환경 변수 PATH에 mysql 및 mysqladmin 유틸리티의 경로를 추가합니다.

ln -s /usr/local/mysql/bin/mysql /bin/mysql
ln -s /usr/local/mysql/bin/mysqladmin /bin/mysqladmin

2. template_db_mysql.conf를 Zabbix 에이전트 구성이 있는 폴더에 복사합니다.

cp -arp /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
$ cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

3. 모니터링할 MySQL 사용자를 만듭니다.

MySQL 프롬프트 명령어 실행

CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'zbx_monitorpassword1!';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

4. Zabbix 에이전트의 홈 디렉터리 /var/lib/zabbix/.my.cnf를 생성합니다.

mkdir -p /var/lib/zabbix/
chown -R zabbix:zabbix /var/lib/zabbix
vim /var/lib/zabbix/.my.cnf
[client]
user='zbx_monitor'
password='zbx_monitorpassword1!'
socket='/var/run/mysqld/mysqld.sock'

5. Zabbix 에이전트 재시작합니다.

systemctl restart zabbix-agent

6. mysql 그룹에 zabbix 사용자를 추가합니다.

sudo usermod -a -G mysql zabbix

7. sudoers 파일을 수정하여 사용자에게 필요한 권한을 부여합니다.

visudo
zabbix ALL=(ALL) NOPASSWD: /bin/mysql, /bin/mysqladmin

zabbix server

1. Zabbix 웹 인터페이스에 로그인합니다.

2. "설정" 메뉴로 이동하고 "호스트"를 선택합니다.

3. "호스트(MySQL 서버)"를 선택합니다.

4. "템플릿" 버튼을 클릭하여 "새 템플릿 연결(Template DB MySQL by Zabbix agent)"합니다.

zabbix

매크로 확인

  • {$MYSQL.HOST} : MySQL 호스트 또는 컨테이너의 호스트 이름 또는 IP입니다.
  • {$MYSQL.PORT} : MySQL 서비스 포트.

zabbix

5. Zabbix 서버에 SSH 로그인합니다.

6. zabbix_get 명령어로 Zabbix 에이전트 버전 정보를 확인합니다.

zabbix_get -s 192.168.0.101 -k agent.version

7. zabbix_get 명령어로 MySQL 서버 버전 정보를 확인합니다.

zabbix_get -s 192.168.0.101 -k mysql.version['192.168.0.101','3306']

8. zabbix_get 명령어로 MySQL Database 목록 디스커버리를 확인합니다.

zabbix_get -s 192.168.0.101 -k mysql.db.discovery['192.168.0.101','3306']

 

템플릿이 적용된 MySQL 호스트에서 Zabbix 에이전트를 시작하고 Zabbix 서버에서 데이터를 수집하는지 확인합니다.

 

zabbix

 

위의 단계를 따라서 MySQL by Zabbix 에이전트 템플릿을 구성하고 MySQL 서버의 성능 및 상태에 대한 모니터링을 수행할 수 있습니다.

 

참고URL

- https://www.zabbix.com/integrations/mysql

- git hub(sakama) : https://github.com/sakama/zabbix_template/tree/master

 

728x90