通过zabbix自动发现Tomcat服务端口

Tomcat端口自动发现

原理:通过shell脚本转出本机的端口,通过zabbix discovery自动匹配过滤Tomcat常用的端口。

脚本tomcat_port.sh

#!/bin/bash
portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {‘print $4‘}|awk -F‘:‘ ‘{if ($NF~/^[0-9]*$/) print $NF}‘|sort|uniq`)
length=${#portarray[@]}
printf "{\n"
printf  ‘\t‘"\"data\":["
for ((i=0;i<$length;i++))
  do
     printf ‘\n\t\t{‘
     printf "\"{#TOMCAT_PORT}\":\"${portarray[$i]}\"}"
     if [ $i -lt $[$length-1] ];then
                printf ‘,‘
     fi
  done
printf  "\n\t]\n"
printf "}\n"

脚本的执行结果:

sh tomcat_port.sh
{
"data":[
{"{#TOMCAT_PORT}":"10050"},
{"{#TOMCAT_PORT}":"10051"},
{"{#TOMCAT_PORT}":"10052"},
{"{#TOMCAT_PORT}":"25"},
{"{#TOMCAT_PORT}":"60022"},
{"{#TOMCAT_PORT}":"80"},
{"{#TOMCAT_PORT}":"9000"}
]
}

赋予脚本可执行权限:

chmod a+x tomcat_port.sh
cp tomcat_port.sh   /usr/local/zabbix/share/zabbix/alertscripts/

zabbix_agentd.conf文件添加此行:

UserParameter=tomcat_port,/usr/local/zabbix/share/zabbix/alertscripts/tomcat_port.sh $1

重启zabbix agent服务:

/etc/init.d/zabbix_agentd restart

zabbix web端配置如下,配置一个自动发现模板

添加应用集:

添加自动发现规则:

添加正则匹配名称:

定义监控项,key键值写脚本里的名称:

触发器触发报警的条件:

定义tomcat的自动发现规则正则:

正则匹配测试:

重启好agent可以查看最新数据的返回值:

为了防止过多的机器执行脚本,zabbix server主动抓取给server端造成负载过高、线程忙碌的情况,建议自定义的key都是用agent active模式。

zabbix Tomcat discovery模板附件下载

时间: 2024-10-12 23:35:54

通过zabbix自动发现Tomcat服务端口的相关文章

zabbix 自动发现tomcat的war包并实现监控

公司有巨量的tomcat服务器,每台机器上面有好几个tomcat, 路径用后缀数字区别, 例如 /usr/local/dir_samba/apache-tomcat-7.0.64-0/webapps 表示8080端口的tomcat 每个tomtcat对应一个端口,每个tomcat都有若干的war包(应用)以下描述用zabbix自动去扫描发现每个tomcat上的war,并自动添加为监控的过程 #!/bin/bash findtomcatwar() { printf '{\n' printf '\t

zabbix通过自动发现tomcat应用端口监控连接数

192.168.10.98上 netstat -anp | wc -l netstat -anp|grep 8094 | grep ESTABLISHED | wc -l netstat -anp|grep 8094 | wc -l 192.168.10.99或者101上 netstat -anp|grep 3306 | wc -l netstat -anp|grep 192.168.10.99 | wc -l

zabbix自动发现监控tomcat健康页面

一.背景 公司系统平台有10几个tomcat服务,由于需要服务保持全年无间断服务,特在tomcat中嵌入专门的监控页面,在curl 专用页面返回值为200时,则认定服务正常运行,否则报警发送专门的监控运维的邮箱. 二.原理 正常的tomcat健康状态监控页面如下图 我们利用如下命令判断返回值是否为200 shell>/usr/bin/curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' http://10.0.0.107:9100/

zabbix自动发现端口并添加监控

说明:zabbix2.0以上之持了discovery功能,该discover并不是之前的 Actions中的discovery,zabbix官方是通过该discovery自动来发现服务的分区.网卡等,这些不固定的因素监控.写了一个自动发现服务器listening端口的discovery脚本,这样就会定期扫描服务器上监听的端口,自动增加端口.删除端口的监控 一.编写tcp监听端口的shell脚本: vim discovertcpport.sh #!/bin/bash portarray=(`net

zabbix自动发现使用中端口并图形展示各个端口连接数

zabbix自动发现当前服务器使用中的端口并图形展示各个端口连接数 1.修改配置文件 vi /data/server/zabbix_agent/conf/zabbix_agentd.conf UserParameter=tcp.port.discovery,/data/server/zabbix/bin/discover_tcp_port_count tcp_port_discovery UserParameter=tcp.port.count[*],/data/server/zabbix/bi

zabbix自动发现网络节点

zabbix自动发现网络,大大的降低人工操作,分分钟钟就可以监控n台主机节点. 1.创建自动发现规则,示例如下. Configuration >>Discovery>>Create rule,新建网络发现规则 上面规则的意思是每60秒扫描ip范围为192.168.75.136-200的地址,以ip地址为唯一的标识. 规则属性  属性 描述 Name 规则名称,唯一  Discovery by proxy    谁执行当前发现规则:no proxy - zabbix server&l

zabbix专题:第九章 zabbix自动发现功能详解

zabbix自动发现功能详解 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.co zabbix自动发现功能详解 网络发现简介 有100台服务器,不想一台台主机去添加,能不能让zabbix自动添加主机呢,当然可以,网络发现便是这个功能,当然前提条件是所有服务器都已经安装了agent或者snmp(其实也可以不用,鉴于我们大部分功能都用agent,所以请安装上agent),server扫描配置好的ip段,自动添加ho

zabbix自动发现监控mongo

1: zabbix自动发现mongo监控的端口,并返回zabbix_server需要的格式,脚本部署在zabbix_agent上,路径为/usr/local/zabbix/zabbix_discover_mongo.sh,脚本内容如下: #!/bin/sh #zhuangweihong 20160419 zabbix discover mysql res=`sudo ss -tulnp|grep mongo|grep -v 28107|awk '{print $(NF-2)}'|awk -F':

zabbix自动发现与监控内存和CPU使用率最高的进程

监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用zabbix监控系统的自动发现功能,首先编写shell脚本获取服务器的CPU和内存资源使用率最大的进程,以json的格式输出,然后对这些进程的CPU和内存资源使用情况进行监控.(本文监控的进程为Linux服务器中资源使用率最高的10个进程.) 缺点 不适用于监控固定的进程 首先使用top命令查看进程状态