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端口

image-20230817144513748

image-20230817144623095

image-20230817144658928

image-20230817144729465

image-20230817145812516

image-20230817151516730

image-20230817150028092

image-20230817151556890

image-20230817151758370

Web监测

Web场景监测概述
Web网站中什么是动态网站,什么是静态网站

静态网站:纯静态网站就是服务器的源代码和客户端的源代码一致。
动态网站:比如: <?php phpinfo()?> 每次用户访问的时候,内容都是在内存中动态生成的。动态网站支持登陆,支持用户交互,所以用户在请求动态网站时,会给客户端下发一个叫sessionID的内容,那么客户端则会将SessionID保存至浏览器的cookie中。

当用户访问Web网站时,session和cookie是如何进行工作的

  1. 当用户首次访问动态网站时,是不会携带cookie信息,那么在服务端返回网页的时候,会给该客
    户端的浏览器分配一个唯一的sessionID,客户端会该sessionID存储至浏览器的Cookie中。
  2. 当用户再次访问网站时,浏览器会在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场景

image-20230817152442129

image-20230817152453460

image-20230817152610593

image-20230817152642829

image-20230817153057783

image-20230817153130772

image-20230817153153721

image-20230817153350263

image-20230817153400846

字段可以通过F12找到

image-20230817153738519

image-20230817190034279

{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找到(每个服务变量不同)

image-20230817190237618

image-20230817153750985

image-20230817153811063

image-20230817153840891

image-20230817153845836

image-20230817154218716

image-20230817154014756

image-20230817154240353

image-20230817154246375

image-20230817154605009

image-20230817154457989

image-20230817154623407

image-20230817154629406

image-20230817154737555

image-20230817154749755

image-20230817154807323

image-20230817154815518

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

image-20230817180428380

{_wpnonce}   regex:name="_wpnonce" value="([0-9a-z]{10})

image-20230817180445632

image-20230817190503338

image-20230817190636466

image-20230817183120244

image-20230817181412257

image-20230817181422131

image-20230817181437884