Xymon(4.3.x)の設定方法



●Xymonについて

 Xymonとは、GPLのUNIXベースのネットワーク監視ソフトウェアです。2008年11月、商標の問題を理由として名称が「Xymon」に変更されました。詳細はこちらのページを参照してください。
 今回は、OSとして「CentOS 5.6」にインストールします。

●Xymonに必要なソフトウェア

 はじめに、Xymonが必要なソフトウェアがすでにインストール済みであるかどうかを確認しましょう。下記のようなソフトウェアが必要です。
 yumを使用してモジュールが見つからない場合は、rpmfindから見つけてインストールしました。

  * httpdなどのWebサーバ
  * c-ares-devel
  * fping
  * httpdなどのWebサーバ
  * openldap-devel
  * openssl-devel
  * pcre-devel
  * rrdtool-devel

 上記がインストールされていない場合はインストールしてください。CentOS 7ではすべてyumコマンドでインストールできます。

 ・CentOS 8 Streamの場合
# dnf install -y c-ares-devel fping openldap-devel openssl-devel pcre-devel
# rpm -ivh http://rpmfind.net/linux/centos/8-stream/PowerTools/x86_64/os/Packages/rrdtool-devel-1.7.0-16.el8.x86_64.rpm


●Xymon用ユーザの作成

 必要なソフトウェアのインストールが終わったら、Xymonを実行するユーザを作成します。この作業を怠ると、Xymonサーバのインストール(configure)時に下記のようなエラーが表示され停止してしまいます。
ymatch: can't get local yp domain: ローカルドメイン名が設定されていません
FAILURE: The user xymon does not exist. Create user and try again.
 ですので、下記のようにユーザを作成します。
# useradd -c 'Xymon Administrator' xymon ← ユーザ「xymon」の作成
# passwd xymon ← 「xymon」のパスワードを設定
ユーザ xymon のパスワードを変更。
新しいパスワード: ← パスワード入力
新しいパスワードを再入力してください: ← パスワード再入力
passwd: 全ての認証トークンが正しく更新できました。


●Xymonサーバのインストール

 ※4.3.30が最新でした(2021.7.1現在)。

 http://sourceforge.net/projects/xymon/から、xymon-4.3.3.tar.gzをダウンロードします。
 ダウンロードしたファイルを/usr/local/srcディレクトリに保存します。
# cd /usr/local/src
# tar xvzf xymon-4.3.3.tar.gz
# cd xymon-4.3.3
# ./configure
以下のように質問されるが、デフォルトで問題なければ[Enter]でよい。
Configuration script for Xymon
This script asks a few questions and builds a Makefile to compile Xymon
Checking your make-utility
Checking pre-requisites for building Xymon
Checking for fping ...
Xymon has a built-in ping utility (xymonping)
However, it is not yet fully stable and therefore it
may be best to use the external fping utility instead.
I found fping in /usr/sbin/fping
Do you want to use it [Y/n] ?[Enter]を押す
Checking to see if '/usr/sbin/fping 127.0.0.1' works ...
127.0.0.1 is alive
OK, will use '/usr/sbin/fping' for ping tests
NOTE: If you are using an suid-root wrapper, make sure the 'xymond'
      user is also allowed to run fping without having to enter passwords.
      For 'sudo', add something like this to your 'sudoers' file:
      xymon ALL=(ALL) NOPASSWD: /usr/sbin/fping
Checking for RRDtool ...
test-rrd.c: In function 'main':
test-rrd.c:30: error: too few arguments to function 'rrd_graph'
make: *** [test-compile] エラー 1
Not RRDtool 1.0.x, checking for 1.2.x
Found RRDtool include files in /usr/include
Found RRDtool libraries in /usr/lib
Linking RRD with PNG library: -L/usr/lib -lpng
Checking for PCRE ...
Found PCRE include files in /usr/include
Found PCRE libraries in /usr/lib
Checking for OpenSSL ...
Found OpenSSL include files in /usr/include
Found OpenSSL libraries in /usr/lib
Xymon can use the OpenSSL library to test SSL-enabled services
like POP3S, IMAPS, NNTPS and TELNETS. If you have the OpenSSL
library installed, I recommend that you enable this.
Do you want to be able to test SSL-enabled services (y) ?[Enter]を押す
Checking for LDAP ...
test-ldap.c: In function ’main’:
test-ldap.c:25: 警告: implicit declaration of function 'ldap_init’
test-ldap.c:25: 警告: assignment makes pointer from integer without a cast
Found LDAP include files in /usr/include
Found LDAP libraries in /usr/lib
Xymon can use your OpenLDAP LDAP client library to test LDAP servers.
Do you want to be able to test LDAP servers (y) ?[Enter]を押す
Enable experimental support for LDAP/SSL (OpenLDAP 2.x only) (y) ?[Enter]を押す
Checking for clock_gettime() requiring librt ...
clock_gettime() requires librt
Checking for Large File Support ...
Large File Support OK
Setting up for a Xymon server
What userid will be running Xymon [xymon] ?[Enter]を押す
Found passwd entry for user xymon:x:501:501:Xymon Administrator:/home/xymon:/bin/bash
Where do you want the Xymon installation [/home/xymon] ?[Enter]を押す
OK, will configure to use /home/xymon as the Xymon toplevel directory
What URL will you use for the Xymon webpages [/xymon] ? [Enter]を押す
Where to put the Xymon CGI scripts [/home/xymon/cgi-bin] ? [Enter]を押す
(Note: This is the filesystem directory - we will get to the URL shortly)
What is the URL for the Xymon CGI directory [/xymon-cgi] ? [Enter]を押す
(Note: This is the URL - NOT the filesystem directory)
********************** SECURITY NOTICE ****************************
If your Xymon server is accessible by outsiders, then you should
restrict access to the CGI scripts that handle enable/disable of
hosts, and acknowledging of alerts. The easiest way to do this is
to put these in a separate CGI directory and require a password to
access them.
Even if your Xymon server is on a secured, internal network, you
may want to have some operations (like disabling a host) be password-
protected - that lets you see who disabled or acknowledged an alert.
Where to put the Xymon Administration CGI scripts [/home/xymon/cgi-secure] ? 
(Note: This is the filesystem directory - we will get to the URL shortly)
What is the URL for the Xymon Administration CGI directory [/xymon-seccgi] ? 
(Note: This is the URL - NOT the filesystem directory)
** Note that you may need to modify your webserver configuration.
** After installing, see /home/xymon/server/etc/xymon-apache.conf for an example configuration.
To generate Xymon availability reports, your webserver
must have write-access to a directory below the Xymon
top-level directory. I can set this up if you tell me
what group-ID your webserver runs with. This is typically
'nobody' or 'apache' or 'www-data'
What group-ID does your webserver use [nobody] ?[Enter]を押す
Where to put the Xymon logfiles [/var/log/xymon] ? [Enter]を押す
What is the name of this host [neko.bigbang.dyndns.org] ? [Enter]を押す
What is the IP-address of this host [127.0.0.1] ? 
ホストのIPアドレスを入力
Where should I install the Xymon man-pages (/usr/local/man) ?[Enter]を押す
Using Linux Makefile settings
Created Makefile with the necessary information to build Xymon
Some defaults are used, so do look at the Makefile before continuing.
Configuration complete - now run make (GNU make) to build the tools
# make
# make install
 問題が無ければインストール完了です。


 ※CenOS 8 Streamにバージョン4.3.30をconfigure時に下記エラーが発生
