アプリケーションエンジニアのための監視入門
YAPC
Jul 2th, 2016
Profile
インフラを意識してコードを書くということ
最近Goで作ったもの
ニッチなツールを作るのが趣味
- https://mackerel.io/
- サーバー管理・監視ツール as a Service
- 前身: はてなの社内ツール
- 管理対象のサーバーから送信するメトリクスを集計
- 監視サーバー不要で利用登録から3分でサーバー監視開始
可視化
アラート
最大1ロール2554台!
監視
- 難しそう
- よくわからない
- 謎の画面
- インフラの人が設定してくれるもの
- そもそも監視してない
モニタリングの重要性の向上
すべてのサービスで健全性と一般的な監視関連のメトリックを同じように出力することをおすすめします。(中略)
どれを選んでも、標準化するようにしてください。
- Webサービスへの要求の向上
- リアルタイム性
- 監視からは逃げられない
監視とは継続的なテストである
by Kazuho Oku
監視とはシステムに対する高速健康診断
一般的な健康診断
- 分かる数値とわからない数値がある
- システム監視も同じ
- 分かる数値を追いかける
- 分かる数字を計測する
- ex. 体重
何を監視すれば良いのかを考える
- メトリックを取得可能にする
- メトリック取得のためのインターフェースを切る
- ジョブ数
- 何ら監視したいテーブルのレコード数
- コード化する
監視のコード化
幾つかの監視プロトコル
それぞれ単なるコマンド実行。終了ステータスと標準出力でやりとり
チェック監視
- OKかNG
- OK/Warning/Critical/Unknown
- 終了ステータスで状態を判定
- 0: OK
- 1: Warning
- 2: Critical
- Other: Unknown
Nagios/Sensu/Consulとかで使われている
メトリック監視
% ./battery.pl
macbook.pmset.ib0 73 1467427252
Sensu/Graphite等で使われている
DEMO
以上