集成Manticore与Logstash、Filebeat

举报
kaliarch 发表于 2023/11/11 23:00:20 2023/11/11
【摘要】 前言Logstash是一个日志管理工具,它从各种来源收集数据,动态地对其进行转换,并将其发送到您想要的目的地。它经常被用作Elasticsearch(一个开源分析和搜索引擎)的数据管道。Filebeat是用于转发和集中日志数据的轻量级托运人。一旦作为代理安装,它就会监视您指定的日志文件或位置,收集日志事件,并将它们转发给Elasticsearch或Logstash进行索引。现在,Mantic...

前言


Logstash是一个日志管理工具,它从各种来源收集数据,动态地对其进行转换,并将其发送到您想要的目的地。它经常被用作Elasticsearch(一个开源分析和搜索引擎)的数据管道。
Filebeat是用于转发和集中日志数据的轻量级托运人。一旦作为代理安装,它就会监视您指定的日志文件或位置,收集日志事件,并将它们转发给Elasticsearch或Logstash进行索引。
现在,Manticore还支持使用Logstash和Filebeat作为处理管道。这允许收集和转换的数据发送到Manticore,就像发送到Elasticsearch一样。
让我们来看一个简单的Logstash配置文件示例,该配置文件用于索引dpkg.log (Debian包管理器的标准日志文件)。日志本身有一个简单的结构,如下所示:

2023-05-31 10:42:55 status triggers-awaited ca-certificates-java:all 20190405ubuntu1.1
2023-05-31 10:42:55 trigproc libc-bin:amd64 2.31-0ubuntu9.9 <none>
2023-05-31 10:42:55 status half-configured libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 status installed libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 trigproc systemd:amd64 245.4-4ubuntu3.21 <none>

Logstash配置

下面是一个Logstash配置示例:

input {
  file {
    path => ["/var/log/dpkg.log"]
    start_position => "beginning"
    sincedb_path => "/dev/null"
    mode => "read"
    exit_after_read => "true"
   file_completed_action => "log"
   file_completed_log_path => "/dev/null"
  }
}

output {
  elasticsearch {
   index => " dpkg_log"
   hosts => ["http://localhost:9308"]
   ilm_enabled => false
   manage_template => false
  }
}

请注意,在继续之前,需要解决一个关键的警告:Manticore不支持日志模板管理和Elasticsearch的索引生命周期管理特性。由于这些特性在Logstash中默认是启用的,因此需要在配置中显式禁用它们。此外,输出配置部分中的hosts选项必须对应于Manticore的HTTP侦听端口(默认为localhost:9308)。

Logstash结果

按照描述调整配置后,可以运行Logstash, dpkg日志中的数据将被传递给Manticore并正确地建立索引。
下面是创建表的结果模式和插入文档的示例:

mysql> DESCRIBE dpkg_log;
+------------------+--------+---------------------+
| Field            | Type   | Properties          |
+------------------+--------+---------------------+
| id               | bigint |                     |
| message          | text   | indexed stored      |
| @version         | text   | indexed stored      |
| @timestamp       | text   | indexed stored      |
| path             | text   | indexed stored      |
| host             | text   | indexed stored      |
+------------------+--------+---------------------

mysql> SELECT * FROM dpkg_log LIMIT 1\G

*************************** 1. row ***************************
id: 7280000849080746110
host: logstash-db848f65f-lnlf9
message: 2023-04-12 02:03:21 status unpacked libc-bin:amd64 2.31-0ubuntu9
path: /var/log/dpkg.log
@timestamp: 2023-06-16T09:23:57.405Z
@version: 1

Filebeat配置

收集原始数据的另一种方法是使用Filebeat代理。下面是与我们的示例dpkg日志一起工作的Filebeat配置:

filebeat.inputs:
- type: filestream
  id: example
  paths:
	- /var/log/dpkg.log

output.elasticsearch:
  hosts: ["http://localhost:9308"]
  index:  "dpkg_log"
  allow_older_versions: true

setup.ilm:
  enabled: false

setup.template:
  name: "dpkg_log"
  pattern: "dpkg_log"

Filebeat结果

使用此配置运行Filebeat后,日志数据将被发送到Manticore并正确索引。下面是Manticore创建的表的结果模式和插入文档的示例:

mysql> DESCRIBE dpkg_log;
+------------------+--------+--------------------+
| Field            | Type   | Properties         |
+------------------+--------+--------------------+
| id               | bigint |                    |
| @timestamp       | text   | indexed stored     |
| message          | text   | indexed stored     |
| log              | json   |                    |
| input            | json   |                    |
| ecs              | json   |                    |
| host             | json   |                    |
| agent            | json   |                    |
+------------------+--------+--------------------+

mysql> SELECT * FROM dpkg_log LIMIT 1\G
*************************** 1. row ***************************
id: 7280000849080753116
@timestamp: 2023-06-16T09:27:38.792Z
message: 2023-04-12 02:06:08 status half-installed libhogweed5:amd64 3.5.1+really3.5.1-2
input: {"type":"filestream"}
ecs: {"version":"1.6.0"}
host: {"name":"logstash-db848f65f-lnlf9"}
agent: {"ephemeral_id":"587c2ebc-e7e2-4e27-b772-19c611115996","id":"2e3d985b-3610-4b8b-aa3b-2e45804edd2c","name":"logstash-db848f65f-lnlf9","type":"filebeat","version":"7.10.0","hostname":"logstash-db848f65f-lnlf9"}
log: {"offset":80,"file":{"path":"/var/log/dpkg.log"}}

结论

因此,您现在可以将Manticore与Logstash或Filebeat结合使用,轻松地索引日志数据。Manticore与Logstash和Filebeat的集成为轻松索引日志数据提供了新的机会。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。