Checking for OpenSSL ...
Compiling with SSL library works OK
/usr/bin/ld: -ltirpc が見つかりません
collect2: エラー: ld はステータス 1 で終了しました
make: *** [Makefile.test-ssl:7: test-link] エラー 1
Warning: Cannot link with SSL library
OpenSSL include- or library-files not found.
 下記により対応しました。
# dnf install -y libtirpc-devel


 アクセスしやすいようにxymonの構成ファイルとログへのシンボリック・リンクを作成します。
# ln -s /home/xymon/server/etc /etc/xymon-server

●Apache設定

 Xymonを/home/xymonにインストールしたので、下記のようにアクセス権を変更します。
# chmod 701 /home/xymon
# ls -l /home
合計 20
drwx-----x  10 xymon  xymon  4096 2009-09-16 18:30 xymon
 Xymonはブラウザインターフェースを備えています。これを利用するためにApache関連のファイルを設定します。最初に、Apacheのconfファイルをコピーします。
# cp -p /home/xymon/server/etc/xymon-apache.conf /etc/httpd/conf.d/xymon.conf
# アクセス制御の設定
Alias /xymon/  "/home/xymon/server/www/"
<Directory "/home/xymon/server/www">
    DirectoryIndex index.html
    Options Indexes FollowSymLinks Includes MultiViews
    <IfModule mod_authz_core.c>
        # Apache 2.4+
        # 20160829 下記行コメントアウト
        # Require all granted
        # 20160829 インターネットからの丸見え防止のため下記4行追記
        Require ip 10.0.0.
        Require ip 192.168.20.
        Require ip xxx.xxx.63.
        Require ip xxx.xxx.69.
    </IfModule>
   <IfModule !mod_authz_core.c>
        Order deny,allow
        Allow from all
    </IfModul>>
</Directory>
ScriptAlias /xymon-cgi/ "/home/xymon/cgi-bin/"
<Directory "/home/xymon/cgi-bin>>
    AllowOverride None
    Options ExecCGI FollowSymLinks Includes
    <IfModule mod_authz_core.c>
        # Apache 2.4+
        # 20160829 下記行コメントアウト
        # Require all granted
        # 20160829 インターネットからの丸見え防止のため下記4行追記
        Require ip 10.0.0.
        Require ip 192.168.20.
        Require ip xxx.xxx.63.
        Require ip xxx.xxx.69.
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Allow from all
    </IfModule>
</Directory>
ScriptAlias /xymon-seccgi/ "/home/xymon/cgi-secure/"
<Directory "/home/xymon/cgi-secure">
    AllowOverride None
    Options ExecCGI FollowSymLinks Includes
    <IfModule mod_authz_core.c>
        # Apache 2.4+
        # 20160829 下記行コメントアウト
        # Require all granted
        # 20160829 インターネットからの丸見え防止のため下記4行追記
        Require ip 10.0.0.
        Require ip 192.168.20.
        Require ip xxx.xxx.63.
        Require ip xxx.xxx.69.
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Allow from all
    </IfModule>
 作業が完了したらApacheを再起動します。
# /etc/rc.d/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
 管理用CGIにはBASIC認証が行われるため、パスワードを設定します。
# htpasswd -c -m /home/xymon/server/etc/xymonpasswd xymon
New password:パスワード入力
Re-type new password:パスワード再入力
Adding password for user xymon

●起動スクリプトの設定

 引き続いて起動スクリプトの設定をします。管理を楽にするために起動スクリプトを「/etc/rc.d/init.d」配下に設置して起動/終了の管理が行えるようにします。
 最初に起動スクリプトをコピーします。
# cp -p /usr/local/src/xymon-4.3.3/rpm/xymon-init.d /etc/rc.d/init.d/xymon
# chown root:root /etc/rc.d/init.d/xymon
# chmod 755 /etc/rc.d/init.d/xymon
 ここで気を付けなければ行けないことがあります。DAEMONのパスが通っていないのでパスを変更します。
【修正後】
#! /bin/sh
#
# xymon           This shell script takes care of starting and stopping
#                 xymon (the Xymon network monitor)
#
# chkconfig: 2345 80 20
# description: Xymon  is a network monitoring tool that allows \
# you to monitor hosts and services. The monitor status is available \
# via a webpage.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#DAEMON=/usr/lib/xymon/server/bin/xymon.sh ← コメントアウト
DAEMON=/home/xymon/server/bin/xymon.sh
NAME=xymon
DESC=Xymon
test -x $DAEMON || exit 0
# Include Xymon defaults if available
if [ -f /etc/default/xymon ] ; then
	. /etc/default/xymon
fi
set -e
case "$1" in
  start)
	echo -n "Starting $DESC: "
	su -c "$DAEMON start" - xymon
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	su -c "$DAEMON stop" - xymon
	echo "$NAME."
	;;
  status)
	su -c "$DAEMON status" - xymon
	;;
  reload|force-reload)
	echo "Reloading $DESC configuration files."
	su -c "$DAEMON reload" - xymon
	echo "$NAME."
	;;
  restart)
	echo -n "Restarting $DESC: "
	su -c "$DAEMON restart" - xymon
	echo "$NAME."
	;;
  rotate)
	echo -n "Rotating logs for $DESC: "
	su -c "$DAEMON rotate" - xymon
	echo "$NAME."
	;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac
exit 0
 chkconfigに追加し、リスト表示がされるかを確認します。同時にきちんと起動するかも確認してみます。
# chkconfig --add xymon
# chkconfig --list | grep xymon
xymon           0:off   1:off   2:on    3:on    4:on    5:on    6:off
# service xymon start
Starting xymon: Xymon started
xymon.

 ※CentOS 8 Streamでは下記作業を追加実行しました。
# systemctl start xymon
# systemctl enable xymon

※下記コマンドは使用できません。
# systemctl enable --now xymon

  http://localhost/xymon/にアクセスして、localhostの監視が始まっていればサーバは問題なく動作しています。
 起動直後はbbgenが黄色いアイコンになっているが正しい動作であり、5分もすると緑のアイコンになります。
 もし赤いアイコンが出ていたらそれをクリックして原因を突き止める必要があります。
 白いアイコンは監視対象が設定されていませんので、とりあえずは問題ありません。
 なお、この時点でローカルのリソース監視なども始まっていますので、trendsアイコンを一時間後くらいにクリックしたりするとちょっとおもしろい。

 http://localhost/xymon/にアクセスして、ディレクトリがリスティングされてしまう場合、表示用のhtmlファイル等が作成されていません。
