【网络】记一次离谱的排查——网管软件接收不到交换机发的syslog报文(UDP 154)

客户问题描述:有两套安装在win10虚拟机的网管软件,其中一套能够收到交换机发送syslog日志,另一套收不到,配置完全相同。

 

听听,这听着就很离谱。

 

那么咱就开始排查吧。

 

(1)网络可达,排除网络问题 √

(2)交换机配置的日志server地址ok,show一下log统计还能看到有syslog报文发出,排除交换机配置问题√

(3)查看网管软件将交换机纳入监控范围,排除server端配置问题 √

(4)查看安装网管软件的服务器的防火墙是否禁止syslog报文所走的UDP 154端口,排除防火墙关闭了端口 √ ---------------这一步我特地确认了两遍,呸!

(5)在服务器安装抓包工具wireshark,看到syslog报文已经发过来了,源目地址和端口也是正确的(之前遇到过客户瞎配交换机,修改了snmp默认端口,导致报文发出去之后网管软件无法识别而丢弃的问题)

 

那么这个时候就更离谱了,防火墙没有关闭154端口,服务器收到了报文,但是网管软件就是没法显示syslog信息,这个时候就开始怀疑是不是网管软件的bug了。

 

于是寻求开发帮忙排查。

 

开发上来一顿操作,包括重启了软件后台进程/修改软件安装目录下的配置文件等等,似乎也没看出什么问题,于是他也去看了眼防火墙,应该也发现了端口是开放的。

 

但是。但是。但是。人家就忽然想把防火墙关闭,对,完全关闭win10防火墙功能。然后就好了。好了。了。

 

我???

 

实在没忍住,问了下,防火墙不是没有关闭154端口吗。为啥还会丢包。

 

他说他确认一下。然后开了防火墙,又收不到了,关闭就可以了。也没说为啥。反正结果就是防火墙开了就不行。

 

我???

 

啊!!!气死我了!!!从三点半排查到六点半就得到这么个结果!!!

 

好想知道为什么!!!

 

不过这位开发思路还是很服,很好奇怎么想到关闭防火墙的。我这个居脑子哟!

 

所以到底为什么啊???!!!等我周一请教一下师父吧。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot的Java程序中接收syslog数据并过滤掉syslog报文头,可以使用logback和logstash来实现。下面是一个示例代码: 1. 首先,在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency> ``` 2. 在application.properties文件中配置logback和logstash的相关属性: ```properties # 配置logstash的地址和端口 logstash.host=localhost logstash.port=5000 # 配置logback的encoder为logstashEncoder logging.encoder.class=net.logstash.logback.encoder.LogstashEncoder ``` 3. 创建一个SyslogFilter类,用于过滤掉syslog报文头: ```java import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.filter.AbstractMatcherFilter; import ch.qos.logback.core.spi.FilterReply; public class SyslogFilter extends AbstractMatcherFilter<ILoggingEvent> { @Override public FilterReply decide(ILoggingEvent event) { if (event.getMessage().startsWith("<")) { return FilterReply.DENY; } else { return FilterReply.ACCEPT; } } } ``` 4. 在logback-spring.xml文件中配置过滤器: ```xml <configuration> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <filter class="com.example.SyslogFilter" /> <!-- 其他配置 --> </appender> <!-- 其他配置 --> </configuration> ``` 通过以上步骤,你可以在Spring Boot的Java程序中接收syslog数据并过滤掉syslog报文头。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值