使用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的设置。(步骤略)
可以确认收到了日志。
参考:比较应用模块时和未应用模块时的日志。
当Module不可用时
當Module適用時
可以看出”message”字段已被解析。