# cat /var/log/xymon/xymongen.log 
2019-07-10 17:31:11.891554 xymond status-board not available, code 0
2019-07-10 17:31:11.891602 Failed to load current Xymon status, aborting page-update
 この場合、Firewallで監視に必要な1984/tcpを開けてください。

●ログローテートの設定

 下記のようにコピーします。
# cp /usr/local/src/xymon-4.3.3/rpm/xymon.logrotate /etc/logrotate.d/xymon

●Xymonサーバ複数台での監視

 冗長を考慮してXymonサーバ複数台で監視する場合は、複数のサーバから監視できるように全てのXymonクライアント側で下記の設定を実施します。
# vi installdir/client/etc/xymonclient.cfg
XYMSRV="0.0.0.0"  # IP address of the Xymon server
 ↑ 上記のように設定
# XYMSRV="192.168.0.1"  # IP address of the Xymon server
 ↑ 最初に設定済みのものをコメントアウト
XYMSERVERS="192.168.0.1 192.168.0.2"  # IP of multiple Xymon servers. XYMSRV must be "0.0.0.0".
 ↑ XymonサーバのIPアドレスを列挙
# service xymon restart ← 変更反映のため再起動
 監視画面のfilesのアイコンが白色になった場合はクライアント側の設定ファイルである「client-local.cfg」を、ports、procsのアイコンが白色になった場合はサーバ側の「analysis.cfg」を設定し、それぞれを再起動します。
 また、アイコンが紫色になった場合、上記の設定(複数台監視)をすることにより解消する場合もあります。

●バージョンアップによるファイル等の名前変更

 バージョンアップ(4.3.x系)によって相当数のファイルの名前が変更となっていますので、注意してください。
 Renaming-430.txt

●設定ファイル

 詳細はConfiguring Xymon Monitoringを参照してください。
 Renaming-430.txtにも記載されているとおり下記のように変わっています。
bb-hosts			→	hosts.cfg
bbcombotest.cfg			→	combo.cfg
hobbit-alerts.cfg		→	alerts.cfg
hobbitcgi.cfg			→	cgioptions.cfg
hobbit-nkview.cfg		→	critical.cfg
hobbit-rrddefinitions.cfg	→	rrddefinitions.cfg
hobbitgraph.cfg			→	graphs.cfg
hobbit-holidays.cfg		→	holidays.cfg
analysis.cfg			→	analysis.cfg
hobbit-snmpmibs.cfg		→	snmpmibs.cfg
hobbitlaunch.cfg		→	tasks.cfg
hobbitserver.cfg		→	xymonserver.cfg
hobbitclient.cfg		→	xymonclient.cfg
bb-services			→	protocols.cfg

●Xymonの設定ファイルについて

 Xymonの設定ファイルは、installdir/server/etc/ディレクトリに置かれます(ソースからのインストールの場合)。ここには次のファイルが置かれます。
  • hosts.cfgは、最も頻繁にメンテナンスされるファイルです。このファイルは監視するホストの一覧を含みます。IPアドレス、監視するネットワークサービス、監視するURL、監視結果の画面がサブページにどのように表示されかの情報なども含まれます。このファイル名、hosts.cfgは、BigBrotherとの互換性を考えられて決められました。BigBrotherと同じファイル名で同じフォーマットとなっています。
  • analysis.cfgは、Xymonクライアントがインストールされた監視対象のホストから送られるデータのための設定ファイルです。クライアントからXymonに送られたCPU、ディスク、メモリ、プロセスの情報の、色を定義します。
  • alerts.cfgは、アラートの情報が記述されます。このファイルには、サービスが落ちたときのアラートを送るルールが設定されます。誰がどのようにアラートを受け取り、時間帯は24時間365日なのか平日の午前10時から午後4時までなのか、などが記載されます。
  • xymonserver.cfgはXymonサーバのための設定ファイルです。このファイルは多くの環境変数を定義します。定義された環境変数は、Xymonプログラムのすべてで適用されます。BigBrotherでも定義される環境変数のいくつかは、Xymonでも設定されます。そのため、BigBrotherのエクステンションスクリプトも動作します。xymonserver.cfgは、Xymonインストール時のconfigureスクリプトによって設定され、通常は変更する必要はありません。
  • tasks.cfgはxymonlaunchツールのための設定ファイルです。xymonlaunchは、Xymonを起動するプログラムで、Xymonサーバを起動するするだけのプログラムです。xymonlaunchはxymonlaunch.cfgファイルを読み込み、サーバを起動するためにこれに一覧されたプログラムを実行します。プログラムのいくつかはデーモンとして実行されるかもしれません。いくつかのプログラムは定期的な間隔で実行されるかもしれません。xymongenかxymonnetのオプションを使うなら、これらのオプションをコマンドラインに追加するために、xymonlaunchを変更してください。
  • graph.cfgはxymongraph CGIのための設定ファイルです。RRDファイルのデータからどのようにグラフが生成されるかを定義します。
  • protocols.cfgはxymonnetプログラムのための設定ファイルです。どのようにネットワークファイルが監視されるかを定義します
 アクセスしやすいようにxymonの構成ファイルのシンボリック・リンクを作成します。
# ln -s /home/xymon/server/etc /etc/xymon-server

●hosts.cfgの設定について

 hosts.cfgはクライアント外部(サーバ)から監視できるものを設定します。
 下記のように設定しました。
group-compress <b>Servers</b>
192.168.0.5   serverA.bigbang.mydns.jp      # ajp13 dns imap pop3 smtp ssh telnet vnc:5901 http://pub.bigbang.dyndns.org/ https://pub2.bigbang.dyndns.org/ 
192.168.0.4   sun.bigbang.dyndns.org      # dns ldap ssh vnc:5900 http://sun.bigbang.dyndns.org/
group-compress <b>Gateways</b>
192.168.0.254   router     # telnet http://192.168.0.254/
 「192.168.0.5」はXymonサーバがインストールされているマシンです。#記号の右側に記載されているサービスを監視するようにしています。
 「192.168.0.4」はWindows Server 2003が動作しています。#記号の右側に記載されているサービスを監視するようにしています。
 「192.168.0.254」は自宅ネットワークのルータです。この機器も監視するように設定しました。
 設定が完了したら、リロードして反映させます。
# service xymon reload

●analysis.cfgの設定について

 クライアント内部(クライアント自身)から監視できるものを設定します。Xymonクライアントをインストールしたマシンのみanalysis.cfgの設定で監視できます。
 Xymonサーバ側で設定し、マッチパターンを検出、警告レベルの判定を行います。

 下記のように設定しました。
