리눅스

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

변군이글루 2023. 6. 19. 20:42
반응형

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
728x90

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

- zabbix : MySQL by Zabbix agent

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

 

728x90
반응형