Zabbix应用监控及Web监控
zabbix监控java程序JVM
在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据
Zabbix数据收集器
zabbix-java-gateway
zabbix-agent
Pometheus 监控程序
角色 | IP |
---|---|
zabbix-server | 10.0.0.71 |
zabbix-java-gateway | 10.0.0.5 |
zabbix-agent | 10.0.0.5 |
# 安装java程序
[root@lb01 zabbix_agentd.d]# 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
# 启动java-geteway
[root@lb01 zabbix_agentd.d]# systemctl start zabbix-java-gateway
# 修改zabbix-server配置文件(10.0.0.71)
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
#java-gateway的主机地址,zabbix-server主动找gateway获取java数据
297 JavaGateway=172.16.1.5
#java-gateway默认端口10052
305 JavaGatewayPort=10052
#启动进程轮询java-gateway,fork出来指定的子进程数量
313 StartJavaPollers=5
# 重启zabbix-server(10.0.0.71)
[root@zabbix ~]# systemctl restart zabbix-server
开启tomcat的远程jvm配置文件
# 安装tomcat
yum install -y tomcat
# 修改tomcat启动脚本
[root@lb01 ~]# 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.5"
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
# 重启tomcat
systemctl restart tomcat
#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.5"
[root@lb01 init.d]# netstat -lntup
tcp6 0 0 :::12345 :::* LISTEN 63126/java
# 重新加载配置文件缓存
[root@zabbix-server ~]# zabbix_server -R config_cache_reload
web场景监控
Web网站中什么是动态网站,什么是静态网站
静态网站:纯静态网站就是服务器的源代码和客户端的源代码一致。
动态网站:比如: 每次用户访问的时候,内容都是在内存中动态生成的。动态网站支持登陆,支持用户交互,所以用户在请求动态网站时,会给客户端下发一个叫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://10.0.0.71:90/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://10.0.0.71:90/index.php
# 3.访问任何页面只需要,携带session去访问
[root@zabbix-server ~]# curl -L -c cook -b cook http://10.0.0.71:90/zabbix.php?action=dashboard.view
5.0web检测
创建web场景
填写web场景配置
配置访问网页步骤
配置登录网页步骤1
配置登录网页步骤2
# 3.4版本(前后端不分离)
{sid} regex:name="sid" value="([0-9a-z]{16})"
# 5.0版本(前后端分离)
{sid} regex:name="csrf-token" content="([0-9a-z]{16})"
配置检测是否登录步骤
配置退出页面步骤
配置检测是否退出步骤
配置完成
wordpress的web检测
收集场景配置(在登陆时打开F12,查看Network下的wp-login.php中的Payload)
使用curl命令模拟网站登录
# 1.保存cookie
[root@lb01 code]# curl -L -c cook -b cook http://10.0.0.5:8071/wp-login.php
# 2.携带cookie和登录信息参数,访问wordpress页面
[root@lb01 code]# curl -L -c cook -b cook -d 'log=admin&pwd=123&rememberme=forever&wp-submit=登录&redirect_to=http://10.0.0.5:8071/wp-admin/&testcookie=1' http://10.0.0.5:8071/wp-login.php
_wpnonce: 42a9aef5c8
{_wpnonce} regex:name="_wpnonce" value="([0-9a-z]{10})"
# 如果是域名访问的,请在/etc/hosts中进行域名解析
# 如果是购买的域名,请在网站上进行域名解析使其可以使用域名访问