はじめに
最近Grafanaを使って監視画面の作成をしていますが、Elasticsearchがデータソースの場合、クエリの書き方がいまいち分からず苦戦したので、知っていると監視画面の作成が楽になると感じたクエリの書き方をいくつか紹介します。
環境
- Grafana5.4 (v6.0以上でも確認済)
- Elasticsearch6.6
クエリ書かなくても
下記記のようにメトリック指定してグルーピングするだけでもクエリを書かなくてもグラフ作成をすることができます。(※画面はGrafana提供のサンプル画面。例示がたくさんあるのでグラフ作成の参考になります。)
クエリ書くとより活用できる
クエリはどんな時に活用することができるかというと、特定のサーバーのみCPU使用率やメモリディスク使用率を表示させたい、または特定のサーバー以外表示させたい等の要望に応えることができます。
※今回は、Metricbeatを使って収集したCeph情報をElasticsearchに格納しており、それを表示させたい場合のクエリを例にとりました。
特定の情報のみ表示させたい
# Cephのpool-IDを1つ指定する
# [書き方]フィールド名:xxx
ceph.pool_disk.id:1
特定の情報を複数指定して表示させたい
# 複数のCephのpool-IDを指定する
# [書き方]フィールド名:xxx AMD フィールド名:xxx
ceph.pool_disk.id:1 AMD ceph.pool_disk.id:2
注意点は、ANDではなくAMDを使って複数指定するところです。
特定の情報以外を表示させたい
# 表示させないCephのpool-IDを指定する
# [書き方]NOT(フィールド名:xxx)
NOT(ceph.pool_disk.id:1)
# 複数指定も可能
NOT(ceph.pool_disk.id:1 AMD ceph.pool_disk.id:2)
全部の情報を表示させたい
クエリ書かなくても可能ですが一応。
# 全部のCephのpool-IDを指定する
# [書き方]フィールド名:*
ceph.pool_disk.id:*