DEFAULT
	# These are the built-in defaults.
	UP      1h
	LOAD    2.0 4.0
	DISK    * 90 95
	MEMPHYS 100 101
	MEMSWAP 50 80
	MEMACT  90 97
 「LOAD」の部分だけ変更しました。
 DEFAULT以下に記述したものは、すべてのXymonクライアント(サーバ含む)に適用されます。UPでuptimeが1時間内のものは注意(黄色いアイコン)を表示することにしました。そもそもマシンがダウンしていたら警告(赤いアイコン)となります。LOADはロード・アベレージの設定です。1Wayマシンなので、それの2倍である2.0に達したら注意、それの4倍に達したら警告としました。DISKはディスク使用率です。すべてのディスクで使用率が90%に達したら注意、95%に達したら警告としました。
 MEMPHYSはメモリの使用率です。Linuxの場合、バッファとキャッシュにメモリを利用するのでMEMPHYSが大きくても問題ありません。100%で注意、101%(あり得ない)で警告とした。MEMSWAPはスワップの使用率で50%で注意、80%で警告としました。MEMACTはバッファとキャッシュを除いた値です。使用率90%で注意、97%で警告としました。

 以下のような設定もできます。
	DIR /var/log/httpd yellow size<10240
	DIR /var/log/httpd red size<102400
	FILE /var/spool/mail/root yellow size<10M
	LOG /var/log/messages red "%sshd.*more authentication failures"
	PROC crond
	PROC httpd 1 100 yellow
	PROC httpd 1 200 red
 「DIR」行は、/var/log/httpdディレクトリが10Mbyteを超えた場合に注意、100Mbyteを超えた場合に警告を発する設定です。
 「DIR」での設定はXymonの監視用Web画面の「files」をクリックした時に表示されます。
 「FILE」行はMailBox形式であるroot用のメールボックスが10Mを超えた場合に注意を発する設定です。
 「FILE」での設定はXymonの監視用Web画面の「files」をクリックした時に表示されます。
 「LOG」行は、/var/log/messagesを監視し、SSH時に連続3回以上パスワードを間違えられたときに記録される「more authentication failures」を監視する設定です。
 「LOG」での設定はXymonの監視用Web画面の「msgs」をクリックした時に表示されます。
 「PROC」行は、crondが動作しているかどうかの単純な監視、httpdは「1未満または100以上で注意」「1未満または200以上で警告」するという意味でHTTPサーバの負荷を監視する設定です。
 「PROC」での設定はXymonの監視用Web画面の「procs」をクリックした時に表示されます。
 「PORT」での設定はXymonの監視用Web画面の「ports」をクリックした時に表示されます。
 下記は特定のホストに対して設定を定義しています。
 ホスト名「serverA.bigbang.mydns.jp」に対する設定です。hosts.cfgで設定した以外にポートを設定するようにしています。
HOST=serverA.bigbang.mydns.jp
	FILE /bin/ls red md5=md5sumコマンドで得られたhash値を設定
	FILE /bin/mv red md5=md5sumコマンドで得られたhash値を設定
	FILE /bin/cp red md5=md5sumコマンドで得られたhash値を設定
	FILE /bin/rm red md5=md5sumコマンドで得られたhash値を設定
	FILE /etc/ssh/sshd_config red md5=md5sumコマンドで得られたhash値を設定
	PORT LOCAL=%[.:]22$ STATE=LISTEN "TEXT=SSH: 22"
	PORT LOCAL=%[.:]23$ STATE=LISTEN "TEXT=TELNET: 23"
	PORT LOCAL=%[.:]25$ STATE=LISTEN "TEXT=SMTP: 25"
	PORT LOCAL=%[.:]53$ STATE=LISTEN "TEXT=DNS: 53"
	PORT LOCAL=%[.:]80$ STATE=LISTEN "TEXT=HTTP: 80"
	PORT LOCAL=%[.:]143$ STATE=LISTEN "TEXT=IMAP: 143"
	PORT LOCAL=%[.:]443$ STATE=LISTEN "TEXT=HTTPS: 443"
	PORT LOCAL=%[.:]3306$ STATE=LISTEN "TEXT=MySQL: 3306"
	PORT LOCAL=%[.:]5432$ STATE=LISTEN "TEXT=PostgreSQL: 5432"
	PORT LOCAL=%[.:]5901$ STATE=LISTEN "TEXT=VNC: 5901"
	 ↑ 頻繁に監視するとLinux版のVNC(tigervnc-server)では「too many security failures」
	   が表示されてしまい、VNCを再起動しないと接続できなくなってしまうため、
	   コメントアウトするようにした。
	PORT LOCAL=%[.:]8009$ STATE=LISTEN "TEXT=AJP13: 8009"
	PROC crond 1 -1 yellow
	PROC httpd 1 -1 yellow
	PROC mysqld 2
	PROC named 1 -1 yellow
	PROC ntpd 1 -1 yellow
	PROC postmaster 1 -1 yellow
	PROC rsyslog 1 -1 yellow
	PROC snmpd 1 -1 yellow
	PROC sshd 1 -1 yellow
	PROC vnc 1 -1 yellow
 MySQLはmysqld_safeとmysqldが動いているべきなので「2未満だと警告」という設定です。
 設定が完了したら、再起動(リロードじゃ反映されない・・)して反映させます。
# service xymon restart
 その他にも様々な設定ができます。詳細ついてはマニュアルを参照してください。

●client-local.cfgの設定について

 analysis.cfgで「DIR」、「FILE」、「LOG」を使用する場合はinstalldir/server/etc/client-local.cfgの設定も必要です。ここに設定したファイルの情報をXymonクライアントはサーバに送信することになります。
[test.bigbang.dyndns.org]
dir:/var/log/httpd
file:/bin/ls:md5
file:/bin/mv:md5
file:/bin/cp:md5
file:/bin/rm:md5
file:/etc/ssh/sshd_config:md5
file:/etc/vsftpd/vsftpd.conf:md5
file:`find /var/spool/mail -maxdepth 1 -type f`
log:/var/log/messages:10240 ignore ABCDABCD
 
[linux]
dir:/var/log/httpd
file:/bin/ls:md5
file:/bin/mv:md5
file:/bin/cp:md5
file:/bin/rm:md5
file:/etc/ssh/sshd_config:md5
log:/var/log/messages:10240 ignore EFGHEFGH
 file:の末尾に:md5をつけるとMD5値も送信されるようになります。
 「`find /var/spool/mail -maxdepth 1 -type f`」は指定したディレクトリ以下のファイルをチェックする方法です。詳細はfindのマニュアルを参照してください。
 また、ignoreで送信しない行を設定でき、test.bigbang.dyndns.orgはSyslogサーバとして動作しており、ルータからのログも混ざっているため、ABCDABCDを含む行は送信しないようにしている。[linux]ではLinuxマシンでのデフォルト設定となり、ホスト名での記述がないLinuxマシンはこの設定を使用します。
 なお、デフォルトでは/var/log/messagesや/etc/ssh/sshd_config、/etc/vsftpd/vsftpd.confはrootユーザしか読めないので、権限を変更する必要があります。
