input {
tcp {
port => 5959
codec => json
}
}
filter{
}
output {
stdout {codec => rubydebug}
}
巨蟒:
import json
import socket
import sys
HOST = "127.0.0.1"
PORT = 5959
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(1)
try:
sock.connect((HOST, PORT))
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(2)
msg = {'@message': 'python test message', '@tags': ['python', 'test']}
sock.sendall(json.dumps(msg))
sock.send('\n')
sock.close()
sys.exit(0)
在执行了这两个脚本之后,我既不会得到任何错误,也不会得到日志存储中的数据,所以有人可以帮忙,比如是什么导致了这个问题。
我只是在sock.sendall(json.dumps(msg))
后面添加了sock.send('\n')
,它起作用了。看来logstash-codec-jsonAS1存在一个未解决的问题:
logstash“json”插件仍然需要换行符“\n”来终止通过TCP输入发送的json日志。2
参考资料:
我正在从Java向logstash发送TCP字符串消息。我不想为每条消息创建一个新的TCP连接,但我想重用TCP连接。保留一个TCP连接并通过socket.write和socket.flush发送消息,直到其中一个方法抛出IOException然后打开新连接,这样是否安全?
虽然之前我们已经提到过不建议直接使用 LogStash::Inputs::TCP 和 LogStash::Outputs::TCP 做转发工作,不过在实际交流中,发现确实有不少朋友觉得这种简单配置足够使用,因而不愿意多加一层消息队列的。所以,还是把 Logstash 如何直接发送 TCP 数据也稍微提点一下。 配置示例 output { tcp { host => "19
我需要将一些数据从 Angular 传递到 Node.js 服务器。这是我的角度帖子列表组件:从“@angular/核心”导入 { 组件,OnInit };从 “@angular/common/http” 导入 { HttpClient }; 我的node.js服务器: 我想安慰一下。记录数据,但什么都没有发生。
我正在编写一个程序,将数据从服务器连续发送到客户端。在这里,我使用示例的时间戳将其发送给连接的多个客户端。我使用多线程来支持多个客户端。我希望每10秒向客户端发送一次时间。但在我的代码中,客户端在收到第一个数据后停止。如何让客户端连续接收数据。我尝试在客户端添加while循环,但这并不可行。有什么建议吗 以下是示例代码:服务器端: 客户端: 我的输出: 客户端所需输出:
我需要在javascript客户机和Web API控制器操作之间建立一个长时间运行(比如10分钟)的连接。Web应用程序的Azure负载均衡器的默认超时时间为4分钟,目前还无法配置。