我的服务器是 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 运行时的数据。
当然也可以导入自定义的模板,这里提供一个自定义模板。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于