Smokeping
Smokeping はサーバーのリストを探査して、RRDtool を使用してデータを保存し、RRDtool の出力に基づいて統計図を生成します。Smokeping は2つの部品から構成されます。バックグラウンドで動作し定期的に ping してデータを収集するデーモンと、グラフ形式でデータを表示するウェブインターフェイスです。
この wiki ページでは smokeping デーモンと CGI ウェブインターフェイスの基本的なセットアップを説明します。
目次
インストール
このセクションでは smokeping パッケージによる Smokeping のインストールを説明します。Apache と FastCGI に書かれているように FastCGI をセットアップします。
smokeping パッケージは2つの部品から構成されています:
- smokeping デーモンと
/etc/smokeping/
の設定。デーモンが監視を行います。 /srv/http/smokeping
の smokeping の "htdocs"。ウェブインターフェイスから使われます。
smokeping パッケージに加えて、以下も必要です:
- smokeping が監視するためのツール。fping がデフォルトで最もシンプルな ping プローブツールです。
- ウェブインターフェイスを使うための apache と mod_fastcgi[リンク切れ: パッケージが存在しません]。
- FastCGI スクリプトから書き込むための画像キャッシュディレクトリ。例:
/srv/smokeping/imgcache
。 - smokeping デーモンが書き込んで FastCGI スクリプトが読み込むデータディレクトリ。例:
/srv/smokeping/data
。 - メインの設定ファイルが smokeping デーモンから読み込めるようになっていることを確認してください。
任意のパッケージ
DNS や http プローブなどを使いたい場合、以下のパッケージが必要です。設定についてはこのページでは触れません。
プローブ | 必要なパッケージ |
---|---|
Curl | curl |
DNS | bind-tools[リンク切れ: 置換パッケージ: bind] (dig ユーティリティ) |
EchoPing | echoping |
SSH | openssh |
TelnetIOSPing | perl-net-telnet |
AnotherDNS | perl-net-dns |
LDAP | perl-ldap |
LDAP (tls) | perl-io-socket-ssl |
Authen | perl-authen-radius |
設定
Smokeping を使うにはファイルを編集する必要があります。/etc/smokeping
の .dist
拡張子が付いているファイルから、.dist
を取り除いてください。find コマンドで名前を変更するファイルを出力することができます:
# cd /etc/smokeping # find . -name '*.dist' -print -execdir sh -c 'mv {} $(basename {} .dist)' \; # mv /srv/http/smokeping/smokeping.fcgi.dist /srv/http/smokeping/smokeping.fcgi
設定ファイルの編集
次に /etc/smokeping/config
ファイルを編集してください。smokeping のメイン設定ファイルです。
/etc/smokeping/config
ファイルの中では General セクションが一番編集しやすくなっています。設定ファイルの一番上を適当に編集してください。コメントで各フィールドが説明されています。(postfix あるいは sendmail の) sendmail
プログラムをインストールしていない場合、/bin/false
などを使うようにしてください。指定したファイルが存在しないと smokeping はエラーを出力します。
Alerts セクションは最小限の設定例では必要ないため、コメントアウト・削除してかまいません。
Database セクションに変更は必要ありません。
Presentation セクションでは、テンプレートファイルのパスを修正する必要があります。
Probes セクションでは使用するプローブを指定します。デフォルトでは FPing プローブだけが有効になっています。このセクションに変更を加える必要はありません。
Slaves セクションは最小限の設定例では必要ないため、コメントアウト・削除してかまいません。Slaves セクションの smokeping_secrets
設定を使用する場合、ファイルを読み込めないようにしないと smokeping がエラーを表示します: chmod 600 /etc/smokeping/smokeping_secrets
。
Targets セクションはプローブ (ping) の対象とするホストを指定します。以下の例にあるように統計を取りたいホストを指定してください。
/etc/smokeping/config
*** General *** owner = Your Name Here # your name contact = your.email@host.bla # your email mailhost = your.smtp.server.bla # your mail server sendmail = /bin/false # where the sendmail program is imgcache = /srv/smokeping/imgcache # filesystem directory where we store files imgurl = imgcache # URL directory to find them datadir = /srv/smokeping/data # where we share data between the daemon and webapp piddir = /var/run # filesystem directory to store PID file cgiurl = http://localhost/smokeping/smokeping.fcgi # exterior URL smokemail = /etc/smokeping/smokemail tmail = /etc/smokeping/tmail syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no *** Database *** step = 300 pings = 20 # consfn mrhb steps total AVERAGE 0.5 1 1008 AVERAGE 0.5 12 4320 MIN 0.5 12 4320 MAX 0.5 12 4320 AVERAGE 0.5 144 720 MAX 0.5 144 720 MIN 0.5 144 720 *** Presentation *** template = /etc/smokeping/basepage.html + charts menu = Charts title = The most interesting destinations ++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f ++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds ++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f ++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds + overview width = 600 height = 50 range = 10h + detail width = 600 height = 200 unison_tolerance = 2 "Last 3 Hours" 3h "Last 30 Hours" 30h "Last 10 Days" 10d "Last 400 Days" 400d *** Probes *** + FPing binary = /usr/sbin/fping *** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = Welcome to the SmokePing website of Arch User. \ Here you will learn all about the latency of our network. + targets menu = Targets ++ ArchLinux menu = Arch Linux title = Arch Linux Website host = 66.211.214.131 ++ GoogleDNS menu = Google DNS title = Google DNS server host = 8.8.8.8 ++ MultiHost menu = Multihost example title = Arch Wiki and Google DNS host = /targets/ArchLinux /targets/GoogleDNS
Smokeping の設定ファイルに関する詳細や例は http://oss.oetiker.ch/smokeping/doc/smokeping_examples.en.html を見てください。
smokeping の設定ファイルの構文
+ 記号はセクションを定義します。セクション名にスペースは使えません。また、ピリオドやスラッシュもセクション名には使わないようにしてください。セクションと同じ名前で RRD ファイルがデータディレクトリに保存されるためです。
Targets セクションで定義する host
は実際のホストネームだけでなく、上記の MultiHost
の例のように他のセクションのパスにすることもでき、複数のホストの図が生成されます。
システムの設定
設定ファイルによって参照されるディレクトリを設定してください:
# mkdir -p /srv/smokeping/data # mkdir -p /srv/smokeping/imgcache # chown -R smokeping:smokeping /srv/smokeping # chown -R http:http /srv/smokeping/imgcache # chmod a+rx /srv/smokeping # chmod -R a+rx /srv/smokeping/data
smokeping の設定は smokeping デーモンと FastCGI スクリプトの両方から読み込むことができるようにしてください:
# chmod a+rx /etc/smokeping # chmod a+r /etc/smokeping/config
デーモンの起動と有効化
smokeping.service
を起動・有効化してください。それからデーモンが動作していることを確認してください。
ウェブフロントエンドのセットアップ
/etc/httpd/conf/httpd.conf
を編集して以下を記述してください:
/etc/httpd/conf/httpd.conf
LoadModule fastcgi_module modules/mod_fastcgi.so <IfModule fastcgi_module> AddHandler fastcgi-script .fcgi </IfModule> #FastCgiConfig -idle-timeout 90 # try this if you hit errors about the scripts exceeding the idle timeout. Alias /smokeping/imgcache /srv/smokeping/imgcache Alias /smokeping /srv/http/smokeping <Directory "/srv/smokeping/imgcache"> AllowOverride all Require all granted </Directory> <Directory "/srv/http/smokeping"> Options FollowSymLinks ExecCGI AllowOverride all Require all granted </Directory>
設定したら httpd.service
で Apache を起動してください。
起動したら http://localhost/smokeping/smokeping.fcgi を開いて確認してください。数分後に最初のデータが表示されるはずです。
グラフ内のフォントが読めない場合、ttf-dejavu パッケージをインストールしてみてください。
高度な設定
Smokeping は様々な設定が可能なパワフルなツールです。色々な種類のプローブを設定することができます。smokeping のスレーブサーバーを構築して統計を送信し、他のサーバーからプローブを表示することもできます。perl を使って自分でプローブを作成することも可能です。そのような高度な設定については Smokeping ウェブサイト のドキュメントを参照してください。
トラブルシューティング
現在 smokeping パッケージはいくつかの点で壊れています。デーモンとしてサービスを動作させるには、パッケージに含まれている systemd ユニットファイルを編集して以下のパラメータを追加する必要があります:
type=forking
また、smokeping を動作させるのに必要なファイルである Smokemail がパッケージに含まれていません。smokeping の github からファイルを手動でダウンロードして追加する必要があります: [1]。
ノート
Smoketrace (Tr.cgi)
リリースノート によれば SmokeTraceroute ユーティリティは v2.5.0 から削除されています。