본문 바로가기

Monitoring/MySQL Monitoring 구축 (with prometheus)

2. prometheus 메트릭 수집을 위한 exporter 구축

1. exporter 설치


https://www.percona.com/doc/percona-monitoring-and-management/index.exporter-option.html


이 링크를 통해 쉽게 다운 받을 수 있다.





2. 설정


$ tar -xzvf mysqld_exporter-0.11.0.linux-amd64

$ tar -xzvf node_exporter-0.17.0.linux-amd64


mysqld_exporter 는 MySQL 서버의 상태를 수집해주는 exporter 이고,

node_exporter 는 해당 서버의 시스템 상태를 수집해주는 exporter 이다.



3. 실행


1) node_exporter 는 특별한 conf 설정없이 바이너리 파일을 바로 실행할 수 있다.


$ ./node_exporter



2) mysqld_exporter 는 실제 MySQL 서버에 접속하여 변수들을 수집해야하기때문에, 접속할 계정이 필요하다.


※ 간단한 테스트를 위해 모든 권한을 부여했음.


MySQL > GRANT ALL PRIVILEGES ON *.* TO 'prouser'@'%' IDENTIFIED BY 'protest'



그 후 conf 파일을 통해 해당 접속 유저를 명시해준다. 

(conf 파일의 경로를 파라메터로 지정하지 않았다면 conf 파일의 기본 패스는 /root/.my.cnf 이다)


$ vi /root/.my.cnf






위와 같이 접속 정보를 설정했다면 실행하면 된다.


$ ./mysqld_exporter





exporter 들이 잘 실행되었다면 수집된 메트릭을 볼 수 있다.


mysql_exporter 의 기본 포트는 9104




node_exporter 의 기본 포트는 9100





4. prometheus 에서 메트릭을 수집하는지 확인


첫번째 포스팅에서 prometheus 를 설정하면서 target_server 를 지정했었다.


prometheus 의 수집 방식을 간략히 설명하자면,


1. exporter 들은 자신이 열어둔 port 를 통해 수집한 메트릭을 띄워놓는다.

2. prometheus 는 설정된 target server 의 port 로 접근하여 띄워진 메트릭을 수집해간다.


위와 같은 방식으로 수집하게 된다.


prometheus 웹페이지에서 Status -> Targets 탭에 들어가면 아래와 같이 표시된다.










이로써 exporter 를 통해 prometheus 와 대상 노드들 간의 연결은 끝났다.


다음 포스팅에선 grafana 를 통해 prometheus 가 exporter 를 통해 수집한 메트릭을 그래프로 나타낼 수 있도록 한다.