2013年7月3日水曜日

ZabbixでJMXの監視設定を行なってみた

■概要
今回もchefでapacheをインストールした場合の手順です
chefでのapacheインストール方法は以下を参照ください
http://kakakikikeke.blogspot.jp/2013/05/opscodecookbooks.html

■環境
CentOS release 6.2 (Final)
Zabbix 2.0.3
Tomcat 7.0.32.0

以下「zabbix-server」をZabbixサーバのホスト名とし
「tomcat-server」をTomcatサーバのホスト名とします

■tomatのJMXを有効にする
vi /etc/default/tomcat7
JMX_OPTS="$JMX_OPTS\
-Dcom.sun.management.jmxremote=true\
-Dcom.sun.management.jmxremote.port=10080\
-Djava.rmi.server.hostname=tomcat-server\
-Dcom.sun.management.jmxremote.ssl=false\
-Dcom.sun.management.jmxremote.authenticate=false"
service tomcat restart

■ZabbixのJMX有効化
/etc/init.d/zabbix_server stop
/etc/init.d/zabbix_agentd stop
yum install java-1.7.0-openjdk-devel
cd /opt/zabbix-2.0.3-server
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --enable-java
make clean
make
make install
ls /opt/zabbix-2.0.3-server/src/zabbix_java
※実施したあとで気がついたがchefでインストールした場合はやらなくても良さそう

■Zabbix Java Gateway の設定
cd /opt/zabbix-2.0.3-server/src/zabbix_java
vim settings.sh
以下のようにコメントアウトされている部分のコメントを外して設定します
#LISTEN_IP="0.0.0.0"

LISTEN_IP="zabbix-server"

#LISTEN_PORT=10052

LISTEN_PORT=10052

#START_POLLERS=5

START_POLLERS=2
/opt/zabbix-2.0.3-server/src/zabbix_java/startup.sh
フルパスで実行する必要あり

tail /tmp/zabbix_java.log
ls /tmp/zabbix_java.pig
ログにエラーがないこととpidファイルが存在することを確認する

netstat -an | grep 10052
ps aux | grep java
Java Gateway 用のプロセスが起動していることを確認する

■Zabbix Server にJava Gateway を認識させる
vim /etc/zabbix/zabbix_server.conf
# for java gateway
JavaGateway=zabbix-server
JavaGatewayPort=10052
StartJavaPollers=2
上記で設定した情報と同じようにzabbix_server.confにも記載します
/etc/init.d/zabbix_server restart

■ホスト作成(or 設定)
設定→ホスト→ホストの作成を実行
エージェントのインタフェースでJMXインタフェースを追加する
既存のホストに対してJMXインタフェースを追加してもOK

■アイテム作成
設定→アイテム→アイテムの作成を実行
タイプにJMXエージェントを選択し
キーにjmx["java.lang:type=Memory","HeapMemoryUsage.used"]を記載して保存します
ついでにグラフも作成するといいと思います

■ACL確認
Zabbixサーバ側からTomcatサーバに対する10080で通信できることを確認する
Zabbixサーバ側からTomcatサーバに対する36197で通信できることを確認する
telnet tomcat-server 10080
telnet tomcat-server 36197
※36179は理由がよくわからないのですが、通信できてないとダメみたいです
※しかもTomcatを再起動するたびに受付ポートが変わる可能性があるので結構大変です
※なのでZabbixサーバからTomcatサーバへの通信は全ポートオープンにしたほうがいいかもしれません

■監視できているか確認
設定→ホストの一覧からJMXエージェントが有効になっているか確認する
なっていない場合はログ等を見て状況を確認する
tailf /tmp/zabbix_java.log
※ステータスがONにならないのはACL系が多いです、iptablesやFWを再度確認してみてください

0 件のコメント:

コメントを投稿