$30 off During Our Annual Pro Sale. View Details »

Grafana Lokiでイベントネットワーク監視をやって見た話

gen16k
January 15, 2020

Grafana Lokiでイベントネットワーク監視をやって見た話

Prometheus Meetup #3のLTで発表したスライドです。
Grafaana Lokiを使いICPC(国際大学対抗プログラミングコンテスト)アジア地区大会のネットワーク監視を行ってみた経験をまとめました。

gen16k

January 15, 2020
Tweet

Other Decks in Technology

Transcript

  1. grafana lokiでイベントネットワーク監視を
    やってみた話

    View Slide

  2. 自己紹介
    - 木村源一朗(gen16k)
    - NTTコミュニケーションズ所属
    - データ分析基盤の開発・運用
    - hadoop, kubernetes 基盤
    - 入社1年目
    - インフラ初心者
    - ネットワーク初心者未満
    - 趣味:自作PC

    View Slide

  3. イベントについて
    - ICPC
    - 国際大学対抗プログラミングコンテスト
    - 66チーム(300名)が参加
    - アジア地区予選
    - 中国、台湾、韓国、シンガポールからも

    View Slide

  4. 監視したかったこと
    - スイッチとのping
    - スイッチのsnmp
    - インターフェース状態
    - サーバーのリソース
    - スイッチからのsyslog

    View Slide

  5. 監視ツールはどれにする?
    - zabbixがbest practice
    - 一通りのことができる。
    - snmp
    - syslog
    - 自分がprometheus + grafanaでの監視しか知らない
    - しかしsyslog監視どうしよう
    ⇨ lokiならできそう
    (イベントネットワークでは)

    View Slide

  6. 監視したかったこと
    - スイッチとのping
    - スイッチのsnmp
    - インターフェース状態
    - サーバーのリソース
    - スイッチからのsyslog

    View Slide

  7. lokiでのsyslog監視
    - rsyslogでsyslogを受信
    - logパネルで表示
    - logのmetrics化
    - 今回はv0.40を使用
    - (イベント直後にv1.0リリース…)

    View Slide

  8. logパネル
    - 以下のlogqlで/var/log/syslog.logをダッシュボード表示
    - {filename="/var/log/syslog.log"}

    View Slide

  9. logパネルでgrep
    - 以下の様なlogqlでログをgrepできる
    - {filename="/var/log/syslog.log"} |= "fail"

    View Slide

  10. logのmetrics化機能
    - lokiをprometheusとしてdatasourceに追加
    - rate(({job="mon-varlog"}) |= "fail"[1h])
    - `fail`の文字列検知した回数をグラフ化

    View Slide

  11. lokiでsyslog監視
    - rsyslogでsyslog受信
    - logパネルで表示
    - logのmetrics化機能
    - 今回はv0.40を使用
    - (イベント直後にv1.0リリース…)
    - prometheus + grafana + loki≒ zabbix???

    View Slide

  12. 監視フロー(妄想)
    Promtail
    syslog
    metrics exporter Prometheus
    Grafana
    /var/log

    View Slide

  13. 挫折その1
    - logをmetrics化できるのならalertingもできるのでは?
    - alertの設定はできる!!

    View Slide

  14. 挫折その1
    - しかし何をやってもエラー
    - そもそも実装されていない?

    View Slide

  15. mtailの導入
    - googleがhostingしているパーサー
    - mtail languageというスクリプトでいろいろできる。
    - 今回はファイル 内の文字列をカウントしてmetrics化
    mtailのスクリプト metricsに定義した変数値が表示される!

    View Slide

  16. 監視フロー(現実)
    Promtail
    mtail
    syslog
    metrics exporter Prometheus
    Grafana
    /var/log

    View Slide

  17. 挫折その2
    - 指定した文字列を検知してアラートは出せる!
    - しかし対応するlogが表示できない
    - どのインターフェースがdown?????
    - どのホスト?

    View Slide

  18. 挫折その2
    - 大会開始後だったため監視フローの修正は不可能
    - 同じく監視担当の1年目社員が受信したsyslogをパース、ホスト名とインターフェー
    ス名を添えてslack通知するプログラムを1.5時間で作成

    View Slide

  19. 監視フロー(最終形)
    Promtail
    mtail
    syslog
    metrics exporter Prometheus
    Grafana
    /var/log
    自作通知プログラム

    View Slide

  20. 問題点
    - snmp-trapを受信できない。
    - 監視用プロダクトの数が多くなりがち
    - 公式ドキュメント未整備
    - 監視業務中は何の画面見ればいい??

    View Slide

  21. よかった点
    - (zabbixより)画面が見やすい
    - (zabbixより)画面がかっこいい!
    - 完全にコンテナ化したので構築簡単
    - lokiを実運用で検証できた!

    View Slide

  22. まとめ
    - ZABBIXでよさそう
    - (イベントネットワークなら)
    - loki + grafanaではalerting不可能
    - alert-managerとpromtailを駆使すれば何とかなる??
    - (promtail.ymlのpipelineは挫折しました・・・)
    - 持つべきは優秀な同僚

    View Slide

  23. Special thanks
    @yosshi_ - san

    View Slide

  24. Thank you for listening !

    View Slide