--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
logstash 的 tcp input 里面,json或json_lines都是需要有一个换行符才能触发事件的生成。
有试过 timeout=0,且 codec plugin 设置为 plain,logstash 能把 msg 及时打印出来吗?
另外,按你的描述,
> 但是此时如果service openresty reload logstash会将之前发送的一并打印出来
看样子 logstash 应该收到了,只是没有触发对应的事件。建议运行 logstash 的时候,加上 --debug 选项,看看具体是什么情况?
在 2017年9月10日 下午9:36,赵安家 <anji...@gmail.com>写道:
问题背景想基于cloudflare/lua-resty-logger-socket使用tcp协议将log写入到logstash. (udp 有64K 大小限制? google对这个说法也是莫衷一是 https://www.google.com/search?q=udp+payload+maximum+size ,不过 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-udp.html#plugins-inputs-udp-buffer_size buffer_size默认是65536 (1024*64=65536))但是在测试中发现,如果将sock:setkeepalive 中的timeout设置为0,根据 文档 tcpsock:setkeepalive 中所说,> If the 0 value is given, then the timeout interval is unlimited.如果timeout为0,则永不过期,本身没啥问题,但是在写入logstash中,如果timeout为0,则数据无法落到logstash中,(但是此时如果service openresty reload logstash会将之前发送的一并打印出来),同时根据tcpdump或者wireshark的抓包显示,每次sock:send都有发送数据给logstash如果timeout>0,而且logstash的tcp input plugin的codec plugin 设置为plain,则logstash可以将msg及时打印出来。但是如果是tcp的codec plugin 设置为json或者json_lines,则还需要在 msg后追加换行符 类似这样 sock:send(msg .. "\\n")我本身对tcp,udp协议一窍不通,虽然用tcpdump或者wireshark进行了抓包,但是也看不出啥问题来。是ngx.socket.tcp在通信中没有向服务端通信时发送终止符(? 我也不太清楚专业术语),还是说ngx.socket.tcp本身没问题,可能是logstash在处理时有问题。在使用telnet 进行模拟通信的时候,logstash 都正常能接受数据,哪怕是用curl 请求logstash的开的tcp端口,也可以正常接受数据。求大神指点。
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com