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 第三次握手&…

spring —— AOP(前置通知)

一、pom 中需要增加的依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>6.0.2</version> </dependency> <dependency><groupId>org.springframework</g…

Hadoop架构

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

ubuntu22.04,AX101网卡,打不开蓝牙

安装完ubuntu 22.04后&#xff0c;发现蓝牙可以识别&#xff0c;但是打不开。查看/var/log/dmesg日志&#xff1a; [ 2.587972] kernel: Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-1040-1050.sfi (-2) [ 2.589252] kernel: Bluetooth: hci0: Fail…

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 中处理异步操…

阿里云OSS对象存储的项目实战操作

目录 一.什么是阿里云OSS&#xff1f; 二.阿里云OSS的使用&#xff1a; 1.导入依赖到 pom.xml 配置文件&#xff1a; 2.在application.yml配置文件中配置OSS的相关信息&#xff1a; 3.在properties包下创建OSS的配置属性类来封装配置文件的配置项&#xff1a; 4.在utils包…

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…

090、Python 写Excel文件及一些操作(使用xlwt库)

要写Excel文件&#xff0c;我们需要使用第三方库。 xlwt库是一个常用的写Excel的第三方库&#xff0c;它同时支持.xls和.xlsx。 要使用第三方库&#xff0c;首选需安装&#xff1a; pip install xlwt xlutils安装完成后&#xff0c;我们就可以引入库来进行相关操作了。 使用…

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

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

[rustlings]23_conversions

文章目录 from_into.rsfrom_str.rsas_ref_mut.rstry_from_into.rs from_into.rs // The From trait is used for value-to-value conversions. If From is // implemented, an implementation of Into is automatically provided. // You can read more about it in the docum…

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

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

AI学习指南机器学习篇-t-SNE模型应用与Python实践

AI学习指南机器学习篇-t-SNE模型应用与Python实践 在机器学习领域&#xff0c;数据的可视化是非常重要的&#xff0c;因为它可以帮助我们更好地理解数据的结构和特征。而t-SNE&#xff08;t-distributed Stochastic Neighbor Embedding&#xff09;是一种非常强大的降维和可视…