# chgrp xymon /var/log/messages*
# chmod 640 /var/log/messages*
# chgrp xymon /etc/ssh/sshd_config
# chmod 640 /etc/ssh/sshd_config
# chgrp xymon /etc/vsftpd/vsftpd.conf
# chmod 640 /etc/vsftpd/vsftpd.conf

●ヘルプ一覧

 ヘルプページ一覧は下記をクリックしてください。
 Xymon4.3.Xのヘルプページはこちらです。
 マニュアルページは下記をクリックしてください。
 Xymon4.3.Xのマニュアルページはこちらです。

●iconの意味は

 各アイコンの意味はこちらを参照してください。

●Xymonで追加したサービスを取り消すには

 bb-hostsで監視対象サービスをテストで色々設定してしまい、Web画面上から取り除く場合、以下の方法により解決しました。
 下記は、ホスト名www.abc.co.jpから「bbd」を取り除く場合の方法です。
 まず、installdir/server/etc/hosts.cfgで「bbd」を削除します。
 次に「bb」コマンドを実行します。
# installdir/server/bin/bb [XymonサーバのIPアドレス] "drop [hosts.cfgでのHOST名] bbd"
 自己環境に合わせて「www.abc.co.jp」(xymon監視ページで表示されているホスト名を記載)、「bbd」(削除したいサービス)の部分を変更します。これでも取り除くことができない場合は、下記を実行します。
# service xymon restart
上記リスタートで表示が変わらない場合、下記も実行してみる。
# service httpd reload
 インターコネクト用インターフェースを経由してコマンドが発行され、サーバ側で拒否された旨のエラーが表示されました。
(監視画面のxymondをクリックし、下の方)
Latest error messages:
Refused message from 192.168.20.2: drop neko.bigbang.dyndns.org bbd
Refused message from 192.168.20.2: drop nezumi.bigbang.dyndns.org bbd
 このため、該当インターフェースをダウンさせてから上記コマンドを実行したところ取り除くことができました。

●Xymonの設定

o hosts.cfg
 installdir/server/etc/hosts.cfgにあります。
 hosts.cfgには、監視対象のホストを記述します。また、監視するネットワークサービス、監視するURL、画面がサブページにどう表示されるかを設定します。

監視対象ホストの設定

(構文) IPアドレス  ホスト名  # 監視項目

(例)
192.168.1.4 XXX1 # conn bbd smtp pop ssh http://XXX1.net/
192.168.1.3 XXX2 # conn smtp pop ssh http://XXX2.net/ vnc:5901
192.168.1.2 XXX3 # conn ssh
vnc:5901は5901ポートで動作しているVNCサーバの監視
監視サービス一覧
*注 は XymonがOpenSSLをサポートしてビルドされていれば、監視可能な項目
サービス 説明
conn pingテスト。デフォルトで有効。noconnキーワードを書くと無効になります
http Webサーバテスト。WebサーバのURLを記述します
ftp FTPサーバテスト
ssh SSH(Secure Shell)サーバテスト。ssh1とssh2をサポートします
telnet Telnetサーバテスト
smtp SMTP(メールサーバ)テスト
pop3 POP3テスト
imap IMAPテスト。IMAPバージョン2と4をサポート。バージョン3は"imap3"を利用してください
nntp NNTP(ネットニュース)サーバテスト
ldap LDAP(ディレクトリサーバ)テスト。LDAPがサポートされたXymonでLDAP URIを記述してください
rsync rsyncサーバテスト
bbd BigBrotherデーモンテスト。Xymonネットワークデーモンテストとしても稼働する
clamd CLAMアンチウィルスデーモンテスト
spamd SpamAssassinアンチスパムデーモンテスト
oratns Oracle TNSリスナテスト。Oratns "ping"をテストする
qmtp QMTPサーバテスト。qmailのqmtpdサービス用
qmqp QMQPサーバテスト。qmailのqmqpdサービス用
vnc VNC(Virtual Network Computing)サーバテスト
https(*注) Webサーバテスト。WebサーバのURLを記述します。
ftps(*注) セキュアFTPサーバテスト
telnets(*注) セキュアTelnetサーバテスト
smtps(*注) セキュアSMTPサーバテスト
pop3s(*注) セキュアPOP3サーバテスト
imaps(*注) セキュアIMAPサーバテスト
nntps(*注) セキュアNNTP(News)サーバテスト
ldaps(*注) セキュアLDAP(ディレクトリ)サーバテスト。XymonがLDAPをサポートしてビルドされていれば、Full LDAP URIを入れてください。OpenLDAP v2.xクライアントライブラリとともにビルドされていて、かつLDAPサーババージョン3で、"starttls"コマンドがサポートされているときに有効であることに気をつけてください。ポート636でSSL経由の古い非標準のLDAPトンネルはLDAPサーバは機能しないでしょう。


o analysis.cfg

 Xymonクライアントがインストールされた監視対象のホストから送られるデータの為の設定ファイルです。クライアントからxymonに送られた、CPU、ディスク、メモリ、プロセスの情報の色を設定します。
(例)
HOST=XXX3
  UP 30m
  DISK * 90 95
  LOAD 5.0 10.0
  MEMPHYS 100 101
  MEMSWAP 50 80
  MEMACT 90 97
  PROC sshd 1 -1 yellow
  PROC httpd 1 -1 yellow
  PROC syslog-ng 1 -1 yellow
  PROC named 1 -1 yellow
  PROC ntpd 1 -1 yellow
  PROC postmaster 1 -1 yellow
  PROC nmbd 1 -1 yellow
  PROC smbd 1 -1 yellow
  PROC snmpd 1 -1 yellow

●Alertの通知

 Xymonではメールによるアラートの通知が可能です。

[設定ファイル] installdir/server/etc/alerts.cfg

[設定]
 alerts.cfg にある設定例は以下のようになってます。
HOST=www.foo.com SERVICE=http
MAIL webadmin@foo.com REPEAT=20 RECOVERED
MAIL cio@foo.com DURATION>60 COLOR=red
SCRIPT /usr/local/bin/sendsms 1234567890 FORMAT=SMS
 「HOST=」の部分で対象のホストを設定します。「SERVICE=」をつける事によって対象のサービスも指定できます。何も指定しなければ全てになります。
 「MAIL」の部分でアラートを通知するメールアドレスを設定します。復旧した際にもメールの通知が欲しい場合にはRECOVERDをつけます。
 「COLOR=」の部分では、監視設定をした際に指定した色の障害のみ通知する設定ができます。何も指定しなければ全てです。
 また、障害が発生した際に、何かのスクリプトを実行して欲しい場合には、SCRIPTを記述します。
 私の環境では、スクリプトの実行はいらないですが、全ての監視対象、監視項目でメールが欲しいので以下のように設定してます。
