使用FileBeat将Syslog传输到ElasticSearch

简介

安装Filebeat在将Syslog传送到ElasticSearch的监控目标服务器上。
(虽然也可以通过FileBeat经由Logstash传送日志到ElasticSearch,但本次直接传送到ElasticSearch。)

使用FileBeat的SystemModule模块(用于Syslog)。

系统模块详细信息
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-system.html
系统模块输出字段
https://www.elastic.co/guide/en/beats/filebeat/current/exported-fields-system.html

Module指的是

日志格式的收集、解析和可视化模板。

可以指定变量(例如更改日志路径)。
https://www.elastic.co/guide/en/beats/filebeat/current/specify-variable-settings.html

摄取节点

在ElasticSearch的Ingest节点中处理的数据转换/处理是由Module定义的。 (Module在一定程度上可以执行Logstash的Filter中的任务)。

以下是相关文章和幻灯片的链接:
https://dev.classmethod.jp/server-side/elasticsearch/elasticsearch-ingest-node/

要查看ElasticSearch的pipeline,可以通过以下API执行。

GET _ingest/pipeline/*

环境

    • 監視対象サーバー

CentOS 7.4
Filebeat 7.4.0

ElasticSearch

Alibaba Cloud Elasticsearch

另外,如果使用Amazon Elasticsearch Service,这种方法无法使用。(需要使用filebeat-oss)。

第一步:安装FlieBeat

有两种方法可以使用yum,以及下载并安装rpm软件包的方法。这次我选择使用yum进行安装。

APT和YUM的存储库

第二步:修正filebeat.yml文件。

修改Filebeat的配置文件filebeat.yml。

$ vi /etc/filebeat/filebeat.yml

# System moduleを有効化
filebeat.modules:
- module: system

# Output先をElasticSearchに設定
output.elasticsearch:
  hosts: ["XXX:9200"]
  username: "XXX"
  password: "XXX"

# FilebeatのConfig設定
filebeat.config.modules:
  enabled: true
  path: ${path.config}/modules.d/*.yml

# ElasticSearchのIndex名を変更
output.elasticsearch.index: "syslogtest-%{[agent.version]}-%{+yyyy.MM.dd}"
setup.template.name: "syslogtest"
setup.template.pattern: "syslogtest-*"

以下是对”文法测试”的中文本地化改写:
语法测验

$ filebeat test config
Config OK

第三步。初始设置命令。

通过这个命令,模块变得可用。

$ filebeat setup -e

步骤四:启动Filebeat。

# サービスとして起動
service filebeat start

# プロセスとして起動
filebeat -e

步骤5:在Kibana中进行确认。

进行Kibana Indexes的设置。(步骤略)

可以确认收到了日志。

image.png

参考:比较应用模块时和未应用模块时的日志。

当Module不可用时

image.png

當Module適用時

可以看出”message”字段已被解析。

image.png
广告
将在 10 秒后关闭
bannerAds