ZabbixのJMX監視でWebLogicの監視はできます


ZabbixのWeblogic,JMX監視手順です。

Googleで "zabbix weblogic"と検索すると、最初に某割と有名なセキュリティ系企業のHPで「JMX監視で最新のWebLogicの監視できません」と表示されて、古いZabbixだろうとできないってことはないでしょと思ったので。

zabbix-java-gatewayのJAVAファイル編集しなくても、MBeanにアクセスしなくてもJMX監視自体はできます。
Weblogic 12.2.1.3.0の即席インストール手順も載せています。

前提

・Zabbixサーバは既にZabbixインストール、設定済み
・WeblogicサーバはXで接続できる、またはGUIログインできること。
・ZabbixサーバとWeblogicサーバのselinux無効化
・今回のJMX監視で開放が必要なポート
 Zabbixサーバ側: 10052 Weblogicサーバ側: 12345

ZabbixサーバにZabbix-Java-Gateway設定

※rootユーザからの作業です

zabbix-java-gatewayインストール

インストール
yum install zabbix-java-gateway

起動
systemctl start zabbix-java-gateway
systemctl enable zabbix-java-gateway

設定編集

vi /etc/zabbix/zabbix_server.conf
※以下編集。

JavaGateway=127.0.0.1 ※zabbix-java-gatewayをzabbixと別サーバにする場合、gatewayサーバのIP
JavaGatewayPort=10052 ※デフォルトポート
StartJavaPollers=3 ※とりあえず3にしておく。

サービス再起動

systemctl restart zabbix-server
systemctl restart zabbix-java-gateway

即席でWeblogicサーバインストール

※新しいWeblogic用サーバで作業。rootユーザからの作業です

Oracle JDKインストール

以下よりライセンスに同意チェックマークを入れ、jdk-8u211-linux-x64.rpmをダウンロードします。
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ダウンロードしたrpmをサーバに転送し、インストールします。

yum localinstall jdk-8u211-linux-x64.rpm
rpm -ivh jdk-8u211-linux-x64.rpm

JDK環境変数設定

vi /etc/profile.d/java.sh
※以下記載。

#!/bin/bash
JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
PATH=$JAVA_HOME/bin:$PATH
CATALINA_HOME=/opt/tomcat
export PATH JAVA_HOME CATALINA_HOME

読み込み
. /etc/profile.d/java.sh

X設定

DISPLAY=:0.0; export DISPLAY
xhost +

オラクルユーザ作成

useradd oracle
passwd oracle

スイッチ
su - oracle

weblogicインストーラダウンロード

以下よりライセンスに同意チェックマークを入れ、とりあえずGenericインストーラをダウンロード。
http://www.oracle.com/technetwork/jp/middleware/weblogic/downloads/index.html

oracleユーザのホームディレクトリにインストーラを転送する。

Weblogicインストーラ実行

解凍
unzip fmw_12.2.1.3.0_wls_Disk1_1of1.zip

Oracleユーザ用に一応JAVA_HOME通しておく
echo "export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64" >> ~/.bashrc

読み込み
. ~/.bashrc

X設定(一応Oracleユーザでも)
DISPLAY=:0.0; export DISPLAY
xhost +

インストーラ実行
java -jar fmw_12.2.1.3.0_wls.jar

GUIが立ち上がる。とりあえずインベントリディレクトリはそのままで。

その後「次」か「インストール」を選択でいきます。OracleHomeはドロップダウンから選択できるやつで。

Weblogiocインストールに続けて構成ウィザードが立ち上がる。立ち上がらなければ以下で実行する。

コンフィグ実行
/home/oracle/Oracle/Middleware/Oracle_Home/oracle_common/common/bin/config.sh

基本「次」をクリックでいいですが、とりあえずBasic Weblogicを選択。

パスワードも入力。

↓画面だと「本番」選択してますが「開発モード」でOKです。

とりあえず管理サーバだけでOKかと。

SSLの設定も今回はいらないので、後は「次」をクリックし続け終了。

環境変数、クラスパス設定

MW_HOME設定
echo "export MW_HOME=/home/oracle/Oracle/Middleware/Oracle_Home" >> ~/.bashrc

WLS用変数設定
$MW_HOME/wlserver/server/bin/setWLSEnv.sh
※表示されたPATH,CLASSPATHをbashrcに記載

vi ~/.bashrc

再度読み込み
. ~/.bashrc

起動停止確認

cd $MW_HOME/user_projects/domains/base_domain/bin

起動
./startWebLogic.sh &

ブラウザにて以下指定。設定したID・パスワードでログインできるか確認。
http://WeblogicサーバのIP:7001/console

停止
./stopWebLogic.sh &

※その後zabbix-agentをインストールしZabbixサーバからエージェント監視可能な状態にすること(手順について割愛します)。

WeblogicサーバのJMX監視設定

ENVファイル編集

cd $MW_HOME/user_projects/domains/base_domain/bin/
vi setDomainEnv.sh
※514行目あたり編集
[変更前]
JAVA_OPTIONS="${JAVA_OPTIONS}
export JAVA_OPTIONS
[変更後]
JAVA_OPTIONS="${JAVA_OPTIONS}
-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=12345 
-Dcom.sun.management.jmxremote.rmi.port=12345 
-Djava.rmi.server.hostname=Weblogicサーバ(監視対象)のIP
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"
export JAVA_OPTIONS

# Weblogic起動
./startWebLogic.sh &

Zabbixコンソールで設定

Weblogicサーバホスト設定

JMXインターフェースにWeblogicサーバのIPを設定します(ポート12345番で)。
Template JMX Generic などJMX監視のテンプレートを割り当てて更新してください。

写真左上のようJMXの部分が緑色になればOKです。

JMX監視関連の値が取得できています(画像はヒープメモリ)。