自作ツールでシステム管理†
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が書けたりすると良いです | 
 
そして、なによりも