Zabbix监控应用

一.监控tomcat

1.在tomcat服务器上安装zabbix-agent服务

[root@node2 etc]#vim  zabbix_agentd.conf
94 Server=192.168.240.13   #指向当前zabbix server
##### Passive checks related #被动检查相关配置### Option: ListenPort
ListenPort=10050 #监听端口  默认的无需修改119 StartAgents=3
#启动3个进程收集数据146 Hostname=192.168.240.11
#指定名称 一般使用 IP地址, 等会需要使用systemctl restart  zabbix-agent.service
systemctl status zabbix-agent.service 

2.修改配置文件

vim /usr/local/tomcat/bin/catalina.sh
#一般加在116行
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.240.11" systemctl restart   tomcat
systemctl status tomcat
ss -napt|grep 12345CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote                				#启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345     				#默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false 			#不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false					#不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" 						#tomcat主机自己的IP地址,不要写zabbix服务器的地址

3.通过jconsole 验证JMX数据

在windows安装windows版本的JDK,安装过程略,安装完成之后点击安装目录的jconsole.exe,比如C:\ProgramFiles\Java\jdk1.8.0_221\bin\jconsole.exe

4.配置zabbixserver

在主服务器上配置启动1javagateway

[root@localhost data]#vim /apps/zabbix_server/sbin/zabbix_java/settings.sh 
#不需要修改35 START_POLLERS=5  #启动5个线程去采集java数据
43 TIMEOUT=30       #一个数据的超时时间30s
[root@localhost data]#/apps/zabbix_server/sbin/zabbix_java/startup.sh 
# 启动服务
[root@localhost data]#ss -antp |grep 10052

配置zabbix-server对接java-gateway

[root@localhost data]#vim /apps/zabbix_server/etc/zabbix_server.conf
281 JavaGateway=192.168.240.13    #指明gateway地址
298 StartJavaPollers=5            #开启多少个进程去收集java服务器的信息289 JavaGatewayPort=10052         # 默认不用改systemctl restart zabbix-server
#快照起不来  重启机器   
#重启后不要忘记开启  javagateway/apps/zabbix_server/sbin/zabbix_server 
ss -natp |grep 10051

5.web页面配置

二.Zabbix监控TCP

TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务,TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失,并重新发送此数据。

在建立连接的时候,所谓的客户端与服务端是相对应的,即要看是谁主动连接的谁,如果A主动连接B那么A就是客户端而B是服务端,如果返过来B主动连接A,那么B就是客户端而A就成了服务端。

TCP端口连接的11种状态

  • CLOSED:端口默认是关闭状态。

  • LISTEN: 服务器程序开始监听一个端口,就是LISTEN状态。

  • SYN_RCVD:三次握手的第二次握手后的端口状态,是收到了客户端发送的SYN_SENT数据包之后的状态,这个状态很短暂,正常在服务器上是很少看到的,除非服务器故意不发送最后一次握手数据包,服务器返回给客户端SYN确认之后就会将在自己的端口置为SYN_RCVD。

  • SYN_SENT:SYN_SENT状态表示客户端已发送SYN=1的请求连接报文,发送之后客户端就会将自己的端口状态置为SYN_SENT。

  • ESTABLISHED:表示已经连接成功,客户端收到服务器的确认报文会回复服务器,然后就将端口置为ESTABLISHED,服务器第三次收到客户端的Ack确认就会将端口置为ESTABLISHED并开始传输数据。

  • FIN_WAIT_1:出现在主动关闭方,FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,当任意一方想主动关闭连接,向对方发送了FIN=1的断开连接请求报文,此时该SOCKET即 进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马 上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。

  • FIN_WAIT_2:出现在主动关闭方,当被动方回应FIN_WAIT_1的ACK报文后,则进入到FIN_WAIT_2状态

  • TIME_WAIT:出现在主动关闭方,表示收到了对方的FIN请求关闭报文,并发送出了ACK报文,就等2*MSL(MaxSegment Lifetime)后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。

  • CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的 ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什 么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报 文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。

  • CLOSE_WAIT: 表示在等待关闭端口,这种状态存在于被动关闭的一方。

  • LAST_ACK: 是被动关闭方在主动关闭一方在发送FIN报文后,最后等待对方的ACK报文,当再次收到ACK报文后,也即可以进入到CLOSED可用状态了。

自定义监控项

