标签归档:Zabbix Java gateway

Zabbix Server 5 一键安装脚本

Zabbix Server Web依赖环境基于ILNMP而成,具备ILNMP一键安装脚本的所有特性。若需要了解MySQL/MariaDB/Nginx/PHP安装配置信息,请参阅《ILNMP》。

脚本属性

  • 长期维护,支持定制化;
  • 支持 Zabbix Server 5 + 系列版本;
  • 交互式进行,支持依赖环境的多版本;
  • 支持 CentOS 7 ~ 8 与 Redhat 7 ~ 8 x86_64 bit 系统;
  • 默认安装(Nginx 1.19.1 PHP 7.4.8/MariaDB 10.5.4/Zabbix 5.0.1/phpMyAdmin 5)可根据需要修改脚本中的版本号(必须是官方已知版本)后再安装。

如何安装

curl -O https://renwole.com/sh/install_zabbix.sh
bash install_zabbix.sh

说明:脚本执行安装成功后会生成对应的root/Zabbix数据库及账号/密码信息打印在当前屏幕。安装完成后,请参阅以下信息管理Zabbix监控系统:

  • Zabbix UI入口:http://IP/ui
  • Zabbix管理平台账号密码:Admin/zabbix
  • Zabbix数据库/账号/密码:zabbix/zabbix/zabbix

脚本支持模块

模块名描述
enable-server启用Zabbix Server
enable-agent启用Zabbix agent
enable-proxy启用Zabbix proxy可代理采集数据,从而分担单个 Zabbix server 的负载
enable-ipv6启用对IPV6协议的支持
enable-java启用Zabbix Java gateway以支持监控 JMX 应用程序
with-mysql启用MySQL做为后端存储数据库
with-iconv启用转码,例如GBK转UTF-8,防止乱码
with-libcurl启用Web监控、VMware监控以及SMTP(邮件发送)需要的组件
with-libxml2启用VMware监控所需组件
with-ssh2SSH检查是作为无代理程序监视执行的。SSH检查不需要Zabbix Agent
with-openipmi启用IPMI协议监控服务器温度、风扇转速等
with-net-snmp启用SNMP协议监控打印机、路由器、UPS等设备
以上模块在编译安装zabbix中已自动添加开启。

应用安装目录

路径说明
/apps/server所有ILNMP应用安装及数据存储目录
/apps/server/zabbixZabbix Server监控安装目录
/apps/server/zabbix/etcZabbix Server配置文件所在目录

Zabbix 3.4 JMX 监控 Tomcat 性能

先决条件:

Zabbix Servers 3.4 源代码编译安装
Linux Apache Tomcat 8.5 安装与配置

如果完成了以上安装的部署,继续下一步。

Zabbix服务器端配置:

1.配置 zabbix_server.conf

主要参数:

...
 #JavaGateway服务器地址,zabbix-server与zabbix_java_gateway在同台服务器。
 JavaGateway=10.10.204.62
 JavaGatewayPort=10052
 #设置javaGateway抓取数据的进程数,当设置为0时表示不具有抓取java信息的能力。
 StartJavaPollers=5
...

在Zabbix Servers安装过程中,以上参数我已经配置完成。

2.配置 Zabbix Java gateway

修改完成后的内容如下:

$ egrep -v '^#|^$' /usr/local/zabbix/sbin/zabbix_java/settings.sh

#Zabbix Servers IP
LISTEN_IP="0.0.0.0"
#Port
LISTEN_PORT=10052
#PID_FILE路径必须正确。
PID_FILE="/usr/local/zabbix/sbin/zabbix_java/zabbix_java.pid"
#START_POLLERS项是配置启动的进出数,若不配置 zabbix_java 依旧可以启动但无法抓取数据。
START_POLLERS=5
#网络超时时间。
TIMEOUT=3

3.启动 zabbix_java

$ /usr/local/zabbix/sbin/zabbix_java/startup.sh

启动后可通过 ss -ntlp 查看 10052 端口是否运行。

Zabbix Agent Tomcat 客户端配置:

1.在 catalina.sh文件 Execute The Requested Command 上行或最上面添加以下内容:

$ vim /usr/local/tomcat/bin/catalina.sh
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.10.204.65"

含义说明:

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote #启用JMX远程监控。
-Dcom.sun.management.jmxremote.ssl=false #是否使用SSL。
-Dcom.sun.management.jmxremote.authenticate=false #是否开启认证。
-Djava.rmi.server.hostname=10.10.204.65" #Tomcat所在服务器IP。

2.修改Tomcat server.xml 配置文件

在 <Server port=”8005″ shutdown=”SHUTDOWN”> 换行添加以下内容:

$ vim /usr/local/tomcat/conf/server.xml
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10053" rmiServerPortPlatform="10053"/>

3.重启 Tomcat 服务

$ systemctl restart tomcat

4.设置 Firewalld

$ firewall-cmd --zone=public --add-port=10053/tcp --permanent
$ firewall-cmd --reload

5.在 Zabbix server 检测数据

在zabbix 服务端使用 cmdline-jmxclient-0.10.3.jar 检测是否可以抓取数据

$ java -jar /tmp/cmdline-jmxclient-0.10.3.jar - 10.10.204.65:10053 java.lang:type=Memory NonHeapMemoryUsage
09/15/2017 19:06:49 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 33406976
init: 2555904
max: -1
used: 32079720

成功获取数据。

之后在zabbix web界面添加主机并链接模板即可。

Template App Apache Tomcat JMX
Template App Generic Java JMX

以上两个模板是系统默认的,添加即可,其中有一些参数不通用,需要手动修改。