自作ツールでシステム管理†
2006, 5/20 @ EBUG Meeting
- 主旨
- システムの「常態」を知ろう。
- 異常を検知するためには、システムの通常の状態を知る
→ 一定期間にわたって測定を行い、傾向を把握。
- サーバ毎に特徴があり、特徴を把握しておく
- 自作のツール / 一般のツールを組み合わせて使ってみる
SAGとは?†
System Activity Grapher ... 自作ツール
- 特徴
- システムの稼働状態を記録し、グラフ表示
- ロードアベレージ, ネットワーク流量, 時刻同期, メモリ, ディスク使用量
- プロセス生成回数, ファン回転数, ケース内温度, etc... (Linux Only)
- サンプル ... kaw.ath.cx, plamo.linet.gr.jp
- データは、/proc/*, コマンド (sysctl, netstat, du ...)から取得 ... 一般ユーザ権限で取得できる情報を使用
- グラフ表示をカスタマイズできる ... gnuplotスクリプト
- 伝送路は特に規定なし ... HTTPとかが手軽。scpとかでも可。
- 低いリソース消費 ... Linux/98 on 486/66MHz, 14MB mem, 320MB HDD
- 欠点
- 実装
- 構成
- Shell script / Perl script / Gnuplot / NetPBM で構成
- 動作内容 ... cronにて駆動
- データ取得 ..... 任意の間隔
- データ集計 ..... パース + 集計 + グラフ集計
- 日変わり処理 ... ローテート / キャッシュ再生成
- 低プライオリティで動作 ... renice -15
- 競合状態の排除 ... 同じタイミングでの動作は逐次実行される
- ローテート中のファイルに測定データを追加
pingscan ... もう一つの自作ツール†
- 監視するホストに順次pingを投げ、結果をPostgreSQLで記録
- 社内LANのホスト, リモートサイト, アップストリームの死活監視。
netcheck=> select count(*) from pingscan;
count
----------
27937286
(1 row)
netcheck=> select daytime,dsthost,seq,ttl,rtt from pingscan order by daytime limit 5;
daytime | dsthost | seq | ttl | rtt
------------------------+--------------+-----+-----+-------
2005-06-01 00:00:02+09 | 172.16.xx.yy1| 0 | 0 | 0
2005-06-01 00:00:02+09 | 172.16.xx.yy2| 0 | 64 | 0.724
2005-06-01 00:00:02+09 | 172.16.xx.yy4| 0 | 255 | 0.815
2005-06-01 00:00:02+09 | 172.16.xx.y37| 0 | 0 | 0
2005-06-01 00:00:02+09 | 172.16.xx.y38| 0 | 0 | 0
(5 rows)
|
ウェブベースのU/I |
運用例†
実際には、その他のツールと併用して運用すると効果的。
|
構成例 |
- LAN
- DMZ
- snort, ntop, SAG ... promiscモードで動作するソフトと併用するとトラフィック全体を計測できる
- ntpd, SAG
- ISP
Squid Web Proxy Cacheのキャッシュ調整†
スパム1†
スパム2†
ルータトラブル†
メールサーバ過負荷†
長期における傾向把握が重要 |
各種パラメータを横断的に見る |
データを見やすくカスタマイズ、は結構重要 |
One Linerが書けたりすると良いです |
そして、なによりも