3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dcokerコンテナ上のTomcatをZabbix Java Gatewayで監視する

Posted at

Dockerを導入するにあたり、コンテナで動くTomcatの各種メトリクスをZabbixから参照するために行った検証のメモ。

Zabbixの設定

利用したZabbixのバージョンは3.0。これもDockerコンテナで動かしている。
以下の記事を参考に環境を用意した。

[docker]1分でテスト用のZabbix環境を用意する
http://dev.classmethod.jp/cloud/dockerized-zabbix-test/

Zabbix Java Gatewayを利用するため、

  • ZS_JavaGateway
  • ZS_JavaGatewayPort
  • ZS_StartJavaPollers

の3つを追加で指定してコンテナを起動している。

docker run \
    -d \
    --name zabbix \
    -p 10081:80 \
    -p 10051:10051 \
    -p 10052:10052 \
    -v /etc/localtime:/etc/localtime:ro \
    --link zabbix-db:zabbix.db \
    --env="ZS_DBHost=zabbix.db" \
    --env="ZS_DBUser=zabbix" \
    --env="ZS_DBPassword=my_password" \
    --env="ZS_JavaGateway=127.0.0.1" \
    --env="ZS_JavaGatewayPort=10052" \
    --env="ZS_StartJavaPollers=5" \
    zabbix/zabbix-3.0:latest

最後に、コンテナへアクセスしてZabbix Java Gatewayを起動する。
(最初、これを行わずハマった)

[root@xxxx ~]# docker exec -it zabbix bash
[root@yyyy /]# /usr/local/sbin/zabbix_java/startup.sh

Tomcatの設定

JMXを利用するため、CATALINA_OPSへ以下のような設定を追加する。

CATALINA_OPTS="${CATALINA_OPTS} \
  -server \
  -Xmx512m \
  -Xms512m \
  -XX:PermSize=32m \
  -XX:MaxPermSize=128m \
  -Xloggc:/usr/local/tomca/logs/gc.txt \
  -XX:+PrintGCDetails \
  -XX:+PrintGCDateStamps \
  -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \
  -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=12345 \
  -Dcom.sun.management.jmxremote.rmi.port=12345 \
  -Dcom.sun.management.jmxremote.local.only=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -Djava.rmi.server.hostname=${HOST_IP_ADDRESS}"

"-Dcom.sun.management.jmxremote"以降の設定を追加した。
"-Djava.rmi.server.hostname"に関しては、ローカルIPではなくコンテナを起動したDockerホストのIPアドレスが必要となるっぽい。
Tomcatコンテナを起動するために用意したスクリプトで環境変数を指定した。
また、Zabbix Java Gatewayから参照するため12345番ポートをポートフォワードしている。

IP_ADDRESS=`ip -f inet -o addr | grep -v "127.0.0.1" | cut -d\  -f 7 | cut -d/ -f 1 | awk 'NR == 1'`

docker run -d -p 8080:8080 -p 8009:8009 -p 12345:12345 \
  -v /etc/localtime:/etc/localtime:ro \
  --name tomcat_xxx \
  --env CATALINA_OPTS="-Dorg.apache.catalina.SESSION_PARAMETER_NAME=JSESSIONID -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -DjvmRoute=xxx" \
  --env HOST_IP_ADDRESS=${IP_ADDRESS} \
  ...

以上の設定で、ZabbixからTomcatのConnector worker等を参照出来るようになった。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?