zabbix深入监控

zabbix深入监控

第1章 Grafana自定义图形

1.安装grafana

清华源下载grafana rpm包

[root@zabbix ~]# date
Fri Dec 20 11:54:19 CST 2019
[root@zabbix ~]# yum localinstall grafana-6.5.2-1.x86_64.rpm 
[root@zabbix ~]# systemctl start grafana-server.service 
[root@zabbix ~]# systemctl enable grafana-server.service

访问grafana:http://10.0.0.71:3000
账号密码:admin admin

新密码我设置成123456

img

安装zabbix插件,启动插件

[root@zabbix ~]# grafana-cli plugins list-remote|grep zabbix
id: alexanderzobnin-zabbix-app version: 3.10.4
[root@zabbix ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.10.4
from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.10.4/download
into: /var/lib/grafana/plugins
也可以输入这个网址把包下载下来 拖入他给你的这个目录里解压
[root@zabbix ~]# systemctl restart grafana-server.service

网页操作-激活zabbix插件

img

网页操作-添加zabbix数据源

img

img

img

http://localhost/zabbix/api_jsonrpc.php

Admin

zabbix

网页操作-导入模版

img

数据展示:

img

2.自定义图形仪表盘

3.自定义图形饼图

1.安装插件

在线安装方式

grafana-cli plugins install grafana-piechart-panel

离线安装方式

wget -nv https://grafana.com/api/plugins/grafana-piechart-panel/versions/latest/download -O /tmp/grafana-piechart-panel.zip
unzip -q /tmp/grafana-piechart-panel.zip -d /tmp
mv /tmp/grafana-piechart-panel-* /var/lib/grafana/plugins/grafana-piechart-panel
service grafana-server restart

2.配置图形

第2章 percona模版监控mysql

参考强哥的博客

https://www.qstack.com.cn/archives/213.html

0.自定义监控项步骤:

1.找到取值的命令或者脚本
2.写自定义监控项配置文件
3.重启并测试
4.web页面添加监控项内容

percona :

强大的工具,所有的监控项(190多个)都是配好的 直接拖下来导入模板用就行

上述监控步骤 前两步都不需要我们自己做 percona自带命令脚本和配置文件 你只需要做第三步就可以

1.安装php环境

percona的监控插件是php编写的。通过php连接mysql来获取相关的数据,所以需要你在本地安装zabbix agent的同时,部署php和php-mysql。

[root@zabbix ~]# yum install php php-mysql -y

2.下载软件

img

img

# 可以直接rpm接连接下载
[root@zabbix ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm

# 也可以拖进去下载 注意脚本位置
[root@zabbix ~]# ll
-rw-r--r--  1 root root    28296 Dec 21 20:34 percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@zabbix ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 

# 安装完成后会提示有2个目录
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates

3.查看目录

进入安装目录会发现有2个目录,一个是脚本目录,一个是模版目录

[root@zabbix ~]# cd /var/lib/zabbix/percona/
[root@zabbix /var/lib/zabbix/percona]# tree
.
├── scripts
│   ├── get_mysql_stats_wrapper.sh
│   └── ss_get_mysql_stats.php
└── templates
    ├── userparameter_percona_mysql.conf
    └── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml

其中脚本目录里有2个脚本,用来获取数据库信息

[root@zabbix /var/lib/zabbix/percona]# cd scripts/
[root@zabbix /var/lib/zabbix/percona/scripts]# ls
get_mysql_stats_wrapper.sh  (这个脚本去过滤这个值)
ss_get_mysql_stats.php  (这个脚本去mysql取状态值 会临时生成状态文件)

4.修改get_mysql_stats_wrapper.sh

修改get_mysql_stats_wrapper数据库登陆信息
第19行添加mysql账号密码

[root@zabbix /var/lib/zabbix/percona/scripts]# sed -n '19p' get_mysql_stats_wrapper.sh 
    RES=`HOME=~zabbix mysql -uroot -p123 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' 

5.修改ss_get_mysql_stats.php

[root@zabbix /var/lib/zabbix/percona/scripts]# vim ss_get_mysql_stats.php 
$mysql_user = 'root';
$mysql_pass = '123';

6.复制自定义监控项配置文件到zabbix目录

[root@zabbix ~]# cd /var/lib/zabbix/percona/templates/
[root@zabbix /var/lib/zabbix/percona/templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@zabbix /var/lib/zabbix/percona/templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix /etc/zabbix/zabbix_agentd.d]# ls
userparameter_mysql.conf  userparameter_percona_mysql.conf

7.重启agent

[root@zabbix ~]# systemctl restart zabbix-agent 
[root@git_web01 ~]# systemctl restart zabbix-agent.service

8.查看自定义的key

[root@zabbix /etc/zabbix/zabbix_agentd.d]# tail -3 /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
UserParameter=MySQL.Open-files,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ij
UserParameter=MySQL.State-closing-tables,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh lq
UserParameter=MySQL.running-slave,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave

9.测试key

[root@zabbix ~]# zabbix_get -s 127.0.0.1 -k MySQL.Sort-scan
16
[root@zabbix ~]#  zabbix_get -s 127.0.0.1 -k MySQL.innodb-lock-structs
0

//如果获取不到值常见问题
1.看是否是MySQL密码错误
2.不要直接执行脚本来获取
3.删除/tmp/localhost-mysql_cacti_stats.txt文件
4.权限问题导致
   
#这个值是哪来的?

10.导入模版

官方自带的模版有点问题,版本太低了,需要先装在2.x版本然后导出来,这里使用网友已经修改好的模版上传

http://pan.baidu.com/s/1pL1wDYj

img

10.主机链接模版

img

11.报错解决

查看监控发现没有数据显示不支持类型
查看zabbix-server发现因为tmp的文件没有权限,因为刚才手动执行了脚本,所以文件属性是root,将文件删除后由zabbix自己创建解决问题
报错日志如下:

2846:20190811:202708.785 item "Zabbix server:MySQL.State-init" became not supported: Value "rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
0" of type "string" is not suitable for value type "Numeric (float)"
  2843:20190811:202709.787 item "Zabbix server:MySQL.State-locked" became not supported: Value "rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
0" of type "string" is not suitable for value type "Numeric (float)"
  2844:20190811:202710.788 item "Zabbix server:MySQL.State-login" became not supported: Value "rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
0" of type "string" is not suitable for value type "Numeric (float)"

第3章 自定义模版监控nginx状态

打开一个网页 36次请求

http 1.0 短链接(36次文件的握手 36次文件回收 36次中间的下载)

http 1.1 长链接(第一次握手 下载36中间文件 最后一个次挥手)

1.开启监控页面并访问测试

[root@git_web01 ~]# cat /etc/nginx/nginx.conf
server {
   listen 80;
   server_name localhost;
   location /nginx_status {
       stub_status on;
       access_log off;
   }
}

[root@git_web01 ~]# curl 127.0.0.1/nginx_status/
Active connections: 1 【重要监控这个 当前访问 可以看到现在有多少人在访问你的nginx】
server accepts handled requests
 6 6 6 (接收请求6 正在处理6 总共6)
Reading: 0 Writing: 1 Waiting: 0 

2.准备nginx监控状态脚本

[root@git_web01 /etc/zabbix/zabbix_agentd.d]# cat nginx_monitor.sh 
#!/bin/bash
NGINX_COMMAND=$1
CACHEFILE="/tmp/nginx_status.txt"
CMD="/usr/bin/curl http://127.0.0.1/nginx_status/"
if [ ! -f $CACHEFILE  ];then
   $CMD >$CACHEFILE 2>/dev/null
fi
# Check and run the script
TIMEFLM=`stat -c %Y $CACHEFILE`
TIMENOW=`date +%s`

if [ `expr $TIMENOW - $TIMEFLM` -gt 60 ]; then
    rm -f $CACHEFILE
fi
if [ ! -f $CACHEFILE  ];then
   $CMD >$CACHEFILE 2>/dev/null
fi

nginx_active(){
         grep 'Active' $CACHEFILE| awk '{print $NF}'
         exit 0;
}
nginx_reading(){
         grep 'Reading' $CACHEFILE| awk '{print $2}'
         exit 0;
}
nginx_writing(){
         grep 'Writing' $CACHEFILE | awk '{print $4}'
         exit 0;
}
nginx_waiting(){
         grep 'Waiting' $CACHEFILE| awk '{print $6}'
         exit 0;
}
nginx_accepts(){
         awk NR==3 $CACHEFILE| awk '{print $1}' 
         exit 0;
}
nginx_handled(){
         awk NR==3 $CACHEFILE| awk '{print $2}' 
         exit 0;
}
nginx_requests(){
         awk NR==3 $CACHEFILE| awk '{print $3}'
         exit 0;
}

case $NGINX_COMMAND in
    active)
        nginx_active;
        ;;
    reading)
        nginx_reading;
        ;;
    writing)
        nginx_writing;
        ;;
    waiting)
        nginx_waiting;
        ;;
    accepts)
        nginx_accepts;
        ;;
    handled)
        nginx_handled;
        ;;
    requests)
        nginx_requests;
        ;;
    *)
echo 'Invalid credentials';
exit 2;
esac

3.编写zabbix监控配置文件

[root@git_web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/bin/bash /server/scripts/nginx_monitor.sh $1

[root@git_web01 ~]# systemctl restart zabbix-agent.service

4.使用zabbix_get取值

[root@zabbix ~]# zabbix_get -s 10.0.0.7 -k nginx_status[accepts]
7

5.导入模版

zbx_nginx_template.xml

img

6.链接模版

7.查看数据

img

第4章 自定义模版监控php状态

1.开启监控页面

[root@git_web01 ~]# tail -1 /etc/php-fpm.d/www.conf    
pm.status_path = /php_status

[root@git_web01 ~]# cat /etc/nginx/conf.d/status.conf    
server {
   listen 80;
   server_name localhost;
   location /nginx_status {
       stub_status on;
       access_log off;
   }

   location /php_status {
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name;
       include fastcgi_params;
   }
}

[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 ~]# systemctl restart nginx.service php-fpm.service

2.访问测试

[root@git_web01 ~]# curl 127.0.0.1/php_status
pool:                 www
process manager:      dynamic
start time:           08/Aug/2019:22:31:27 +0800
start since:          37
accepted conn:        1
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       4
active processes:     1
total processes:      5
max active processes: 1
max children reached: 0
slow requests:        0

3.准备访问脚本

[root@git_web01 ~]# cat /etc/zabbix/zabbix_agentd.d/fpm.sh 
#!/bin/bash
##################################
# Zabbix monitoring script
#
# php-fpm:
#  - anything available via FPM status page
#
##################################
# Contact:
#  vincent.viallet@gmail.com
##################################
# ChangeLog:
#  20100922     VV      initial creation
##################################

# Zabbix requested parameter
ZBX_REQ_DATA="$1"
ZBX_REQ_DATA_URL="$2"

# Nginx defaults
NGINX_STATUS_DEFAULT_URL="http://localhost/fpm/status"
WGET_BIN="/usr/bin/wget"

#
# Error handling:
#  - need to be displayable in Zabbix (avoid NOT_SUPPORTED)
#  - items need to be of type "float" (allow negative + float)
#
ERROR_NO_ACCESS_FILE="-0.91"
ERROR_NO_ACCESS="-0.92"
ERROR_WRONG_PARAM="-0.93"
ERROR_DATA="-0.94" # either can not connect /   bad host / bad port

# Handle host and port if non-default
if [ ! -z "$ZBX_REQ_DATA_URL" ]; then
  URL="$ZBX_REQ_DATA_URL"
else
  URL="$NGINX_STATUS_DEFAULT_URL"
fi

# save the nginx stats in a variable for future parsing
NGINX_STATS=$($WGET_BIN -q $URL -O - 2>/dev/null)

# error during retrieve
if [ $? -ne 0 -o -z "$NGINX_STATS" ]; then
  echo $ERROR_DATA
  exit 1
fi

# 
# Extract data from nginx stats
#
#RESULT=$(echo "$NGINX_STATS" | awk 'print $0;match($0, "^'"$ZBX_REQ_DATA"':[[:space:]]+(.*)", a) { print a[1] }')
#RESULT=$(echo "$NGINX_STATS" | grep "$ZBX_REQ_DATA" | awk -F : '{print $2}')
RESULT=$(echo "$NGINX_STATS" | awk -F : "{if(\$1==\"$ZBX_REQ_DATA\") print \$2}")
if [ $? -ne 0 -o -z "$RESULT" ]; then
    echo $ERROR_WRONG_PARAM
    exit 1
fi

echo $RESULT

exit 0

[root@git_web01 ~]# bash /etc/zabbix/zabbix_agentd.d/fpm.sh "total processes" http://127.0.0.1/php_status
5

4.准备zabbix配置文件

[root@git_web01 ~]# cat /etc/zabbix/zabbix_agentd.d/fpm.conf    
UserParameter=php-fpm[*],/etc/zabbix/zabbix_agentd.d/fpm.sh "$1" "$2"
[root@git_web01 ~]# systemctl restart zabbix-agent.service

4.使用zabbix_get取值

[root@zabbix ~]# zabbix_get -s 10.0.1.7 -k php-fpm["total processes",http://127.0.0.1/php_status]
5

5.导入模版

导入之后需要修改一下模版里的宏配置

img

第5章 zabbix监控redis

redis使用自带的INFO命令进行状态监控。以一种易于解释且易于阅读的格式,返回关于redis服务器的各种信息和统计数值。

1.编写shell脚本

脚本端口,连接redis服务地址根据具体情况修改

AUTH认证没有开启,将PASSWORD修改为空即可。

[root@git_web01 ~]# mkdir -p  /etc/zabbix/scripts
[root@git_web01 ~]# vim /etc/zabbix/scripts/redis_status.sh
#!/bin/bash
R_COMMAND="$1"
R_PORT="6379"  #根据实际情况调整端口
R_SERVER="127.0.0.1"  #根据具体情况调整IP地址
PASSWD=""    #如果没有设置Redis密码,为空即可


redis_status(){
   (echo -en "AUTH $PASSWD\r\nINFO\r\n";sleep 1;) | /usr/bin/nc "$R_SERVER" "$R_PORT" > /tmp/redis_"$R_PORT".tmp
      REDIS_STAT_VALUE=$(grep "$R_COMMAND:" /tmp/redis_"$R_PORT".tmp | cut -d ':' -f2)
       echo "$REDIS_STAT_VALUE"
}

case $R_COMMAND in
    used_cpu_user_children)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    used_cpu_sys)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    total_commands_processed)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    role)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    lru_clock)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    latest_fork_usec)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    keyspace_misses)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    keyspace_hits)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    keys)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    expires)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    expired_keys)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    evicted_keys)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    connected_clients)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    changes_since_last_save)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    blocked_clients)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    bgsave_in_progress)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    bgrewriteaof_in_progress)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    used_memory_peak)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    used_memory)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    used_cpu_user)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    used_cpu_sys_children)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    total_connections_received)
    redis_status "$R_PORT" "$R_COMMAND"
    ;;
    *)
    echo $"USAGE:$0 {used_cpu_user_children|used_cpu_sys|total_commands_processed|role|lru_clock|latest_fork_usec|keyspace_misses|keyspace_hits|keys|expires|expired_keys|connected_clients|changes_since_last_save|blocked_clients|bgrewriteaof_in_progress|used_memory_peak|used_memory|used_cpu_user|used_cpu_sys_children|total_connections_received}"
    esac

2.redis状态参数解释:

server : Redis 服务器信息,包含以下域:
redis_version : Redis 服务器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服务器的宿主操作系统
arch_bits : 架构(32 或 64 位)
multiplexing_api : Redis 所使用的事件处理机制
gcc_version : 编译 Redis 时所使用的 GCC 版本
process_id : 服务器进程的 PID
run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port : TCP/IP 监听端口
uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数
uptime_in_days : 自 Redis 服务器启动以来,经过的天数
lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理
clients : 已连接客户端信息,包含以下域:
connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list : 当前连接的客户端当中,最长的输出列表
client_longest_input_buf : 当前连接的客户端当中,最大输入缓存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
memory : 内存信息,包含以下域:
used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量
used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_peak : Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值
used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息
参数还可以是下面这两个:
all : 返回所有信息
default : 返回默认选择的信息
当不带参数直接调用 INFO 命令时,使用 default 作为默认参数。

3.添加脚本执行权限

[root@git_web01 ~]# chmod +x /etc/zabbix/scripts/redis_status.sh

4.zabbix权限不足解决

[root@git_web01 ~]# rm -f /tmp/redis_6379.tmp

5.key的redis_status.conf的配置文件如下:

[root@git_web01 ~]# cat /etc/zabbix/zabbix_agentd.d/redis_status.conf
UserParameter=redis_status[*],/bin/bash /etc/zabbix/scripts/redis_status.sh "$1" 

6.重启

[root@git_web01 ~]# systemctl restart  zabbix-agent

7.在服务端获取值

[root@zabbix ~]# zabbix_get -s 10.0.0.7 -k redis_status[used_cpu_sys]
16.81

8.显示所有key(记得关联模板)

第6章 Zabbix监控JMX

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据

JMX在Zabbix中的运行流程:

1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
2.Zabbix-Java-Gateway找Java程序(zabbix-agent)获取数据
3.Java程序返回数据给Zabbix-Java-Gateway
4.Zabbix-Java-Gateway返回数据给Zabbix-Server
5.Zabbix-Server进行数据展示

配置JMX监控的步骤:

1.安装Zabbix-Java-Gateway。
2.配置zabbix_java_gateway.conf参数。
3.配置zabbix-server.conf参数。
4.Tomcat应用开启JMX协议。
5.ZabbixWeb配置JMX监控的Java应用。

实践环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 10.0.0.71
CentOS 7.4 x86_64 Zabbix-java-gateway 10.0.0.7
CentOS 7.4 x86_64 Zabbix-Agent 10.0.0.8

1.安装java以及zabbix-java-gateway (如果源码安装加上--enable-java参数)

//安装java-gateway
[root@zabbix ~]# yum install  zabbix-java-gateway java-1.8.0-openjdk -y

2.配置zabbix-java-gateway

[root@zabbix ~]# vim /etc/zabbix/zabbix_java_gateway.conf

3.启动zabbix-java-gateway

[root@zabbix ~]# systemctl start zabbix-java-gateway
[root@zabbix ~]# netstat -lntup|grep 10052
tcp6       0      0 :::10052                :::*                    LISTEN      13042/java

4.修改zabbix-server 配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
#java gateway地址
JavaGateway=192.168.90.11  
#java gateway默认端口10052
JavaGatewayPort=10052
#启动进程轮询java gateway
StartJavaPollers=5

5.重启zabbix-server

[root@zabbix ~]# systemctl restart zabbix-server

6.安装tomcat服务

[root@zabbix ~]# mkdir /soft/package/src -p
[root@zabbix ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz
[root@zabbix ~]# tar xf apache-tomcat-9.0.2.tar.gz -C /soft/
[root@zabbix ~]# ln -s /soft/apache-tomcat-9.0.2/ /soft/tomcat

7.开启tomcat的远程jvm配置文件

[root@zabbix ~]# vim /usr/local/tomcat/bin/catalina.sh
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=192.168.90.11"


#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=192.168.90.11"

7.重启tomcat服务

[root@zabbix ~]# /usr/local/tomcat/bin/shutdown.sh
[root@zabbix ~]# /usr/local/tomcat/bin/startup.sh

8.zabbix添加tomcat主机,并添加Zabbix自带java监控模板

img

img

img

9.自带的监控可能无法满足企业需求,大家可以根据公司的业务定制不同的JVM监控模板。

posted @ 2019-12-24 13:35  干瘪的柠檬  阅读(344)  评论(0)    收藏  举报