[Prometheus - exporter 설치 & Grafana] part 2

 Prometheus 메트릭 수집을 위한 exporter 구축 (mysql서버)

 

 

■ Exporter 설치
mysqld_exporter와 node_exporter 두개를 설치합니다. 
mysqld_exporter -> MySQL 서버의 상태를 수집
node_exporter -> 해당 서버의 시스템 상태를 수집
[root@mysql ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz


[root@mysql ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz



[root@mysql ~]# tar -zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mysqld_exporter-0.14.0.linux-amd64/
mysqld_exporter-0.14.0.linux-amd64/LICENSE
mysqld_exporter-0.14.0.linux-amd64/NOTICE
mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter


[root@mysql ~]# tar -xvf node_exporter-1.5.0.linux-amd64.tar.gz
node_exporter-1.5.0.linux-amd64/
node_exporter-1.5.0.linux-amd64/LICENSE
node_exporter-1.5.0.linux-amd64/NOTICE
node_exporter-1.5.0.linux-amd64/node_exporter

 

 

■ Exporter 실행 
node_exporter 는 특별한 conf 설정없이 바이너리 파일을 바로 실행 가능
node_exporter 의 기본 포트는 9100입니다.
[root@mysql ~]# cd node_exporter-1.5.0.linux-amd64/
[root@mysql node_exporter-1.5.0.linux-amd64]# ./node_exporter &

 

 

mysqld_exporter 는 MySQL 서버에 접속하여 변수들을 수집해야하기 때문에, 접속할 계정이 필요
mysqld_exporter 의 기본 포트는 9104입니다.
mysql> create user 'prouser'@'%' identified by 'prouser';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to 'prouser'@'%';
Query OK, 0 rows affected (0.00 sec)



## conf 파일을 통해 해당 접속 유저 명시
[root@mysql mysqld_exporter-0.14.0.linux-amd64]# vi /root/.my.cnf
[client]
user=prouser
password=prouser


[root@prometheus ~]# cd mysqld_exporter-0.14.0.linux-amd64/


[root@mysql mysqld_exporter-0.14.0.linux-amd64]# ./mysqld_exporter &
[2] 6376
[root@prometheus mysqld_exporter-0.14.0.linux-amd64]# ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:277 level=info msg="Starting mysqld_exporter" version="(version=0.14.0, branch=HEAD, revision=ca1b9af82a471c849c529eb8aadb1aac73e7b68c)"
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:278 level=info msg="Build context" (gogo1.17.8,userroot@401d370ca42e,date20220304-16:25:15)=(MISSING)
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=global_status
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=global_variables
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=slave_status
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmp
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmpmem
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:293 level=info msg="Scraper enabled" scraper=info_schema.query_response_time
ts=2022-12-02T01:35:34.851Z caller=mysqld_exporter.go:303 level=info msg="Listening on address" address=:9104
ts=2022-12-02T01:35:34.851Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false

 

 

 

■ prometheus에서 메트릭을 수집 확인
1. exporter 들은 자신이 열어둔 port 를 통해 수집한 메트릭을 띄워놓습니다.
2. prometheus 는 설정된 target server 의 port 로 접근하여 띄워진 메트릭을 수집해갑니다.
 
prometheus 웹페이지에서 Status -> Targets 탭에 들어가면 state가 UP상태여야 합니다.

 

 


 

Grafana 이용 가시화

 

■ Grafana 설치 및 기동
grafana server 의 기본 포트는 3000입니다.

 

 

■ http://<Public IP>:3000
※ 초기 계정
ID = admin
PW = admin

 

 

Prometheus 연동
■ 첫 접속 화면

 

 

■ Datasource 설정
Configuration -> Data Sources 탭 선택 -> Add data Source

 

 

■ Prometheus 선택

 

 

■ config 설정
HTTP URL에 prometheus 서버 ip 기입 , 저장

 

 

■ Grafana 그래프 표현
Dashboards -> New dashborad -> add panel -> 아래 쿼리 매트릭을 보고자하는 것으로 지정(mysql_global_status_queries) -> Run queries 클릭 -> 그래프 조회