==
host=xxx1、xxx2、xxx3
MAIL xxx@xxx.com RECOVERD
==
 これで、xxx1 と xxx2 と xxx3 の全ての監視項目にて障害が発生及び復旧した際に、xxx@xxx.com宛てにメールがきます。

[Alert通知メール例]デフォルトで以下のフォーマットでメールが通知されます。
・検知時
==
red Tue Apr 22 16:20:14 2008 ssh NOT ok
Service ssh on xxx1 is not OK : Service unavailable (connect timeout)
Seconds: 0.00
See http://xxx3/xymon-cgi/bb-hostsvc.sh?HOST=xxx1&SERVICE=ssh
==
・復旧時
==
green Tue Apr 22 16:22:16 2008 ssh ok
Service ssh on xxx1 is OK (up)
SSH-1.99-OpenSSH_4.3
Seconds: 0.00
See http://xxx3/xymon-cgi/bb-hostsvc.sh?HOST=xxx1&SERVICE=ssh
==
ルールを設定するキーワード
環境変数 説明
ACKCODE アラートを扱っている"cookie"
PAGE ページ名でマッチするルール。これはbb-hostsの"page"、"subpage"、"subparent"キーワードの名前です。
EXPAGE ページ名で除外するルール。
HOST ホスト名でマッチするルール。
EXHOST ホスト名で除外するルール。
SERVICE サービス名でマッチするルール。
EXSERVIC サービス名で除外するルール。
COLOR 色でマッチするルール。"red"、 "yellow"、 "purple"を指定できます。
TIME 時間でマッチするルール。これはbb-hostsのDOWNTIME時間詳細として特定されます(訳注:?)。(bb-hosts(5)を参照)
DURATION 最後に起きたイベントからの時間でマッチするルール。例:DURATION>10m (10分以上続いた場合)、DURATION<2h(最初の2時間だけアラートを送ります)。単位は、'm'、'h'、'd'を、それぞれ分、時間、日として利用でき、明示されていない場合は分です。
UNMATCHED 受取人のこのキーワードは、他のアラートが送られず、このアラートだけが送られることを意味します(訳注:?)。たとえば、いくつかのサービスを特定の人に送りたい場合に使うことができます。UNMATCHEDキーワードのある他の誰にも送られなかったアラートを受け取る受取人を加えることもできます。すべてのアラートを受け取る受取人を作って、hobbit-alerts.cfgファイルの最後にUNMATCHEDキーワードのある受取人を作ることもできます。(訳注:覚え書き:意味がわからないので、試してみること。)
RECOVERED アラート状態が復旧したときにマッチするルール。
NOTICE メッセージが"notify"となった場合にマッチするルール。ホストかテストを無効にするか有効にするかしたときに、このメッセージが送られます。(訳注:?)。

受取人を設定するキーワード
環境変数 説明
MAIL メールを受け取る受取人。これは一つのパラメータ(メールアドレス)を取ります。
SCRIPT スクリプトを実行する受取人。これは二つのパラメータ(スクリプトのファイル名と、スクリプトに渡される受取人(訳注:RECIPIENT?))
IGNORE アラートを送らない受取人。Xymonは受取人を捜さないようになります。下の例を参照してください。
FORMAT アラートのテキストメッセージのフォーマット。デフォルトは"TEXT"(メールでのアラートに適している)です。"PLAIN"はステータスページへのリンクが含まれないことを除いてTEXTと同じです。"SMS"はSMS用のサブジェクトのない短いメッセージです。"SCRIPT"はスクリプト用の要約されたメッセージテンプレートです。
REPEAT アラートを繰り返す頻度。DURATION設定と共にして指定されます。単位は'm'、'h'、'd'で指定でき、明示されない場合は分です。
STOP デフォルトで、xymond_alertはアラートを扱うときにalerts.cfgファイルのすべての有効な受取人を見ます。もし特定の受取人がアラートを受け取って停止したいのであれば、STOPキーワードをこの受取人に追加してください。これはもっと多くの受取人を捜すのを停止します。

スクリプトに渡すすべての環境変数
環境変数 説明
ACKCODE アラートを扱っている"cookie"
BBALPHAMSG ステータスログのすべてのテキスト
BBCOLORLEVEL ステータスの現在の色
BBHOSTNAME アラートを扱っているホスト名
BBHOSTSVC アラートのHOSTNAME、SERVIC
BBHOSTSVCCOMMAS BBHOSTSVC、しかしHOSTNAMEはカンマで区切られている
BBSVCNAME アラートを扱っているサービス名
BBSVCNUM サービスの番号コード、SVCCODES定義から
BBNUMERIC BBSVCNUM、 MACHIP、ACKCODEによって作られる22文字の数値
DOWNSECS サービスがダウンしている秒数
DOWNSECSMSG サービスが復旧したときの、保持しているテキスト"Event duration : N"のNのダウンした秒の値
MACHIP 問題が起きているホストのIPアドレス
RECOVERED サービスが復旧していれば"1"
RCPT 受取人、SCRIPTエントリからの


●アイコンが紫色になってしまった・・

 表示されているアイコンが紫色になるのは下記のような場合です。
  • OSをバージョンアップしたとき
  • この場合は、Xymonを再コンパイルし、再インストールします。
  • ホスト名を過去に使用しており、IPアドレスも過去のものと同じでXymonクライアントが構成されていないとき
  • この場合は、Xymonクライアントをインストールし動作させます。
  • 監視するサーバが複数台になったとき
  • ●Xymonサーバ複数台での監視を参照して設定変更してください。

●WindowsへのXymonクライアントの設置

 hosts.cfgに監視対象マシンの”NETBIOSコンピュータ名”と”IPアドレス”を追加します。
192.168.0.1   xxx      # dns ldap ssh http://xxx.server.co.jp/
 次に「analysis.cfg」を編集します。
HOST=xxx #Windows Server 2003
#        LOAD 80 90 # Load threholds are in %
#        DISK D 50 55 # Can be harddrive or mount points
#        DISK InetPub 30 35
#        MEMPHYS 90 101
#        MEMSWAP 90 95
#        MEMACT  90 97
#        PORT "LOCAL=%([.:]80)$" state=LISTENING TEXT=http
#        PROC BBWin.exe 1 1
#        PROC svchost.exe 3 4
#        LOG %.*  %.*error.* COLOR=yellow
#        SVC MSSQLSERVER startup=automatic status=started
 設定ファイルを読み込ませます。
