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)"합니다.
매크로 확인
- {$MYSQL.HOST} : MySQL 호스트 또는 컨테이너의 호스트 이름 또는 IP입니다.
- {$MYSQL.PORT} : MySQL 서비스 포트.
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 서버에서 데이터를 수집하는지 확인합니다.
위의 단계를 따라서 MySQL by Zabbix 에이전트 템플릿을 구성하고 MySQL 서버의 성능 및 상태에 대한 모니터링을 수행할 수 있습니다.
참고URL
- zabbix : MySQL by Zabbix agent
- git hub(sakama) : https://github.com/sakama/zabbix_template/tree/master
'리눅스' 카테고리의 다른 글
HTTP/2와 HTTP/3를 지원하는 SSL(TLS) 버전 (0) | 2023.06.26 |
---|---|
APT 패키지 관리자를 사용하여 패키지를 제거하는 명령어의 차이점 (0) | 2023.06.21 |
CentOS 7에서 Apache를 소스 코드로 설치하고 HTTP/2를 활성화하는 방법 (0) | 2023.06.15 |
[보안취약점] 리눅스 계정 잠금 임계값 설정 (0) | 2023.06.13 |
curl 명령어 (0) | 2023.06.12 |