본문 바로가기

Monitoring/MySQL Monitoring 구축 (with prometheus)

3. Grafana 연동 with prometheus

1. grafana 설치


https://grafana.com/grafana/download

위 링크를 통해 grafana 를 설치한다.


$ tar -xzvf grafana-5.4.3.linux-amd64.tar.gz







2. grafana 실행


$ ./grafana-server


※ grafana server 의 기본 포트는 3000 이다


웹페이지에 접속하면 아래와 같은 초기 화면이 보일 것이다.




※ 초기 계정

ID = admin

PW = admin



3. prometheus 연동

grafana server 기동 후 아직 prometheus 와 연동되지않았기때문에 data source 로 설정을 해줘야한다.



Configuration - Data Sources 탭 선택





위 화면에서 Prometheus 를 선택 후 설정을 할 수 있다.



HTTP URL 에는 prometheus 서버의 주소를 넣어서 설정하면 된다.


이제 prometheus 에서 수집된 메트릭을 화면에 그래프로 나타내보자.





4. grafana 그래프 표현


Dashboard 를 만든 후 Add Panel 을 통해 graph 를 생성한다.






아직 해당 그래프가 어떤 값을 그릴지 설정이 안되어있기때문에, 아무것도 나타나지는 않는다.


그래프를 클릭 후 "Edit" 버튼을 클릭하면, 아래와 같은 설정 창이 뜰 것이다.






빈 인풋박스들에는 내가 표현하고자하는 메트릭의 특정 값들을 지정할 수 있다.


확인을 위해 mysqld_exporter 가 수집한 "mysql_global_status_queries" 란 값을 그래프로 만들어보자








캡쳐와 같이 "mysql_global_status_queries" 은 누적수치이기때문에, 계속 증가하는 형태의 그래프를 보여준다. 또 수집된 인스턴스의 네이밍도 조잡하다.


아래와 같이 설정해본다.







이제 평균 수치를 편하게 볼 수 있게 되었고, 노드의 네이밍 또한 "prometheus.yml" 설정에서 지정한 네이밍으로 보이게 되었다.

참고로 rate() 는 기본적으로 제공해주는 함수를 사용한 것이다. 

해당 내용은 http://docs.grafana.org/features/datasources/prometheus/#query-editor 에서 자세히 볼 수 있다.







이로써 prometheus 를 통한 mysql 모니터링 구축 설정이 끝났다. 상대적으로 간단한 구축으로 상당히 자세한 모니터링 지표들을 수집할 수 있다.


percona 에서는 mysql 말고도 mongodb postgresql 등 다양한 exporter 들을 지원한다. 

간단한 구축으로 DBMS 들의 서브 모니터링으로도 충분히 유용하게 사용 될 수 있고, 

포스팅에서는 안다뤘지만 ALERT 관련한 기능들도 지원하기때문에 꽤나 유용할 것이다.