Windows
influxdb
grafana
Telegraf

WindowsのパフォーマンスをInfluxDB+Telegraf+Grafanaで可視化する

Windowsのパフォーマンスを、InfluxDB+Telegraf+Grafanaで可視化する手順を説明します。
Windowsにはパフォーマンスカウンタがありますが、これではつらい場合にお試しください。

各要素の説明

要素 説明
InfluxDB 収集した性能データを格納するDB
Telegraf 対象サーバから性能データを収集し、InfluxDBにデータを送信するコレクタ
Grafana InfluxDBに格納された性能データを可視化する

手順の概要

手順の大まかな流れは次の通り
- InfluxDBを導入し、DBを準備する。
- Telegrafを導入し、性能データをDBに送信する。
- Grafanaを導入し、DBのデータを可視化する。

1つのWindows Hostの中で、InfluxDB・Telegraf・Grafanaを動作させる手順になっています。
動作させるにフォーカスするため、セキュリティを確保するための設定は省略しています。本番運用では、適切な設定をお願いします。

手順詳細

InfluxDB

InfluxDBのインストール

  1. 下記URLから、Windows用のInfluxDBをダウンロードする
    https://portal.influxdata.com/downloads
    今回の例では
    https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2_windows_amd64.zip

  2. 解凍して配置する
    C:\influxdb

  3. データ用のディレクトリを作成する

    mkdir C:\influxdb\meta
    mkdir C:\influxdb\data
    mkdir C:\influxdb\wal
    
  4. 設定ファイル(C:\influxdb\influxdb.conf)を修正する

    [meta]
      # Where the metadata/raft database is stored
      # dir = "/var/lib/influxdb/meta"
      dir = "C:\\influxdb\\meta"
    
    [data]
      # The directory where the TSM storage engine stores TSM files.
      # dir = "/var/lib/influxdb/data"
      dir = "C:\\influxdb\\data"
    
      # The directory where the TSM storage engine stores WAL files.
      # wal-dir = "/var/lib/influxdb/wal"
      wal-dir = "C:\\influxdb\\wal"
    
  5. 起動する

    cd C:\influxdb
    influxd.exe --config C:\influxdb\influxdb.conf
    

InfluxDBの動作確認

powershellを起動して、InfluxDBにデータベースtestを作るクエリを送信する。
下記のようなに応答があれば動作確認完了。

```
PS C:\Users\username> curl "http://localhost:8086/query?q=CREATE DATABASE test"

StatusCode        : 200
StatusDescription : OK
Content           : {"results":[{"statement_id":0,"messages":[{"level":"warning","text":"deprecated use of 'CREATE DATA
                    BASE test' in a read only context, please use a POST request instead"}]}]}

RawContent        : HTTP/1.1 200 OK
                    Request-Id: 7e0cf98e-0707-11e8-8018-000000000000
                    X-Influxdb-Build: OSS
                    X-Influxdb-Version: 1.4.2
                    X-Request-Id: 7e0cf98e-0707-11e8-8018-000000000000
                    Transfer-Encoding: chunked
                    Con...
Forms             : {}
Headers           : {[Request-Id, 7e0cf98e-0707-11e8-8018-000000000000], [X-Influxdb-Build, OSS], [X-Influxdb-Version,
                    1.4.2], [X-Request-Id, 7e0cf98e-0707-11e8-8018-000000000000]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : System.__ComObject
RawContentLength  : 175
```

Telegraf

Telegrafのインストール

  1. 下記URLから、Windows用のTelegrafをダウンロードする
    https://portal.influxdata.com/downloads
    今回の例では
    https://dl.influxdata.com/telegraf/releases/telegraf-1.5.2_windows_amd64.zip

  2. 解凍して配置する
    C:\telegraf

  3. 設定ファイルは修正しません。デフォルト値で、TelegrafはローカルのInfluxDBに性能データを送信してくれます。

  4. Telegrafを起動する

    cd C:\telegraf
    telegraf.exe --config C:\telegraf\telegraf.conf
    

Telegrafの動作確認

起動したInfluxDBのコンソールで以下のようなログが表示されれば、動作確認完了です。
(起動したTelegrafによって、InfluxDB内のDB:telegrafに10秒間隔で書き込みがされている)

```
[httpd] 127.0.0.1 - - [01/Feb/2018:21:28:50 +0900] "POST /write?db=telegraf HTTP/1.1" 204 0 "-" "-" ********-0708-11e8-8040-000000000000 3999
[httpd] 127.0.0.1 - - [01/Feb/2018:21:29:00 +0900] "POST /write?db=telegraf HTTP/1.1" 204 0 "-" "-" ********-0708-11e8-8041-000000000000 4016
[httpd] 127.0.0.1 - - [01/Feb/2018:21:29:10 +0900] "POST /write?db=telegraf HTTP/1.1" 204 0 "-" "-" ********-0708-11e8-8042-000000000000 3321
[httpd] 127.0.0.1 - - [01/Feb/2018:21:29:20 +0900] "POST /write?db=telegraf HTTP/1.1" 204 0 "-" "-" ********-0708-11e8-8043-000000000000 3992
[httpd] 127.0.0.1 - - [01/Feb/2018:21:29:30 +0900] "POST /write?db=telegraf HTTP/1.1" 204 0 "-" "-" ********-0708-11e8-8044-000000000000 2999
```

Grafana

Grafanaのインストール

  1. ダウンロードする
    https://grafana.com/grafana/download
    今回の例では
    https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.windows-x64.zip

  2. 解凍して配置する
    C:\grafana

  3. 設定ファイルをコピーし、ディレクトリを用意します。

    copy C:\grafana\conf\sample.ini C:\grafana\conf\custom.ini
    mkdir C:\grafana\data\log
    mkdir C:\grafana\data\plugins
    
  4. 設定ファイルC:\grafana\conf\custom.iniを編集します。

    custom.ini
    [paths]
    # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
    #
    # ;data = /var/lib/grafana
    ;data = C:\\grafana\\data
    #
    # Directory where grafana can store logs
    #
    # ;logs = /var/log/grafana
    ;logs = C:\\grafana\\data\\log
    #
    # Directory where grafana will automatically scan and look for plugins
    #
    # ;plugins = /var/lib/grafana/plugins
    ;plugins = C:\\grafana\\data\\plugins
    
  5. Grafanaを起動する

    cd C:\grafana\bin
    grafana-server.exe --config C:\grafana\conf\custom.ini
    

Grafanaの設定、動作確認。

  1. ブラウザで、http://localhost:3000/login を開きます。
  2. ログインします。(初期値 User:admin/Password:admin)
  3. 左上のアイコンから、「Data Source」→「add data source」をクリックします。

    image.png
    image.png

  4. 「Add data source」画面で、次の値を入力して、Addボタンを押します。

    項目
    Name local_influxdb
    Type influxDB
    URL http://localhost:8086
    Access direct
    Database telegraf
    Min time interval 10
  5. 左上のアイコンから、「Dashboards」→「New」をクリックします。
    image.png

  6. Dashboard作成画面で、Empty Spaceに、GraphパネルをD&Dします。
    image.png

  7. パネルのタイトルをクリックすると、メニューが表示されるのでEditを選択します。
    image.png

  8. Metricsタブで、InfluxDBのデータを指定します。FROMやSELECTは、クリックをするとそれらしい値が設定できます。
     image.png

  9. Axesタブで、Y軸の調整をします。
    image.png

  10. GeneralタブでTitleを記入し、×ボタンでパネルの修正を閉じます。
    image.png

  11. 最後に保存ボタンで、ダッシュボードを保存します。
    image.png

以上です。