Zabbixで監視

家のPCたちのリソースがそれぞれでどれくらい利用しているのかを今まで把握したことなかったのだけど、Zabbix で監視してみようと思い、インストールしてみる。サーバの方は CentOS 5 に入れて見たけど、簡単だった。サーバの方は(RHEL の epel レポジトリを利用可能にする必要あり)

yum install zabbix zabbix-web zabbix-agent

をして、MySQL が必要だから、そこに zabbix データベースを作っておき、

cd /usr/share/doc/zabbix-1.4.6/dbinit
cat schema/mysql.sql | mysql -u zabbix -p zabbix
cat data/data.sql | mysql -u zabbix -p zabbix
cat data/images_mysql.sql | mysql -u zabbix -p zabbix

そして、/etc/zabbix/zabbix_server.conf にある DB~ を編集する。

あとは、

/sbin/chkconfig zabbix on
/sbin/chkconfig zabbix-agent on
/etc/init.d/zabbix start
/etc/init.d/zabbix-agent start

とかして起動しておけば良い。

管理画面の方は httpd をリロードとかして、http://hostname/zabbix/index.php にアクセスすると、インストールしてくれる。でも、PHP 関連で値の変更を求められた。以下あたりだと思う。

max_execution_time = 300     ; Maximum execution time of each script, in seconds
date.timezone = "Asia/Tokyo"

あとは、指示通りにやる。

サーバの方はそんな感じで、監視対象のエージェントの方は

yum install zabbix-agent

とすればよい。これだけいれればOKで、あとは /etc/zabbix/zabbix_agentd.conf を編集する。

Server=<ZabbixサーバーIP>
Hostname=<自分のホスト名>
#ListenPort=10050
ListenIP=<自分のIP>

という感じにすれば良い。あとは、起動しておく。

/sbin/chkconfig zabbix-agent on
/etc/init.d/zabbix-agent start

Windows のエージェントの方は、Zabbix のソースコードをダウンロードすると、zabbix-1.6.4/bin/win32 以下に入っている。これを c:\Program Files\zabbix みたいに作って、zabbix_agentd.confとzabbix_agentd.exeを置いておく。zabbix_agentd.confはLinuxと同様。あとは、そこのディレクトリで

zabbix_agentd.exe -c zabbix_agentd.conf -i

とやれば、サービスとして登録される。Vista の場合は管理者権限でコマンドプロンプトをあげないと実行できない(右クリックで管理者権限を選ぶとか)。

そんで、コントロールパネル>管理ツール>サービスでサービスをあげておく。zabbix_agentd.confが間違っていると、エラーになって開始しない。あとは、ポートをあげておけば良い。

そんな感じで完成。これで今まで謎だった、CPUとかディスクの利用率がわかるようになりました。

SAStrutsを使うMavenな人たちへ…

Mavenな人たちは、プロジェクト生成を mvn archetype:generate をしたいことでしょう(私はこれで作りたいのよ)。sa-struts-blank も古い感もあるので、id:higayasuo さんに相談したところ、archetype を作るならいいんじゃないということで作りました(確かに Cubby の archetype は参考になりました)。ついでに、スペシャルオプション(?)として、use-dbflute と use-portlet を追加しました(デフォルトはfalseになってます)。use-portlet の方はまだまだな感じですが、use-dbflute の方は -Duse-dbflute=true を付けてあげれば、Maven DBFlute Plugin と組み合わせれば、Maven な感じです。ひとまず、archetype の方は、Seasar のスナップショットのリポジトリの方に入れてあるので、

mvn archetype:generate -DarchetypeRepository=https://www.seasar.org/maven/maven2-snapshot/ \
-DarchetypeGroupId=org.seasar.sastruts \
-DarchetypeArtifactId=sa-struts-archetype -DarchetypeVersion=1.0.4-sp5.0-SNAPSHOT \
-DgroupId=sample.app -DartifactId=sample -Dversion=1.0-SNAPSHOT

みたいな感じでできあがりです。

SAStruts+DBFluteな人であれば、

$ mvn archetype:generate -DarchetypeRepository=https://www.seasar.org/maven/maven2-snapshot/ \
-DarchetypeGroupId=org.seasar.sastruts \
-DarchetypeArtifactId=sa-struts-archetype -DarchetypeVersion=1.0.4-sp5.0-SNAPSHOT \
-DgroupId=sample.app -DartifactId=sample -Dversion=1.0-SNAPSHOT -Duse-dbflute=true
$ cd sample
$ mvn eclipse:eclipse
$ mkdir src/main/webapp/WEB-INF/db
$ cd src/main/webapp/WEB-INF/db
$ java -jar ../lib/h2-1.1.113.jar
...データベース作成...
$ cd ../../../../../
$ mvn dbflute:download
$ mvn dbflute:create-client
$ mvn dbflute:jdbc
$ mvn dbflute:generate
...src/main/resources/jdbc.diconにDB設定...

という感じで、DBFlute のサイトにある手順をシンプルにできますー。

sa-struts-archetype のバージョンの付け方は、1.0.4-sp5.0 みたいな感じで、対応する SAStruts のバージョンに対して、最後に .数字 を付けていこうかと思ってます。

という感じで、作ったので、何かあればお知らせください。これで良いMavenな感じなったなー。