PromDash로 서버 메트릭 대시보드 만들기

소개



Prometheus와 PromDash를 사용하여 이러한 느낌의 서버 모니터링을위한 대시 보드를 표시합니다.


  • 사쿠라 클라우드(플랜/1Core-1GB)
  • 우분투 16.04

  • 192.168.x.12: Prometheus와 PromDash
    192.168.x.31-33: 모니터링 대상 서버



    Prometheus 설치 및 시작


    $ wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz
    $ tar xzvf prometheus-1.5.2.linux-amd64.tar.gz
    $ mv prometheus-1.5.2.linux-amd64 prometheus
    $ vi prometheus.yml
    $ nohup ./prometheus > prometheus.log 2>&1 &
    

    prometheus.yml의 내용
    # global config
    global:
      scrape_interval:     30s #node_exporterなどに問い合わせる頻度
      evaluation_interval: 30s
    
      external_labels:
          monitor: 'codelab-monitor'
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first.rules"
      # - "second.rules"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'server'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
          - targets: ['192.168.x.31:9100','192.168.x.32:9100','192.168.x.33:9100']
    

    node_exporter 설치



    모니터링할 서버에 node_exporter를 설치합니다.
    $ wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz
    $ tar -xzvf node_exporter-0.14.0.linux-amd64.tar.gz 
    $ sudo ln -s ~/node_exporter/node_exporter-0.14.0.linux-amd64/node_exporter /usr/bin/
    
    service node_exporter start 로 기동할 수 있도록(듯이), /etc/systemd/system/node_exporter.service 에 이하를 기술.
    여기 Gist 를 참고했습니다.
    [Unit]
    Description=Prometheus node exporter
    After=local-fs.target network-online.target network.target
    Wants=local-fs.target network-online.target network.target
    
    [Service]
    ExecStart=/usr/bin/node_exporter
    Type=simple
    
    [Install]
    WantedBy=multi-user.target
    
    $sudo systemctl list-unit-files
    $sudo systemctl enable node_exporter.service
    $sudo service node_exporter start
    

    PromDash 설치



    Prometheus용 대시보드인 PromDash을 설치합니다.
    $sudo apt-get install sqlite3 libsqlite3-dev
    $sudo apt-get install apt-transport-https ca-certificates
    $sudo docker run -p 3000:3000 -v /tmp/prom:/tmp/prom -e DATABASE_URL=sqlite3:/tmp/prom/file.sqlite3 -d prom/promdash
    

    기본 인증 적용



    전체에 기본 인증을 합니다.

    nginx를 설치.
    $sudo apt-get install nginx
    

    .htpasswd 파일을 만듭니다.
    $htpasswd -c .htpasswd user
    
    /etc/nginx/site-available/prometheus 에 다음의 nginx용의 설정을 기술. example.com 는 서버의 DNS를 설정합니다. Prometheu 용은 /api/를 라우팅하고 PromDash는 루트에서 나눕니다.
    server {
        server_name example.com
        listen 0.0.0.0:80;
        location / {
          proxy_pass http://localhost:3000/;
    
          auth_basic "Prometheus";
          auth_basic_user_file ".htpasswd";
          proxy_set_header    X-Host       $host;
        }
        location /api/ { 
          proxy_pass http://localhost:9090/api/;
    
          auth_basic "Prometheus";
          auth_basic_user_file ".htpasswd";
          proxy_set_header    X-Host       $host;
        }
    
    }
    
    $sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/prometheus
    $sudo service nginx restart
    

    VPC 등에서 192.168.x.12에 액세스하면 대시보드가 ​​표시됩니다.

    PromDash에서 설정



    추가 서버





    Graph 추가





    Prometheus 쿼리
  • 로드 평균: node_load1{job=~"server"}
  • 네트워크 수신 rate(node_network_receive_bytes{job=~"server"}[5m])
  • 네트워크 전송 rate(node_network_transmit_bytes{job=~"server"}[5m])
  • 파일 디스크립터 node_filefd_allocated{job=~"server"}
  • 메모리 관련 node_memory_MemFree{job=~"server"}
  • 디스크 Read rate(node_disk_reads_completed{job=~"server"}[5m])
  • 디스크Write rate(node_disk_write_completed{job=~"server"}[5m])

  • 마지막으로



    이제 서버를 손쉽게 모니터링할 수 있습니다. node_exporter 이외에, 예를 들면 jmx_exporter 라고 하는 것도 있어, cassandra등의 Java로 움직이는 미들웨어의 메트릭스도 표시할 수 있습니다.

    참고



    node_exporter : htps : // 기주 b. 이 m / p 뻗어 s / 그래서 _ x r r
    서비스 설정 : htps : // 기 st. 기주 b. m / da an / ny / 2 a 2141 32c1f601467 39d3 093d6 ec
    PromDash : htps : // 기주 b. 코 m / p 로메 ㅇ s- Junka rd / p rom sh
    Prometheus 쿼리 : htps : // p 뻗어 s. 이오 / 드 cs / 쿠에리 엔 g / 바시 cs /
    기본 인증을 Prometheus 및 PromDash에 적용: htps : // 기주 b. 코 m / p 로메 ㅇ s- 준 캬 rd / p 로 m다 sh / 이스에 s / 341

    좋은 웹페이지 즐겨찾기