# service xymon reload
 Windows用クライアント(bbwin)をダウンロードし、インストールします。
 [BBWin Root]/etc/BBWin.cfgを編集します。XymonサーバのIPアドレス、ポート(デフォルトの1984使用ならば指定不要)を指定します。
 設定を変更すると自動的にBBWinサービスが再起動しますので、手動でサービスをBBWin(Big Brother Hobbit Client)を再起動する必要はありません。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<bbwin>
	<setting name="bbdisplay" value="192.168.0.1" />
	<setting name="bbdisplay" value="192.168.0.2" /> ← 監視サーバが複数台ある場合
	<!-- <setting name="bbdisplay" value="yoursecondbbdisplay:port" />-->
 Windowsサービス「Big Brother Xymon Client」を開始します。
 閾値等の制御は、analysis.cfgではなくBBWin.cfgで行います。

 「memory」の閾値を下記の通りデフォルトから変更しています。
<memory>
	<!-- If true、 the agent  will always report with green status -->
	<setting name="alwaysgreen" value="false" />
	<setting name="physical" warnlevel="90" paniclevel="98" />
	<setting name="page" warnlevel="85" paniclevel="90" />
	<setting name="virtual" warnlevel="85" paniclevel="90" />
</memory>
 「msgs」にはエラーとして頻繁に発生するイベントに対して、対策として以下の項目を追記しました。
 また、イベントビューアの「アプリケーション」及び「システム」の警告表示(type設定ではwarning)をデフォルトの1時間から30分に変更しました。
<msgs>
				:
	<match logfile="Application" type="warning" alarmcolor="yellow" delay="30m" />
	<match logfile="System" type="warning" alarmcolor="yellow" delay="30m" />
				:
	<ignore logfile="Application" source="Apcupsd" />
	<ignore logfile="Application" source="sshd" />
	<ignore logfile="Application" source="WinVNC4" />
</msgs>
  • APCUPSD対策
     Windows Server 2003にApcupsd(クライアント)をインストールしています。UPSの動作をネットワーク越しに連携させているのですが、頻繁に「Communications with UPS lost..」と発生するため追記しました。
  • WinVNC4対策
     Windows Server 2003にWinVNC4をインストールしています。hosts.cfgの設定VNCサービスの監視を設定すると「Connections: blacklisted: 1.0.0.5」のエラーが出力されてしまうため追記しました。
  • OPENSSH for Windows対策
     Windows Server 2003にOPENSSH for Windowsをインストールしています。「fatal: Read from socket failed: Connection aborted.」がたまに発生するので、ignoreで除外した方がいいかもしれない。
  • Event ID 3、4、8 Source TermServDevices対策
    yellow system: warning - 2010/01/28 09:38:07 - Print (3) - NT AUTHORITY\SYSTEM 
     "プリンタ (WINXPVM からの) Microsoft XPS Document Writer が削除されました。"
    yellow system: warning - 2010/01/28 09:38:06 - Print (4) - NT AUTHORITY\SYSTEM 
     "プリンタ (WINXPVM からの) Microsoft XPS Document Writer の削除は保留されています。"
    yellow system: warning - 2010/01/28 09:38:06 - Print (8) - NT AUTHORITY\SYSTEM 
     "プリンタ (WINXPVM からの) Microsoft XPS Document Writer のすべての印刷ジョブが削除されました。"
    
     リモートデスクトップ接続時に、[ローカルリソース]タブ−[ローカルデバイスとリソース]で[プリンタ]と[クリップボード]を両方ともチェックを入れた状態である場合、上記のようなエラーが発生する。
  • Event ID 1111 Source TermServDevices対策
     [Terminal Service Configuration]を開く → 左ペインの[Connections]を選択 → [RDP-Tcp]を右クリックして[Properties]を開く → [Client Settings]タブを開く → [Windows printer mapping]にチェックを入れます。
     以上です。やはり不要なサービスはすべて停止するに限ります。サーバの負荷を軽減し、セキュリティの強化にもつながります。皆さんのXPやVistaでも不要なサービスは動いていませんか?次のサイトが役に立つはずです。確認してみてください。
     http://www.jasonn.com/turning_off_unnecessary_services_on_windows_xp
     http://www.marksanborn.net/howto/turn-off-unnecessary-windows-services/
     http://blogs.techrepublic.com.com/security/?p=354
  • Event ID 213 Source LicenseService対策
     ADがWindows2003でドメインに参加するクライアントがWindows2000Serverの時に発生するようです。とりあえずの対処方法は、ドメインに参加するWindows2000ServerのLisenceLoggingServiceを停止すればエラーは出なくなります。
  • Event ID 1517 Userenv対策
     プロファイルのアンロードに関する問題のトラブルシューティングを参照しました。
  • 「SYMANTEC TAMPER PROTECTION ALERT」対策
     上記の「Event ID 1517 Userenv対策」によりインストールしたuphcleanにより、「SYMANTEC TAMPER PROTECTION ALERT」がアプリケーションエラー(警告)として出力されるようになってしまいました。内容は以下のとおりです。
    Target: C:\Program Files\Symantec\Symantec Endpoint Protection\Rtvscan.exe
    Event Info:  停止 スレッド
    Action Taken:  ログ記録
    Actor Process:  C:\Program Files\UPHClean\uphclean.exe (PID 2624)
    
     この対策として該当イベントIDを無視するように設定しました。
    <msgs>
    				:
    	<ignore logfile="Application" eventid="45" />
    </msgs>
    
  • 「リダイレクタは接続の種類を判断できませんでした」対策
  • イベント ID : 3019
    ソース : MRxSmb
    説明 : リダイレクタは接続の種類を判断できませんでした。
    
     エラー メッセージ : "リダイレクタは接続の種類を判断できませんでした" によると、「このエラー メッセージは通知のみを目的としています。無視しても安全です。 」ということらしいので、無視する設定にしました。
    <msgs>
    				:
    	<ignore logfile="System" eventid="3019" />
    </msgs>
    
 「procs」では、監視するため下記を追記しました。
<procs>
				:
  <setting name="apcupsd.exe" rule="=1" comment="Apcupsd UPS Monitor" />
  <setting name="BBWin.exe" rule="=1" comment="Big Brother Xymon Client" />
  <setting name="dice.exe" rule="=1" comment="DiCE DynamicDNS Client Service" />
  <setting name="dns.exe" rule="=1" comment="DNS Server" />
  <setting name="lsass.exe" rule="=1" comment="Net Logon" />
  <setting name="Rtvscan.exe" rule="=1" comment="Symantec Endpoint Protection" />
  <setting name="SemSvc.exe" rule="=1" comment="Symantec Endpoint Protection Manager" />
  <setting name="sqlservr.exe" rule="=1" comment="Windows Internal Database (MICROSOFT##SSEE)" />
  <setting name="WsusService.exe" rule="=1" comment="Update Services" />
