[CentOS]munin監視対象のホスト名が変わっても監視データを引き継ぎたい


munin監視対象のホスト名が変わった場合、監視サーバー側でもホスト名を変えないと、見た人がホストを取り違えるなどミスがおきてしまいます。監視サーバー側のmunin.confでホスト名を変えるだけでは過去データは失われないものの、過去監視データは引き継がれません。監視対象のIPアドレスはそのままでホスト名が変わったときの、過去監視データを引き継ぐ手順をメモします。

監視サーバー側のディストリビューションはCentOS 6.6、muninパッケージは以下の通りです。

$ cat /etc/redhat-release 
CentOS release 6.6 (Final)
$ yum list installed munin* | egrep munin | awk '{print $1,$2,$3}'
munin.noarch 2.0.25-2.el6 @epel
munin-common.noarch 2.0.25-2.el6 @epel
munin-nginx.noarch 2.0.25-2.el6 @epel
munin-node.noarch 2.0.25-2.el6 @epel

監視サーバーと監視対象でそれぞれオペレーションを行うので、見出しにどちらで作業するのかを書いています。監視対象の旧ホスト名を www.old.example.com 、新ホスト名を www.new.test.jp とします。

■ [監視サーバー]munin-fcgi-graph munin-fcgi-html のデーモンを止める

5分に1回、muninのデータ出力が行われるたびに旧ホスト名でのデータが更新されてしまうので、これらのデーモンを動かしている場合は一旦停止します。

■ [監視サーバー]munin.confのホスト名を書き換える

/etc/munin.conf に書かれている、監視対象のホスト名を書き換えます。IPアドレスの変更がなければホスト名のみの書き換えでOKです。

■ [監視対象]munin-node.confのホスト名を書き換える

/etc/munin/munin-node.conf にかかれている、「host_name」で始まる行のホスト名(自ホスト名)を書き換えます。

■ [監視サーバー]rrdファイルをリネームする

監視対象の過去データ(rrdファイル)は /var/lib/munin の下のグループ名のディレクトリの中に www.old.example.com-〜〜〜.rrdというファイル名で置かれています。グループ名はmuninの監視画面またはmunin.confで確認してください。

$ cd /var/lib/munin/GROUPNAME

そして一撃リネームです。

$ for A in $(ls | grep www.old.example.com); do sudo mv ${A} $(echo ${A} | sed -e "s/www.old.example.com/www.new.test.jp/"); done

■ state-グループ名-www.old.example.com.storable ファイルをリネームする

state-グループ名-www.old.example.com.storable ファイルを state-グループ名-www.new.test.jp.storable にリネーム(コピー)します。

$ cd /var/lib/munin
$ sudo mkdir -p BACKUP
$ sudo cp -p state-GROUPNAME-www.old.example.com.storable state-GROUPNAME-www.new.test.jp.storable
$ sudo mv state-GROUPNAME-www.old.example.com.storable BACKUP/

■ [監視サーバー]munin-fcgi-graph munin-fcgi-html のデーモンを起動する

先ほど止めた munin-fcgi-graph munin-fcgi-htmlのデーモンを起動します。5分程度待ってからブラウザの監視画面をリロードして、監視対象のホスト名が変わっていればOKです。ね、簡単でしょう?