> 文章列表 > Logstash:多管道配置

Logstash:多管道配置

Logstash:多管道配置

 

我们大多数人已经熟悉 Elastic 产品。 在此博客中,我们将逐步介绍配置 Logstash 以使用多个管道摄取和处理数据的步骤

 Logstash 是一种开源数据处理管道,可让你摄取、转换和输出数据。 它是从各种来源收集和处理大量数据的强大工具,可用于管理和分析日志、指标和其他类型的数据。

更多关于 Logstash 的介绍,请阅读我之前的文章 “Logstash:Logstash 入门教程 (一)”。关于 Logstash 如何处理多个 inputs,请阅读之前的文章 “Logstash:处理多个 input”。

安装

如果你还没有安装好自己的 Logstash,请参考文章 “Logstash:在各个操作系统下安装 Logstash”。

配置

今天,我们将测试系统日志和文件输入的配置。 为此,首先,你需要创建两个配置文件,每个管道一个。

步骤一:创建输入配置文件

对于 deb/rpm 包,转到 /etc/logstash/conf.d/ 目录并创建两个文件:syslog.conf 和 file.conf。

cd /etc/logstash/conf.d
touch syslog.conf file.conf

步骤二:配置 Syslog 管道

在syslog.conf文件中,添加如下配置:

input {syslog {port => 514}
}filter {# Add any filters you need here
}output {elasticsearch {hosts => ["localhost:9200"]index => "firewall-%{+YYYY.MM.dd}"}
}

此配置指定 Logstash 应在端口 514 上侦听系统日志数据,应用你需要的任何过滤器,然后使用基于当前日期的索引名称将输出发送到 Elasticsearch。有关 filter 的设计部分,你可以阅读文章 “Logstash:实用 Logstash 收集 Syslog 日志指南” 或者文章 “Logstash:日志解析的 Grok 模式示例”。

步骤三:配置 file input 管道

在 file.conf 文件中,添加如下配置:

input {file {path => "my_log_path"}
}filter {# Add any filters you need here
}output {elasticsearch {hosts => ["localhost:9200"]index => "syslog-%{+YYYY.MM.dd}"}
}

此配置指定 Logstash 应从你需要的 my_log_path 目录读取日志文件,应用你需要的任何过滤器,然后使用基于当前日期的索引名称将输出发送到 Elasticsearch。

步骤四:更新管道 YML 文件中的配置

在 /etc/logstash/ 目录下的 pipeline.yml 中添加上述配置的路径。

- pipeline.id: syslogpath.config: "/etc/logstash/conf.d/syslog.conf"- pipeline.id: file-inputpath.config: "/etc/logstash/conf.d/file.conf"

步骤五:使用多个管道启动 Logstash

要使用多个管道启动 Logstash,请启动服务并验证输出是否有任何错误(如果有)

systemctl start logstash
sudo tail -f /var/log/logstash/logstash-plain.log

Logstash 会自动检测并加载指定目录下的所有配置文件。 它还将为每个配置文件创建单独的管道。

提示:在运行 logstash 服务之前,我们甚至可以使用以下命令测试我们的 Logstash 配置:

sudo /usr/share/logstash/bin/logstash --config.test_and_exit -f <path_to_config_files>

总之,Logstash 对多管道的支持允许你使用不同的配置来处理不同类型的数据。