sensu-plugin과 InfluxDB와 Grafana로 간편한 Metrics 모니터링

10735 단어 influxdbgrafanaSensu
sensu-plugin을 사용하여 Metrics를 가져오고 Grafana로 표시해 봅니다.

환경



우분투 14.04

(이번은 sensu-server, sernsu-client, InfluxDB, Grafana 전부 1개의 서버로 하고 있습니다)

InfluxDB



공식 문서 와 같이 설치해 갑니다.
$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
$ source /etc/lsb-release
$ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
$ sudo apt-get update && sudo apt-get install influxdb
$ sudo service influxdb start
http://<サーバIP>/8083에 액세스하면 InfluxDB의 대시 보드가 표시됩니다.



Grafana



Grafana를 실행하려면 Nginx가 필요하므로 설치합니다.

Nginx 설치


$ sudo apt install nginx
$ sudo rm /etc/nginx/sites-enabled/default
$ sudo mkdir -p /var/www/html
$ cat <<EOF | sudo tee /etc/nginx/sites-available/grafana
server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html/;
        index index.html index.htm;

        server_name localhost;

        location /grafana {
                index index.html index.htm;
        }
}
EOF
$ sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
$ sudo service nginx configtest
$ sudo service nginx restart

Grafana 설치


$ echo "deb https://packagecloud.io/grafana/stable/debian/ wheezy main" | sudo tee /etc/apt/sources.list.d/grafana.list
$ curl https://packagecloud.io/gpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install grafana
http://<サーバIP>/3000에 액세스하면 Grafana 대시 보드가 표시됩니다.


User=admin , Password=admin 로 로그인할 수 있습니다.



설정



InfluxDB



공식 문서 거리에 database를 만듭니다.

InfluxDB의 대시보드에서도 만들 수 있습니다.



Sensu



sensu plugin 설치


  • sensu-plugins-vmstats
  • sensu-plugins-influxdb
  • sensu-install 명령으로 플러그인을 설치합니다.sensu-plugins-vmstats 는 Checks, sensu-plugins-influxdb 는 Handler 를 사용합니다.
    sudo sensu-install -p vmstats
    sudo sensu-install -p influxdb
    

    실행하면 /opt/sensu/embedded 안에 설치됩니다.

    sensu 설정



    Sensu 설정을 추가합니다. (이번에는 sensu-server와 sensu-client가 동일한 서버에서 실행됩니다.)
    "client": {
      "name": "localhost",
      "address": "127.0.0.1",
      "subscriptions": [
        "test"
      ]
    }
    

    Checks를 추가합니다. command 에는 sensu-plugins-vmstatsmetrics-vmstat.rb 를 지정합니다.

    /etc/sensu/conf.d/vmstat_metrics.json
    {
      "checks": {
        "vmstat_metrics": {
          "type": "metric",
          "handlers": [ "influxdb" ],
          "command": "metrics-vmstat.rb",
          "interval": 60,
          "subscribers": [ "test" ]
        }
      }
    }
    

    Hander를 설정합니다. influxdb라는 Handler를 추가하고 있습니다.
    handler의 타입을 파이프 로 하면(자) 명령을 실행해 줍니다.command 에는 sensu-plugins-influxdbmetrics-influxdb.rb 를 지정합니다.

    InfluxDB 설정을 Usage 을 참고로 씁니다.

    /etc/sensu/conf.d/handler_influxdb.json
    {
      "handlers": {
        "influxdb": {
          "type": "pipe",
          "command": "metrics-influxdb.rb"
        }
      },
      "influxdb": {
        "hosts" : ["localhost"],
        "host": "localhost",
        "port": "8086",
        "username": "root",
        "password": "root",
        "database": "metrics"
      }
    }
    

    Sensu 재부팅



    Sensu를 다시 시작하여 설정을 반영합니다.
    $ sudo service sensu-server start 
    $ sudo service sensu-client start 
    $ sudo service sensu-api start 
    

    InfluxDB로 동작 확인



    InfluxDB의 Dashboard에서 SHOW MEASUREMENTS 쿼리를 실행하면 measurements 목록이 표시됩니다.
  • vmstat_cpu_idle
  • vmstat_cpu_steal
  • vmstat_cpu_system
  • vmstat_cpu_user
  • vmstat_cpu_waiting
  • vmstat_io_received
  • vmstat_io_sent
  • vmstat_memory_buffers
  • vmstat_memory_cache
  • vmstat_memory_free
  • vmstat_memory_swap_used
  • vmstat_procs_uninterruptible
  • vmstat_procs_waiting
  • vmstat_swap_in
  • vmstat_swap_out
  • vmstat_system_context_switches_per_second
  • vmstat_system_interrupts_per_second

  • 적당히 measurement를 선택하고 SELECT * FROM <measurement名>를 실행하여 제대로 데이터가 들어 있는지 확인합니다.

    Grafana에 표시 추가



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

    DataSources 추가



    DataSource에 InfluxDB를 추가합니다.
    왼쪽 상단의 Grafana 아이콘에서 DataSource 선택. Add data source 버튼을 누릅니다.




    필드
    Value



    이름
    개발
    적당히 붙인다

    Default
    True
    default로 설정하면

    유형
    InfluxDB

    Url
    http://localhost:8086

    액세스
    프록시

    데이터베이스
    metrics
    작성한 Database 이름

    사용자
    루트

    Password
    루트



    설정이 끝나면 Save 버튼을 누릅니다.

    대시보드 추가



    왼쪽 상단의 Grafana 아이콘에서 Dashboard > New 로 추가합니다.
    왼쪽의 녹색 막대에서 Add Panel > Graph를 선택합니다.Metrics 의 Query를 만나서 원하는 대로 데이터를 표시합니다.
    위의 저장 버튼을 눌러 완료.



    완성





    참고

    좋은 웹페이지 즐겨찾기