Smokeping

提供: ArchWiki
ナビゲーションに移動 検索に移動

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 プローブツールです。
  • ウェブインターフェイスを使うための apachemod_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 から削除されています。