이번에는 MySQL 모니터링을 해보겠습니다.

 

exporter 가 MySQL 에 접속해서 데이터를 가져가야 하기때문에, 전용 계정을 하나 생성합니다.

 

sudo mysql
use mysql;

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'password!1234' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

 

이 글을 볼 정도라면 mysql 의 create user 와 grant 명령어는 아실거라 생각하기 때문에 자세한 설명은 생략합니다.

 

알아서 수정해서 쓰시면 됍니다.

 

그러면 이제 설치를 합니다.

 

sudo apt install -y prometheus-mysqld-exporter

 

설치가 종료돼면, 위에서 만든 계정으로 로그인하도록 설정을 수정합니다.

 

sudo vi /etc/default/prometheus-mysqld-exporter

 

파일을 열어서 로그인 설정을 추가합니다.

 

# Using UNIX domain sockets and authentication:
# DATA_SOURCE_NAME="prometheus:nopassword@unix(/run/mysqld/mysqld.sock)/"
DATA_SOURCE_NAME=exporter:password!1234@unix(/run/mysqld/mysqld.sock)/

 

위에서 만든 계정 설정대로라면 이렇게 수정하시면 됍니다.

 

설정을 변경하셨으니, 재시작합니다.

 

sudo service prometheus-mysqld-exporter restart

 

이제 이걸로 끝났으니, Grafana 에 설치됀 Prometheus 의 설정을 변경합니다.

 

sudo vi /etc/prometheus/prometheus.yml

 

파일을 열어서 9104 포트 설정을 추가합니다.

 

  - job_name: node
    # If prometheus-node-exporter is installed, grab stats about the local
    # machine by default.
    static_configs:
      - targets:
          - 'localhost:9100'

          # test server
          - '{Your Test Server IP}:9100'
          - '{Your Test Server IP}:9113'
          - '{Your Test Server IP}:9121'
          - '{Your Test Server IP}:9104'
    relabel_configs:
      - source_labels: ['__address__']
        regex: 'localhost:91[0-9]+'
        target_label: instance
        replacement: 'Grafana'

      - source_labels: ['__address__']
        regex: '{Your}\.{Test}\.{Server}\.{IP}:91[0-9]+'
        target_label: instance
        replacement: 'Test'

 

프로메테우스를 재시작합니다.

 

sudo service prometheus restart

 

Grafana 에 대시보드를 추가합니다.

 

mysql 로 검색했을때 맨 위에 나오는 7362 번을 추가하겠습니다.

 

MySQL Overview dashboard for Grafana | Grafana Labs

 

MySQL Overview dashboard for Grafana

Dashboard from Percona Monitoring and Management project.

grafana.com

 

추가를 하면 이렇게 데이터를 불러오지 못합니다.

 

 

현재는 불러오지 못하는게 정상입니다.

(prometheus-mysqld-exporter 에 문제가 있어서 그렇습니다.)

 

http://{Your Master Prometheus IP}:9090/targets

 

프로메테우스 타겟으로 확인을 해보면..

 

 

9104 포트가 에러가 발생한것을 볼 수 있습니다.

 

저게 prometheus-mysqld-exporter 가 MySQL 로 접속을 못하는걸로 보이는데..

 

실제로 sock이 아닌, IP로 하면 페이지는 열리는데 데이터가 없습니다.

 

이 문제는 prometheus-mysqld-exporter 를 업데이트하면 해결됍니다.

 

prometheus-mysqld-exporter 가 설치됀 서버로 다시 와서, 버전을 확인합니다.

 

prometheus-mysqld-exporter --version

 

위의 코드로 확인을 해보면..

 

mysqld_exporter, version 0.11.0+ds (branch: debian/sid, revision: 0.11.0+ds-1)
  build user:       pkg-go-maintainers@lists.alioth.debian.org
  build date:       20181016-00:53:55
  go version:       go1.10.4

 

이렇게 0.11.0 버전을 사용한다고 나옵니다.

 

sudo service prometheus-mysqld-exporter status

 

위의 명령어를 치시고..

 

     Loaded: loaded (/lib/systemd/system/prometheus-mysqld-exporter.service; enabled; vendor preset: enabled)

 

위의 라인을 찾습니다.

 

서비스 파일이 /lib/systemd/system/prometheus-mysqld-exporter.service 에 있네요.

 

     CGroup: /system.slice/prometheus-mysqld-exporter.service
             └─14885 /usr/bin/prometheus-mysqld-exporter

 

그리고 위의 라인도 찾아서 /usr/bin/prometheus-mysqld-exporter 도 기억해둡니다.

 

일단 서비스 파일을 열어봅니다.

 

sudo vi /lib/systemd/system/prometheus-mysqld-exporter.service

 

열어서 확인을해보면..

 

Documentation=https://prometheus.io/docs/introduction/overview/

 

프로메테우스의 프로그램인듯합니다.

 

GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics

 

GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics

Exporter for MySQL server metrics. Contribute to prometheus/mysqld_exporter development by creating an account on GitHub.

github.com

 

프로메테우스의 깃허브에서 mysqld_exporter 를 찾습니다.

 

여기에 있는 최신버전으로 교체를 합니다.

 

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
tar -zxvf mysqld_exporter-0.13.0.linux-amd64.tar.gz
cd mysqld_exporter-0.13.0.linux-amd64/
mv mysqld_exporter /usr/bin/prometheus-mysqld-exporter
sudo service prometheus-mysqld-exporter restart

 

버전과 CPU에 주의하시고, 위에서 기억하라고 한 파일의 위치로 수정해줍니다.

 

 

수정후에 프로메테우스의 타겟을 확인해보면, 오류가 사라진것을 확인 할 수 있습니다.

 

 

대시보드를 새로고침해보면 No data 가 사라지고, 정상적으로 데이터가 보이기 시작합니다.

 

ps. 개인적으로 연동 난이도가 가장 높았던건 MySQL 이었다고 생각을하네요..

설마 우분투 기본버전이 에러일줄이야;;

설정이 이상한건가 싶어서 약 하루종일 삽질을 했었네요;;

 

그냥 깃허브에서 최신 버전으로 업그레이드하면 해결됍니다;;

Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS