我的服务器是 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 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 运行时的数据.
当然也可以导入自定义的模板, 这里提供一个自定义模板 http://pbzzkhjh1.bkt.clouddn.com/Tomcat模板.zip .
来源: https://juejin.im/post/5b519bafe51d4519575a232a