Zabbix

Zabbix MYSQL Template 적용

김모우 2021. 1. 14. 11:50
728x90
반응형

 

 

** OS 버전: Ubuntu 18.04

 

Zabbix에서 기본으로 제공하는 MYSQL Template을 이용하여 MYSQL 모니터링 하는 방법에 대해서 소개해보겠습니다.

신규 Template을 사용하기 위하여 Zabbix-Server 및 Agent 버전은 5.0.7로 올려주었으며, DB 분리하는 작업을 진행하였습니다. 간단한 내용이므로 아래에 추가적으로 다루도록 하겠습니다.

 

1.  MYSQL Template 확인

 

: Zabbix 5.0 설치 후에 보면 위의 그림과 같이 기본적으로 MYSQL Template을 지원합니다.

: 저는 이 중에서 맨위의 Template DB MySQL을 적용하는 방법을 진행해보겠습니다.

 

- Macro 확인

 

: MYSQL.HOST - 모니터링 할 DB가 있는 호스트 명(IP, Hostname)

: MYSQL.PORT - 모니터링 할 DB 포트 번호(Default - 3306)

 

- Discovery Rule 확인

: mysql.db.discovery - mysql database 목록 디스커버리

: mysql.replication.discovery - mysql replication status 디스커버리

 

: 저는 DB에 아직 replication 구성을 하지 않아서 관련 데이터는 비어 있는 걸로 나오네요

 

- Item 확인

: 아이템 목록의 일부는 아래와 같으며 global status 를 raw items로 가져와 dependent item 형식으로 모니터링이 필요한 항목들을 가지고 오는 것으로 보입니다.

 

 

2.  zabbix_agentd conf 설정

- MYSQL Template의 경우에는 agent.ping, agent.hostname 처럼 기본적인 사용은 바로 불가능하고 별도의 설정이 조금 필요합니다.

 

- zabbix_agentd.d에 template_db_mysql.conf 파일 생성

- zabbix 설치 후 기본 세팅을 보시면 아래와 같이 zabbix_agentd.d 폴더의 conf 파일을 같이 Include 하게 되어 있습니다. ( 프로그래밍 시 라이브러리를 임폴트 하는 개념과 비슷하게 생각하시면 될거 같습니다.)


- 그러므로 zabbix_agentd.d 밑에 template_db_mysql.conf 파일을 생성해 줍니다.
# vim template_db_mysql.conf
.
.
.
.
.
.
: wq

- 위의 내용 입력 후 저장해 줍니다.
- conf 파일에 대한 내용은 아래 URL 참조 부탁드립니다.

URL: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent
 

Browse Zabbix / Zabbix - ZABBIX GIT

 

git.zabbix.com

 

3.  MySQL 모니터링을 위한 계정 생성

- MYSQL 접속 후 모니터링을 위해 필요한 계정 및 권한을 할당해 줍니다.

# mysql -u root -p
> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
> GRANT USAGE,REPLICATION >CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
> quit

 

3. my.cnf 파일 생성

- 모니터링 시 DB에 접속할 계정 정보가 저장된 my.cnf 파일 생성

# mkdir /var/lib/zabbix
# cd /var/lib/zabbix
# vim .my.cnf
.
.
.
[client]
user=zbx_monitor
password=<password>
.
.
.
: wq

# service zabbix-agent restart

  

4. 데이터 확인 및 템플릿 적용

- Zabbix Server 접속 후 zabbix_get 명령어로 데이터 수집 여부 확인

# zabbix_get -s [DB 서버 IP] -k mysql.db.discovery['localhost','3306']


- Template 적용 및 데이터 수집 확인

 

다음 포스팅에서는 Linux Process 모니터링을 진행하는 방법에 대해서 다뤄보도록 하겠습니다.

728x90
반응형