</procs>
 「svcs」では、監視するため下記を追記しました。
<svcs>
				:
  <setting name="Automatic Updates" value="started" autoreset="true" alarmcolor="red" />
  <setting name="Apcupsd UPS Monitor" value="false" />
  <setting name="Big Brother Xymon Client" value="false" />
  <setting name="DHCP Server" value="false" alarmcolor="red" />
  <setting name="DiCE DynamicDNS Client Service" value="false" alarmcolor="red" />
  <setting name="DNS Server" value="false" alarmcolor="red" />
  <setting name="Kerberos Key Distribution Center" value="false" alarmcolor="red" />
  <setting name="Net Logon" value="false" alarmcolor="red" />
  <setting name="OpenSSH Server" value="false" />
  <setting name="Symantec Embedded database" value="false" alarmcolor="red" />
  <setting name="Symantec Endpoint Protection" value="false" alarmcolor="red" />
  <setting name="Symantec Endpoint Protection Manager" value="false" alarmcolor="red" />
  <setting name="Symantec Event Manager" value="false" alarmcolor="red" />
  <setting name="Symantec Management Client" value="false" alarmcolor="red" />
  <setting name="Update Services" value="false" alarmcolor="red" />
  <setting name="VNC Server Version 4" value="false" />
  <setting name="Windows Internet Name Service (WINS)" value="false" />
</svcs>

●文字化け対策

 Windows用のXymonクライアントをインストール後、注意や警告で報告されるイベントログ表示(msgs)が文字化けしてしまう。
 その対策として、installdir/server/etc/hobbitserver.cfgを下記の通り編集しました。
# HTML content
HTMLCONTENTTYPE="text/html; charset=shift-jis"

●監視画面でxymonnetのアイコンが赤くなる現象について

 該当箇所をクリックしたところ、下記のようなエラーが出力されていました。
Error output:
Execution of '/usr/local/sbin/fping -Ae' failed with error-code 4
(null): can't create socket (must run as root?) : Permission denied
 正常動作しているCentOS 6と異常なCentOS 7のfpingのアクセス権を調べたところ異なることがわかりました。
・CentOS 6の場合
# ls -la /usr/sbin/fping
-rwsr-xr-x 1 root root 40164  5月  7 06:14 2014 /usr/sbin/fping
・CentOS 7の場合
# ls -la /usr/local/sbin/fping
-rwxr-xr-x 1 root root 89943  4月 15 19:43 /usr/local/sbin/fping
 このため、少勇者にスティッキービットを有効にすることにしました。
# ls -la /usr/local/sbin/fping
-rwsr-xr-x 1 root root 89943  4\u6708 15 19:43 /usr/local/sbin/fping
 以上で問題は解決しました。

●グラフのタイトルにホスト名ではなくIPアドレスが表示される場合の対処方法

 Deviceの設定のAssociated Data Queriesでiostat関連のData Queryを選択しグラフを表示させたところ、グラフのタイトルにホスト名ではなくIPアドレスが表示される現象が発生しました。
 他のグラフではホスト名で表示されているので見た目上もあまりよろしくなくホスト名に変更したいと思いました。
 その手順について示していきたいと思います。
 まず、グラフ一覧表示から該当するグラフの情報を調査します。
 該当のグラフの情報は「Graph Template: iostat - Bytes/sec」でした。
 次に、Consoleタブを選択 → Templatesから「Data Source」を選択 → 右側の一覧から「iostat - I/O」を選択 → Data Sourceの「Name」で設定されている値をメモします(今回の場合、「|host_description| - iostat I/O - |query_ioDescr|」)。
 XMLで定義されている「|host_description|」に代入される値がIPアドレスとなってしまい、グラフのタイトルにIPアドレスが表示されてしまうと推測。
 このXMLファイルを探し出し内容を確認する必要があります。
 Consoleタブを選択 → Data Collectorsから「Data Queries」を選択 → 右側の一覧から「iostat - kBytes/sec」を選択します。
 Data Queries [edit: iostat - kBytes/sec]の「XML Path」を確認します(今回の場合、「<path_cacti>/resource/snmp_queries/iostat.xml」)。
 該当XMLファイルの中身を確認します。
# cd /usr/share/cacti
# cat resource/snmp_queries/iostat.xml

        <name>Get IOSTAT Devices</name>
        <description>Queries a host for a list of monitorable devices from iostat</description>
        <oid_index>.1.3.6.1.3.1</oid_index>
	<index_order>ioDescr:ioIndex</index_order>
        <index_order_type>numeric</index_order_type>
        <index_title_format>|chosen_order_field|</index_title_format>
        <fields>
                <ioIndex>
                        <name>Index</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>.1.3.6.1.3.1.1</oid>
                </ioIndex>
                <ioDescr>
                        <name>Description</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>input</direction>
                        <oid>.1.3.6.1.3.1.2</oid>
                </ioDescr>
                <ioRrqms>
                        <name>Merged Read Requests</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>outputt</direction>
                        <oid>.1.3.6.1.3.1.3</oid>
                </ioRrqms>
                <ioWrqms>
                        <name>Merged Write Requests</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.4</oid>
                </ioWrqms>
                <ioReads>
                        <name>Read Requests</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.5</oid>
                </ioReads>
                <ioWrites>
                        <name>Write Requests</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.6</oid>
                </ioWrites>
                <ioReadKbytes>
                        <name>kBytes Read</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.7</oid>
                </ioReadKbytes>
                <ioWriteKbytes>
                        <name>kBytes Written</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.8</oid>
                </ioWriteKbytes>
                <ioSectors>
                        <name>Average Request Size</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.9</oid>
                </ioSectors>
                <ioQueue>
                        <name>Average Queue Size</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.10</oid>
                </ioQueue>
                <ioAwait>
                        <name>Average Wait</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.11</oid>
                </ioAwait>
                <ioSvctm>
                        <name>Service Time</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.12</oid>
                </ioSvctm>
                <ioUtilisation>
                        <name>Utilisation</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.3.1.13</oid>
                </ioUtilisation>
        </fields>
</interface>
 今回、「|host_description|」はXMLでは定義されていなかったため設定箇所は別の箇所ということが判明しました。
 次は、Consoleタブを選択 → Templatesから「Graph」を選択 → 右側の一覧から「iostat - Bytes/sec」を選択します。
 Graph Template Items [edit: iostat - Bytes/sec]のGraph Template Optionsの「Common Options」に「|host_hostname| - iostat - Bytes/sec - |query_ioDescr|」が設定されていることが分かります。
 他のグラフの設定を参考にし、この「|host_hostname|」を「|host_description|」に変更し保存します。
 グラフ表示を更新することにより、IPアドレス表示だった箇所がホスト名に変更されていることが確認できます。