zabbix监控JAVA程序JVM
在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采
集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据
Zabbix数据收集器
zabbix-agent
zabbix-java-gateway
Prometheus 监控程序:
cAdvisor:收集容器内部数据
node_exporter:收集宿主机数据
pushgateway:自定义监控
实践环境
操作系统 | 架构 | 角色 | IP 地址 |
---|---|---|---|
CentOS 7.9 | x86_64 | Zabbix-Server | 10.0.0.71 |
CentOS 7.9 | x86_64 | Zabbix-java-gateway | 10.0.0.9 |
# 1.安装java程序
[root@web03 ~]# yum install -y tomcat
# 2.安装java数据收集器zabbix-java-gateway
[root@web03 ~]# rpm -ivh
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-java-
gateway-5.0.36-1.el7.x86_64.rpm
# 3.启动
[root@web03 ~]# systemctl start zabbix-java-gateway
# 4.修改zabbix-server配置文件
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
// zabbix-java-gateway的主机地址,zabbix-server主动找gateway获取java数据
JavaGateway=172.16.1.9
// zabbix-java-gateway的端口
JavaGatewayPort=10052
// fork出来指定的子进程数量
StartJavaPollers=5
# 5.重启zabbix-server
[root@zabbix-server ~]# systemctl restart zabbix-server
# 6.修改tomcat脚本
[root@web03 ~]# vim /usr/libexec/tomcat/server
#!/bin/bash
. /usr/libexec/tomcat/preamble
MAIN_CLASS=org.apache.catalina.startup.Bootstrap
FLAGS="$JAVA_OPTS"
OPTIONS="-Dcatalina.base=$CATALINA_BASE \
-Dcatalina.home=$CATALINA_HOME \
-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \
-Djava.io.tmpdir=$CATALINA_TMPDIR \
-Djava.util.logging.config.file=${LOGGING_PROPERTIES} \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=172.16.1.9"
if [ "$1" = "start" ] ; then
FLAGS="${FLAGS} $CATALINA_OPTS"
if [ "${SECURITY_MANAGER}" = "true" ] ; then
OPTIONS="${OPTIONS} \
-Djava.security.manager \
-Djava.security.policy==${CATALINA_BASE}/conf/catalina.policy"
fi
run start
elif [ "$1" = "stop" ] ; then
run stop
fi
#jvm配置文件解释
CATALINA_OPTS="$CATALINA_OPTS
//启用远程监控JMX
-Dcom.sun.management.jmxremote
//jmx启用远程端口,Zabbix添加时必须一致
-Dcom.sun.management.jmxremote.port=12345
//不开启用户密码认证
-Dcom.sun.management.jmxremote.authenticate=false
//不启用ssl加密传输
-Dcom.sun.management.jmxremote.ssl=false
//运行tomcat主机的IP地址
-Djava.rmi.server.hostname=10.0.0.7"
[root@zabbix-server ~]# zabbix_server -R config_cache_reload 是用于重新加载 Zabbix 服务器的配置缓存
配置Java-gateway关联tomcat 12345端口
Web监测
Web场景监测概述
Web网站中什么是动态网站,什么是静态网站
静态网站:纯静态网站就是服务器的源代码和客户端的源代码一致。
动态网站:比如: <?php phpinfo()?> 每次用户访问的时候,内容都是在内存中动态生成的。动态网站支持登陆,支持用户交互,所以用户在请求动态网站时,会给客户端下发一个叫sessionID的内容,那么客户端则会将SessionID保存至浏览器的cookie中。
当用户访问Web网站时,session和cookie是如何进行工作的
- 当用户首次访问动态网站时,是不会携带cookie信息,那么在服务端返回网页的时候,会给该客
户端的浏览器分配一个唯一的sessionID,客户端会该sessionID存储至浏览器的Cookie中。 - 当用户再次访问网站时,浏览器会在Header头信息添加Set-Cookie,Set-Cookie携带的则是该网
站对应的sessionID信息,服务端接收后会进行校验
使用curl命令模拟网站登录
# 1.保存cookie
[root@zabbix-server ~]# curl -L -c cook -b cook http://zabbix.driverzeng.com/index.php
# 2.携带cookie和登录信息参数,访问zabbix页面
[root@zabbix-server ~]# curl -L -c cook -b cook -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' http://zabbix.driverzeng.com/index.php
# 3.访问任何页面只需要,携带session去访问
[root@zabbix-server ~]# curl -L -c cook -b cook http://zabbix.driverzeng.com/zabbix.php?action=host.view
Web监测(5.0)
创建web场景
字段可以通过F12找到
{sid} regex:name="csrf-token" content="([0-9a-z]{16})
## 3.0要用 regex:name="sid" value="([0-9a-z]{16})"
## 3.0前后端不分离5.0前后端分离
sid变量也可以通过F12找到(每个服务变量不同)
web检测wordpress
# 1.保存cookie
[root@web01 ~]# curl -L -c cook -b cook https://www.wodeyumengouwo.com/wp-login.php
# 2.携带cookie和登录信息参数,访问wordpress页面
[root@web01 ~]# curl -L -c cook -b cook -d 'log=yyds&pwd=123&wp-submit=登录&testcookie=1' https://www.wodeyumengouwo.com/wp-login.php
{_wpnonce} regex:name="_wpnonce" value="([0-9a-z]{10})
Comments | NOTHING