Zabbbix 监控 tomcat

本贴最后更新于 2078 天前,其中的信息可能已经时移世异

我的服务器是 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 -tunplnetstat -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 zabbix@localhost 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
#输出
root@vultr:~# 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 运行时的数据。

当然也可以导入自定义的模板,这里提供一个自定义模板

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3165 引用 • 8206 回帖 • 1 关注
  • Zabbix
    40 引用 • 20 回帖
  • 监控
    26 引用 • 33 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...