helm3安装了logstash配置好了logback,但是日志记录一直不对,如何解决?-灵析社区

中年复健狗

自己解决了,使用下面的logstash配置就ok了 global: storageClass: alibabacloud-cnfs-nas service: type: NodePort ports: - name: http port: 8080 targetPort: http protocol: TCP - name: syslog-udp port: 1514 targetPort: syslog-udp protocol: UDP - name: syslog-tcp port: 1514 targetPort: syslog-tcp protocol: TCP persistence: enabled: true # NAS storageClass: alibabacloud-cnfs-nas size: 2Gi containerPorts: - name: http containerPort: 8080 protocol: TCP - name: monitoring containerPort: 9600 protocol: TCP - name: syslog-udp containerPort: 1514 protocol: UDP - name: syslog-tcp containerPort: 1514 protocol: TCP input: |- udp { port => 1514 type => syslog codec => json_lines } tcp { port => 1514 type => syslog codec => json_lines } http { port => 8080 } output: |- if [active] != "" { elasticsearch { hosts => ["xxx.xxx.xxx.xxx:xxxx"] index => "%{active}-logs-%{+YYYY.MM.dd}" } } else { elasticsearch { hosts => ["xxx.xxx.xxx.xxx:xxxx"] index => "ignore-logs-%{+YYYY.MM.dd}" } } stdout { } 我讲下我的解决过程: 1、刚开始以为是logstash的问题,但是发现使用curl测试发送消息是ok的 ➜ ~ kubectl port-forward service/logstash 8080:8080 -nlogstash ➜ ~ curl -X POST -d '{"message": "Hello World","env": "dev"}' http://localhost:8080 2、既然logstash没问题我就看看是不是logback有问题,发现不管怎么配置都不行 3、我就打算换个思路既然curl发送日志可以logback不行,我就想抓包试试logback发送的日志请求报文,于是我查看logback配置的时候我发现使用的是`net.logstash.logback.appender.LogstashTcpSocketAppender`类,再加上我使用的是curl的http请求,我于是推导出可能我的logstash的tcp端口可能不对,于是又回到logstash配置上面 4、最后修改logstash配置让tcp端口ping通才真正解决问题,所以问题就是tcp端口不通导致的,使用下面命令测试 telnet xxx.xxx.xxx.xxx xxxx 5、总结一下就是对logstash不太熟悉导致的,不知道logback是通过tcp发送的请求到logstash,自己还一直处在curl没有问题的状态中,好在最后发现了问题所在。

阅读量:1

点赞量:0

问AI