使用 logstash 发送简单的日志
Send simple logs using logstash
我正在使用 logstash 从计算机中提取日志并将它们发送到 logstash 服务器。所以我有:
- 安装在远程机器上的Logstash(运行作为"agent",我只是在命令行中添加代理参数)。
- 我的电脑上安装了 Logstash(运行 作为 "server")。
配置文件是:
对于 logstash 代理:
input {
file {
path => "D:/mylogs.logs"
start_position => "beginning"
}}
output {
tcp {
port => "9900" # logstash port
host => "10.10.10.1" # remote logstash address
}}
对于 logstash "server":
input {
tcp {
port => "9900"
host => "10.10.10.1"
}}
output {
elasticsearch { hosts => ["localhost:9200"] }
}}
实际上"works"。但是要在服务器端查看日志,我必须停止 logstash 代理(似乎否则,不会发送日志)。为什么会有这种行为?我是 ELK 的新手,我肯定做错了什么。
logstash 的 tcp 插件不会在每个事件(字符串)之间附加换行符,因此不会发送 tcp 段(直到我关闭代理程序)。
在代理上,在tcp插件配置中,我添加了以下内容属性:
input {
file {
path => "D:/mylogs.logs"
start_position => "beginning"
}}
output {
tcp {
codec => json_lines # Fix the new line problem
port => "9900" # logstash port
host => "10.10.10.1" # remote logstash address
}}
我正在使用 logstash 从计算机中提取日志并将它们发送到 logstash 服务器。所以我有:
- 安装在远程机器上的Logstash(运行作为"agent",我只是在命令行中添加代理参数)。
- 我的电脑上安装了 Logstash(运行 作为 "server")。
配置文件是:
对于 logstash 代理:
input { file { path => "D:/mylogs.logs" start_position => "beginning" }} output { tcp { port => "9900" # logstash port host => "10.10.10.1" # remote logstash address }}
对于 logstash "server":
input { tcp { port => "9900" host => "10.10.10.1" }} output { elasticsearch { hosts => ["localhost:9200"] } }}
实际上"works"。但是要在服务器端查看日志,我必须停止 logstash 代理(似乎否则,不会发送日志)。为什么会有这种行为?我是 ELK 的新手,我肯定做错了什么。
logstash 的 tcp 插件不会在每个事件(字符串)之间附加换行符,因此不会发送 tcp 段(直到我关闭代理程序)。
在代理上,在tcp插件配置中,我添加了以下内容属性:
input {
file {
path => "D:/mylogs.logs"
start_position => "beginning"
}}
output {
tcp {
codec => json_lines # Fix the new line problem
port => "9900" # logstash port
host => "10.10.10.1" # remote logstash address
}}