Prometheus Meetup #3のLTで発表したスライドです。 Grafaana Lokiを使いICPC(国際大学対抗プログラミングコンテスト)アジア地区大会のネットワーク監視を行ってみた経験をまとめました。
grafana lokiでイベントネットワーク監視をやってみた話
View Slide
自己紹介- 木村源一朗(gen16k)- NTTコミュニケーションズ所属- データ分析基盤の開発・運用- hadoop, kubernetes 基盤- 入社1年目- インフラ初心者- ネットワーク初心者未満- 趣味:自作PC
イベントについて- ICPC- 国際大学対抗プログラミングコンテスト- 66チーム(300名)が参加- アジア地区予選- 中国、台湾、韓国、シンガポールからも
監視したかったこと- スイッチとのping- スイッチのsnmp- インターフェース状態- サーバーのリソース- スイッチからのsyslog
監視ツールはどれにする?- zabbixがbest practice- 一通りのことができる。- snmp- syslog- 自分がprometheus + grafanaでの監視しか知らない- しかしsyslog監視どうしよう⇨ lokiならできそう(イベントネットワークでは)
lokiでのsyslog監視- rsyslogでsyslogを受信- logパネルで表示- logのmetrics化- 今回はv0.40を使用- (イベント直後にv1.0リリース…)
logパネル- 以下のlogqlで/var/log/syslog.logをダッシュボード表示- {filename="/var/log/syslog.log"}
logパネルでgrep- 以下の様なlogqlでログをgrepできる- {filename="/var/log/syslog.log"} |= "fail"
logのmetrics化機能- lokiをprometheusとしてdatasourceに追加- rate(({job="mon-varlog"}) |= "fail"[1h])- `fail`の文字列検知した回数をグラフ化
lokiでsyslog監視- rsyslogでsyslog受信- logパネルで表示- logのmetrics化機能- 今回はv0.40を使用- (イベント直後にv1.0リリース…)- prometheus + grafana + loki≒ zabbix????
監視フロー(妄想)Promtailsyslogmetrics exporter PrometheusGrafana/var/log
挫折その1- logをmetrics化できるのならalertingもできるのでは?- alertの設定はできる!!
挫折その1- しかし何をやってもエラー- そもそも実装されていない?
mtailの導入- googleがhostingしているパーサー- mtail languageというスクリプトでいろいろできる。- 今回はファイル 内の文字列をカウントしてmetrics化mtailのスクリプト metricsに定義した変数値が表示される!
監視フロー(現実)Promtailmtailsyslogmetrics exporter PrometheusGrafana/var/log
挫折その2- 指定した文字列を検知してアラートは出せる!- しかし対応するlogが表示できない- どのインターフェースがdown?????- どのホスト?
挫折その2- 大会開始後だったため監視フローの修正は不可能- 同じく監視担当の1年目社員が受信したsyslogをパース、ホスト名とインターフェース名を添えてslack通知するプログラムを1.5時間で作成
監視フロー(最終形)Promtailmtailsyslogmetrics exporter PrometheusGrafana/var/log自作通知プログラム
問題点- snmp-trapを受信できない。- 監視用プロダクトの数が多くなりがち- 公式ドキュメント未整備- 監視業務中は何の画面見ればいい??
よかった点- (zabbixより)画面が見やすい- (zabbixより)画面がかっこいい!- 完全にコンテナ化したので構築簡単- lokiを実運用で検証できた!
まとめ- ZABBIXでよさそう- (イベントネットワークなら)- loki + grafanaではalerting不可能- alert-managerとpromtailを駆使すれば何とかなる??- (promtail.ymlのpipelineは挫折しました・・・)- 持つべきは優秀な同僚
Special thanks@yosshi_ - san
Thank you for listening !