如何通过Logstash实现日志文件与Elasticsearch的同步操作?

2026-05-16 18:091阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计523个文字,预计阅读时间需要3分钟。

如何通过Logstash实现日志文件与Elasticsearch的同步操作?

引言:之前文章介绍过MySQL、Oracle与ES之间的同步机制。而Logstash最初的日志同步功能尚未介绍。本文将详细解读如何将日志同步到ES。

1、目标:将本地磁盘存储的日志文件同步到ES。

引言:

之前博文介绍过了mysql/oracle与ES之间的同步机制。而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志到ES做下详细解读。

1、目的:

将本地磁盘存储的日志文件同步(全量同步、实时增量同步)到ES中。

2、源文件:

[root@5b9dbaaa148a test_log]# ll -rwxrwxrwx 1 root root 170 Jul 5 08:02 logmachine.sh -rw-r--r-- 1 root root 66 Jul 5 08:25 MProbe01.log -rw-r--r-- 1 root root 74 Jul 5 08:28 MProbe02.log

3、增量实时同步脚本:

[root@5b9dbaaa148a test_log]# cat logmachine.sh #!/bin/bash icnt=0; while (true) do echo "[debug][20160703-15:00]"$icnt >> MProbe01.log echo "[ERROR][20160704-17:00]"$icnt >> MProbe02.log icnt=$((icnt+1)); done

4、logstash配置文件:

如何通过Logstash实现日志文件与Elasticsearch的同步操作?

[root@5b9dbaaa148a logstash_jdbc_test]# cat log_test.conf input { file { path=> [ "/usr/local/logstash/bin/test_log/MProbe01.log", "/usr/local/logstash/bin/test_log/MProbe02.log" ] #codec=>multiline { # pattern => "^\s" # what=>"previous" #} type=>"probe_log" #类型名称 # tags=>["XX.XX.XX.XX"] } } ###过滤 #filter{ # grok { # match => ["message","mailmonitor"] # add_tag => [mailmonitor] # } # grok { # match => [ "message", "smsmonitor" ] # add_tag => [smsmonitor] # } # .... #} ###output to es output { elasticsearch { hosts => "10.8.5.101:9200" index => "mprobe_index" #索引名称 #template_name => "mprobelog" #document_id => "%{id}" } stdout { codec => json_lines } }

5、同步测试:

[root@5b9dbaaa148a bin]# ./logstash -f ./logstash_jdbc_test/log_test.conf
Settings: Default pipeline workers: 24
Pipeline main started
{"message":"[DEbug][20160305-15:35]testing02","@version":"1","@timestamp":"2016-07-05T07:26:08.043Z","path":"/usr/local/logstash/bin/test_log/MProbe01.log","host":"5b9dbaaa148a"

6、结果验证

(1)日志记录:

[root@5b9dbaaa148a test_log]# tail -f MProbe01.log
[DEbug][20160305-15:35]testing02
[DEbug][20160305-15:35]testing01
^C
[root@5b9dbaaa148a test_log]# tail -f MProbe02.log
[DEbug][20160305-15:35]testing02_001
[DEbug][20160305-15:35]testing02_003

(2)ES记录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计523个文字,预计阅读时间需要3分钟。

如何通过Logstash实现日志文件与Elasticsearch的同步操作?

引言:之前文章介绍过MySQL、Oracle与ES之间的同步机制。而Logstash最初的日志同步功能尚未介绍。本文将详细解读如何将日志同步到ES。

1、目标:将本地磁盘存储的日志文件同步到ES。

引言:

之前博文介绍过了mysql/oracle与ES之间的同步机制。而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志到ES做下详细解读。

1、目的:

将本地磁盘存储的日志文件同步(全量同步、实时增量同步)到ES中。

2、源文件:

[root@5b9dbaaa148a test_log]# ll -rwxrwxrwx 1 root root 170 Jul 5 08:02 logmachine.sh -rw-r--r-- 1 root root 66 Jul 5 08:25 MProbe01.log -rw-r--r-- 1 root root 74 Jul 5 08:28 MProbe02.log

3、增量实时同步脚本:

[root@5b9dbaaa148a test_log]# cat logmachine.sh #!/bin/bash icnt=0; while (true) do echo "[debug][20160703-15:00]"$icnt >> MProbe01.log echo "[ERROR][20160704-17:00]"$icnt >> MProbe02.log icnt=$((icnt+1)); done

4、logstash配置文件:

如何通过Logstash实现日志文件与Elasticsearch的同步操作?

[root@5b9dbaaa148a logstash_jdbc_test]# cat log_test.conf input { file { path=> [ "/usr/local/logstash/bin/test_log/MProbe01.log", "/usr/local/logstash/bin/test_log/MProbe02.log" ] #codec=>multiline { # pattern => "^\s" # what=>"previous" #} type=>"probe_log" #类型名称 # tags=>["XX.XX.XX.XX"] } } ###过滤 #filter{ # grok { # match => ["message","mailmonitor"] # add_tag => [mailmonitor] # } # grok { # match => [ "message", "smsmonitor" ] # add_tag => [smsmonitor] # } # .... #} ###output to es output { elasticsearch { hosts => "10.8.5.101:9200" index => "mprobe_index" #索引名称 #template_name => "mprobelog" #document_id => "%{id}" } stdout { codec => json_lines } }

5、同步测试:

[root@5b9dbaaa148a bin]# ./logstash -f ./logstash_jdbc_test/log_test.conf
Settings: Default pipeline workers: 24
Pipeline main started
{"message":"[DEbug][20160305-15:35]testing02","@version":"1","@timestamp":"2016-07-05T07:26:08.043Z","path":"/usr/local/logstash/bin/test_log/MProbe01.log","host":"5b9dbaaa148a"

6、结果验证

(1)日志记录:

[root@5b9dbaaa148a test_log]# tail -f MProbe01.log
[DEbug][20160305-15:35]testing02
[DEbug][20160305-15:35]testing01
^C
[root@5b9dbaaa148a test_log]# tail -f MProbe02.log
[DEbug][20160305-15:35]testing02_001
[DEbug][20160305-15:35]testing02_003

(2)ES记录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。