天天看點

Zabbbix 監控 tomcat

我的伺服器是 Ubuntu 16.04,以下内容基于此版本系統。

一 環境準備

安裝 Apache web伺服器

sudo apt-get install apache2
複制代碼
           
  • 測試: 浏覽器通路

    http://Ubuntu的IP

    ,出現It Works!網頁。
  • 檢視狀态:

    service apache2 status/start/stop/restart

  • Web目錄:

    /var/www

  • 安裝目錄:

    /etc/apache2/

  • 全局配置:

    /etc/apache2/apache2.conf

  • 監聽端口:

    /etc/apache2/ports.conf

  • 虛拟主機:

    /etc/apache2/sites-enabled/000-default.conf

安裝 mysql

sudo apt-get install mysql-server mysql-client

  • 測試:

    mysql -u root -p

  • 檢視狀态:

    service mysql status/start/stop/retart

  • 檢視監聽端口的情況:

    netstat -tunpl

    netstat -tap

安裝 php

sudo apt-get install php7.0

  • 測試:

    php7.0 -v

安裝輔助子產品

sudo apt-get install libapache2-mod-php7.0

sudo apt-get install php7.0-mysql

  • 重新開機服務
    • service apache2 restart

    • service mysql restart

  • 測試Apache能否解析PHP
    • vim /var/www/html/phpinfo.php

    • 檔案中寫:

      <?php echo phpinfo();?>

    • 浏覽器通路:

      http://ubuntu位址/phpinfo.php

      ,出現PHP Version網頁

5.修改權限

sudo chmod 777 /var/www

二 安裝 Zabbix

安裝帶 MySql 資料庫的包

# wget https://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-2+xenial_all.deb
# dpkg -i zabbix-release_3.0-2+xenial_all.deb
# apt update
複制代碼
           

安裝 Zabbix server, frontend, agent

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
複制代碼
           

建立初始資料庫

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to [email protected] identified by 'password';
mysql> quit;
複制代碼
           

注意::password 處替換成你的。

導入初始化 schema 和資料。你需要輸入上面新設的密碼。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

配置資料庫

編輯 /etc/zabbix/zabbix_server.conf

DBPassword=password
複制代碼
           

配置 PHP

編輯 /etc/zabbix/apache.conf, 取消此行注釋并設定正确的時區。

php_value date.timezone Asia/Shanghai
複制代碼
           

啟動 Zabbix server 和 agent 程序

啟動 Zabbix server 和 agent 程序并使其開機啟動

# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
複制代碼
           

三 初始化 Zabbix frontend

使用浏覽器通路 _http://ip/zabbix/setup.php

檢查環境,根據提示處理。

配置資料庫連接配接。

名字自定義即可。

進入登入頁面,賬号 Admin 密碼 zabbix。

進入管理界面,然後就可以添加主機了。

配置 JMX

zabbix提供了一個java gateway的應用去監控jmx(Java Management Extensions,即Java管理擴充)是一個為應用程式、裝置、系統等植入管理功能的架構。JMX可以跨越一系列異構作業系統平台、系統體系結構和網絡傳輸協定,靈活的開發無縫內建的系統、網絡和服務管理應用。

伺服器端配置

安裝 Zabbix-java-gateway

Zabbix-java-gateway 是 Zabbix 用于監控 JMX 應用程式的服務程序。 需要 java 環境。

apt-get install zabbix-java-gateway
複制代碼
           

修改 java-gateway 配置檔案

編輯/etc/zabbix/zabbix_java_gateway.conf

# 監聽位址
LISTEN_IP=”0.0.0.0″
# 監聽端口
LISTEN_PORT=10052
# PID_FILE檔案
PID_FILE=”/var/run/zabbix/zabbix_java.pid”
# 開啟的工作線程數
START_POLLERS=5
複制代碼
           

啟動 zabbix-java-gateway

service zabbix-java-gateway start
複制代碼
           

驗證連接配接是否成功

ss -tunlp|grep 10052
複制代碼
           

修改 zabbix-server 配置檔案并重新開機

修改 zabbix-server 的配置,編輯/etc/zabbix/zabbix_server.conf

# JavaGateway的伺服器IP位址
JavaGateway=127.0.0.1
# JavaGateway的服務端口
JavaGatewayPort=10052
# 從javaGateway采集資料的程序數
StartJavaPollers=5
複制代碼
           

修改完成後,重新開機 zabbix-server。

service zabbix-server restart
複制代碼
           

注意:Zabbix Server/Proxy 中的 StartJavaPollers 要小于等于 Zabbix Java GateWay 配置檔案中的 START_POLLERS。

用戶端配置

添加 tomcat 中 JMX 參數

編輯 bin 目錄下 catalina.sh,給 CATALINA_OPTS 添加以下變量:

CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
複制代碼
           

重新開機 tomcat

./shutdown.sh
./startup.sh
複制代碼
           

驗證是否啟動 jmx 監聽

lsof -i:12345
#輸出
[email protected]:~# lsof -i:12345
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    14707 root   30u  IPv6 7816456      0t0  TCP *:12345 (LISTEN)
複制代碼
           

使用三方工具測試

下載下傳 jmxcmd.jar

#wget http://nchc.dl.sourceforge.net/project/jmxcmd/jmxcmd.jar
複制代碼
           

測試

 java -jar jmxcmd.jar - yourip:12345 java.lang:type=Memory NonHeapMemoryUsage
#輸出
07/20/2018 05:30:15 +0000 de.layereight.jmxcmd.Client NonHeapMemoryUsage: 
committed: 44761088
init: 2555904
max: -1
used: 43533776
複制代碼
           

也可以使用 Windows java 性能分析工具 jconsole。

如果 jconsole 無法連接配接,可能是 Linux 上 JVM 給 jconsole 的RMI配置檔案不對,把上面 catalina.sh 中配置的

-Djava.rmi.server.hostname=127.0.0.1

改為真實 ip。

配置監視主機

在 zabbix 中建立主機

添加模闆

然後就可以監測到 tomcat 運作時的資料。

當然也可以導入自定義的模闆,這裡提供一個自定義模闆。

版權聲明:尊重部落客原創文章,轉載請注明出處 http://ietftech.com