レンタルサーバとはいえ、root権限を持っているサーバでzabbixを動かして、
自宅サーバを監視したり、お客様のサーバを監視している。
通常、zabbix サーバとzabbixエージェントは同一ネットワークに存在し、インターネット経由では監視しないのが常識だ。監視データの中には見られてほしくない情報があったり、エージェントが接続する情報を読み取られたくないからだ。
でも仕方がないので、途中の経路を暗号化してSSLのトンネルを作ってくれるStoneを動かして運用している。すでに10か月は正常稼働してるし負荷も上昇していない。
というわけで、導入方法をまとめてみることにした。
(2014/05/26 追記)
Stoneでの運用は、長期間再起動を行わないと通信が途切れたり、再起動時間が延びるためにSSH経由に変えました。
http://www.gcd.org/sengoku/docs/NikkeiLinux00-08/stone.ja.html
※とにかく参考になるのはStoneの配布元の導入記事です。
番号 | サーバ種別 | ホスト名 | 待ち受けポート | 転送先ポート |
1 | Zabbixサーバ | redalarm.jp | 20051 | 10051 |
localhost | 20050 | seedlight.com:20050 | ||
2 | Zabbixエージェント | seedslight.com | 20050 | 10050 |
localhost | 20051 | redalarm.jp:20051 |
たすき掛けのように作ればいいかと思ったけれど、甘かった。SSLなんだから、暗号、複合を行わなきゃいけないので、サーバ→エージェント、エージェント→サーバの通信はStone同士で通信を行って作る土管の中を通さなきゃいけない。
簡単に作った図だけれどこんな感じ。
■Stoneの構築
==CentOS5側==
# cd /usr/local/src
# wget ‘http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz’
# tar xvzf stone-2.3e.tar.gz
# mv stone-2.3e.tar.gz tarball/.
# cd stone-2.3d-2.3.2.7/
# make linux-ssl
# cp -p stone /usr/local/sbin/.
※ make だけだと、make オプションが表示される。
# mkdir -p /usr/local/stone/etc/
# mkdir -p /usr/local/stone/log/
# vi /etc/init.d/stone
# chmod +x stone
# chkconfig –add stone
stone_redhat_script
※atdを参考に作った起動スクリプト。
2012/2/23追記。
daemon ${prog} -C ${stone_conf}
この部分が動かなかったので調べたら、デフォルトインストールだとdaemonがない。daemonize というパッケージがその代りをしてくれるらしい。
# yum install daemonize
これでインストール。こうなった。
daemonize ${prog} -C ${stone_conf} >/dev/null 2>&1 &
stone_conf=”/usr/local/stone/etc/zabbix_ssl.conf”
この部分を自分で作ったconfigファイルを指定。
== FreeBSD側==
# cd /usr/ports/net/stone
# make
# make install
/usr/local/bin/stone にプログラム本体
/usr/local/etc/rc.dに起動スクリプトstone 。これに設定ファイルを記述する。
# vi /usr/local/etc/rc.d/stone
—-
stone_conffile=”/usr/local/etc/stone.cnf”
次に、/etc/rc.conf に記述を忘れずに行う。
# vi /etc/rc.conf
—-
stone_enable=”YES”
とりあえず、さらにStoneの設定へと続くためここで一区切り。
番号