Prometheus 메트릭 수집을 위한 exporter 구축 (mysql서버)
■ Exporter 설치
download URL : https://prometheus.io/download/
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 설치 및 기동
Download URL : https://grafana.com/grafana/download/9.2.6?platform=linux
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 클릭 -> 그래프 조회
'Others > DB Monitoring' 카테고리의 다른 글
[Prometheus - 원하는 데이터 뽑기] part 3 use. mysql_exporter (4) | 2022.12.18 |
---|---|
[Prometheus - MySQL모니터링 서버 설치] part 1 (0) | 2022.12.18 |
[ PMM - Home dashboard 설정 ] part 2 (0) | 2022.04.23 |
[ PMM - Dashboard 설정 ] part 1 (0) | 2022.04.23 |
[ PMM - DB monitoring 서버 구축 ] (0) | 2022.02.24 |