[root@localhost zabbix]# vim  /apps/zabbix/etc/zabbix_agentd.conf283 ### Option: UserParameter
284 #       User-defined parameter to monitor. There can be several user-defined parameters.
285 #       Format: UserParameter=<key>,<shell command>
286 #       See 'zabbix_agentd' directory for examples.
287 #
288 # Mandatory: no
289 # Default:
290 # UserParameter=UserParameter=test,/usr/bin/echo  hello
#修改290 行或者新加一行  命令最好绝对路径
systemctl restart   zabbix-agent.service 在主服务器验证
[root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test"
hello

添加脚本

vim  /apps/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Default:
# UserParameter=
UserParameter=test,/usr/bin/bash  /data/tcp.sh
systemctl restart   zabbix-agent.service vim tcp.sh
#!/bin/bash
echo 100

主服务器上测试

[root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test"
100

脚本传参数

[root@localhost data]# vim tcp.sh#!/bin/bash
echo $1[root@localhost zabbix]# vim  /apps/zabbix/etc/zabbix_agentd.conf
UserParameter=test[*],/usr/bin/bash  /data/tcp.sh $1

服务端测试

[root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test[20]"
20
[root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test[30]"
30

调用多个

vim tcp.sh
#!/bin/bash
echo $1  $2
vim  /apps/zabbix/etc/zabbix_agentd.conf
UserParameter=test[*],/usr/bin/bash  /data/tcp.sh $1 $2
systemctl restart   zabbix-agent.service服务端测试
/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test[30,300]"

脚本判断

vim tcp.sh
#!/bin/bash
num=$1
if [ $num == "cpu" ];thenecho 88
fivim  /apps/zabbix/etc/zabbix_agentd.conf
UserParameter=test[*],/usr/bin/bash  /data/tcp.sh $1 
systemctl restart   zabbix-agent.service服务端测试
/apps/zabbix_server/bin/zabbix_get -s 192.168.240.11 -p 10050 -k "test[cpu]"

监控tcp连接

准备脚本

#!/bin/bash
tcp_conn_status(){TCP_STAT=$1ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/tcp_conn.txtTCP_NUM=$(grep "$TCP_STAT" /tmp/tcp_conn.txt | cut -d ' ' -f2)if [ -z $TCP_NUM ];thenTCP_NUM=0fiecho $TCP_NUM
}main(){case $1 intcp_status)tcp_conn_status $2;;;esac
}main $1 $2bash tcp_status.sh  tcp_status ESTAB
bash tcp_status.sh  tcp_status TIME-WAIT
chmod +x  tcp_status.sh

测试脚本 

修改客户端配置文件

[root@localhost etc]# vim zabbix_agentd.conf
UserParameter=linux_tcp[*],/usr/bin/bash  /data/tcp.sh $1 $2systemctl restart   zabbix-agent.service 
systemctl status   zabbix-agent.service

在主服务器上验证

[root@localhost ~]#/apps/zabbix_server/bin/zabbix_get  -s 192.168.240.11 -p 10050 -k "linux_tcp_status["tcp_status","TIME-WAIT"]"[root@localhost ~]#/apps/zabbix_server/bin/zabbix_get  -s 192.168.240.11 -p 10050 -k "linux_tcp_status["tcp_status","ESTAB"]"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SPF配置教程:如何安全构建邮件发送策略?

SPF配置教程的步骤详解&#xff01;SPF记录配置方法策略有哪些&#xff1f; SPF通过允许域名所有者指定哪些主机可以代表该域发送邮件&#xff0c;从而减少电子邮件欺诈和垃圾邮件的风险。AokSend将详细介绍SPF配置教程&#xff0c;并指导您如何安全地构建邮件发送策略。 SPF…

《白话机器学习的数学》第4章——评估

4.1模型评估 1.由于像多重回归这样的问题会导致无法在图上展示&#xff0c;所以需要能够够定量地表示机器学习模型的精度。 4.2交叉验证 4.2.1回归问题的验证 1.把获取的全部训练数据分成两份&#xff1a;一份用于测试&#xff0c;一份用于训练。然后用前者来评估模型。 一般…

C# 数组常用遍历方式

// 假设数组Point[] points new Point[2];// 第一种遍历 forfor (int i 0; i < points.Length; i){Point p points[i];Console.WriteLine($"X{p.X},y{p.Y}");}// 第二种遍历 foreachforeach (Point p in points){Console.WriteLine($"X{p.X},y{p.Y}"…

TCP三次握手和四次挥手的理解

三次握手 第一次握手&#xff1a; 客户端发出 请求报文其中SYN应1&#xff0c;选择一个序列号x 第二次握手&#xff1a; 服务端接收到之后回复 确认报文&#xff0c;其中SYN应1&#xff0c;ACK1&#xff0c;确认号是x1&#xff0c;同时为自己初始化序列号y 第三次握手&…

Hadoop架构

一、案列分析 1.1案例概述 现在已经进入了大数据(Big Data)时代&#xff0c;数以万计用户的互联网服务时时刻刻都在产生大量的交互&#xff0c;要处理的数据量实在是太大了&#xff0c;以传统的数据库技术等其他手段根本无法应对数据处理的实时性、有效性的需求。HDFS顺应时代…

Linux(CentOS)的“应用商城” —— yum

Linux&#xff08;CentOS&#xff09;的“应用商城” —— yum 关于 yum 和软件包Linux 系统&#xff08;CentOS&#xff09;的生态yum 相关操作yum 本地配置yum 安装 lrzsz.x86_64 关于 yum 和软件包 首先 yum 是软件下载安装管理的客户端&#xff0c;类似各种手机里的“应用…

WEB前端10- Fetch API(同步/异步/跨域处理)

Fetch API Fetch API 可以用来获取远程数据&#xff0c;用于在 Web 应用程序中发起和处理 HTTP 请求。它基于 Promise&#xff0c;提供了一种简单而强大的方式来处理网络通信&#xff0c;替代了传统的 XMLHttpRequest。 Promise对象 Promise 对象是 JavaScript 中处理异步操…

0723,UDP通信(聪明小辉聪明小辉),HTTP协议

我就是一个爱屋及乌的人&#xff01;&#xff01;&#xff01;&#xff01; #include "network_disk_kai.h" 昨天的epoll&#xff1a; 可恶抄错代码了 epoll_s.csockect return listenfdsetsockoptsockaddr_in bind listenfd & serveraddr…

Ubuntu 中默认的 root 用户密码

场景&#xff1a;想要切换root用户&#xff0c;发现得输入密码&#xff0c;以为是以前设置过然后一直尝试都是错误【认证失败】最后发现根本没设置过root用户&#xff0c;默认会随机生成root用户的密码&#x1f605; Ubuntu 中默认的 root 密码是随机的&#xff0c;即每次开机都…

用51单片机或者stm32能否开发机器人呢?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;能的。但是由于单片机和st…

MATLAB练习题——矩阵(2)

逻辑运算 a [5 0.2 0 -8 -0.7 ]&#xff0c;在进行逻辑运算时&#xff0c;a 相当于什么样的逻辑量。 相当于 a[1 1 0 1 1] 角度运算 在 sin(x)运算中&#xff0c;x 是角度还是弧度&#xff1f; 在 sin(x)运算中&#xff0c;x 是弧度&#xff0c;MATLAB 规定所有…

盘点2024年大家都在使用的AI智能写作工具

在科技发达的现在社会&#xff0c;AI已经悄悄的渗入我们生活的各种角落。不知道你有没有尝试过用ai智能写作来完成一些文章创作呢&#xff1f;这次我介绍几个可以提升效率的ai智能写作工具给你试试吧。 1.笔&#xff5c;灵AI写作 CSDN 传送门&#xff1a;https://ibiling.cn…

OpenAI发布GPT-4 Mini的深度分析及中国大模型的弯道超车机会

引言 在OpenAI封禁中国IP访问其API后&#xff0c;紧接着推出了GPT-4 Mini&#xff0c;这是一个引发广泛关注和讨论的新举措。此举不仅让人们质疑OpenAI的战略方向&#xff0c;更引发了对中国大模型是否能弯道超车的讨论。本文将详细分析GPT-4 Mini的特点、市场影响及中国大模型…

谷粒商城实战笔记-50-51-商品分类的删除

文章目录 一&#xff0c;50-商品服务-API-三级分类-删除-逻辑删除1&#xff0c;逻辑删除的配置1.1 配置全局的逻辑删除规则&#xff08;可省略&#xff09;1.2 配置逻辑删除Bean&#xff08;可省略&#xff09;1.3 Bean相应字段上加上注解TableLogic 2&#xff0c;后台接口开发…

分享:大数据信用报告查询平台哪个好?

大数据信用也就是我们常说的大数据&#xff0c;相信很多朋友对这个词都不陌生&#xff0c;特别是在银行申贷的时候&#xff0c;听过比较多&#xff0c;因为在银行做信用贷款的时候都会审查申贷人的大数据信用&#xff0c;贷前提前了解自己的大数据很有必要&#xff0c;那大数据…

基于Java+SpringMvc+Vue技术的慈善捐赠平台设计与实现(源码+LW+部署讲解)

项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;java 前端技术&#xff1a;JavaScript、VUE.j…

列举excel中调整行高列宽的五种方法

列举excel中调整行高列宽的五种方法 在Excel中调整行高列宽的方法有以下五种&#xff1a; 使用鼠标手动调整行高列宽&#xff1a;将鼠标悬停在行或列的边界上&#xff0c;光标会变成双向箭头&#xff0c;此时按住鼠标左键并拖动边界即可调整行高或列宽。 使用快捷键调整行高列…

工具(linux)

Yum 软件包管理器 介绍 yum Yum 是一个在 Red Hat 和 CentOS 等 Linux 发行版中常用的软件包管理器&#xff0c;它可以方便地进行软件包的安装、更新和删除。 安装软件包 使用 yum install 命令可以安装指定的软件包&#xff0c;例如&#xff1a; yum install package_nam…

“论软件测试中缺陷管理及其应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 软件缺陷指的是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误&#xff0c;或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。在目前的软件开发过程中&#xff0c;缺陷是不可避免的。软件测试是发现缺陷的主要手段&#xf…

【北航主办丨本届SPIE独立出版丨已确认ISSN号】第三届智能机械与人机交互技术学术会议(IHCIT 2024,7月27)

由北京航空航天大学指导&#xff0c;北京航空航天大学自动化科学与电气工程学院主办&#xff0c;AEIC学术交流中心承办的第三届智能机械与人机交互技术学术会议&#xff08;IHCIT 2024&#xff09;将定于2024年7月27日于中国杭州召开。 大会面向基础与前沿、学科与产业&#xf…