Beats:在单个服务器上配置多个 Beats 实例
本文档作为如何在同一服务器上配置和运行 Filebeat/Metricbeat/Auditbeat 的多个实例的指南。 当你需要为同一台计算机上的不同应用程序或环境分离数据收集和处理时,此设置特别有用。
在今天的展示中,我们将以 Filebeat 为例来进行展示。此方法也适用于其他的 Beats。
复制 Filebeat 配置目录
要创建 Filebeat 的新实例,我们首先需要复制现有的 Filebeat 配置目录。 这可以使用以下命令来完成:
cp -R /etc/filebeat /etc/filebeat_02
此命令创建一个名为 /etc/filebeat_02 的目录,其中包含所有 Filebeat 配置文件的副本。 需要注意的是,Filebeat 的每个实例都应该有自己的配置目录,以避免冲突并确保实例之间的适当隔离。
修改 Filebeat 配置
接下来,在文本编辑器中打开 /etc/filebeat_02/filebeat.yml 文件。 在此文件中,你需要修改 output.elasticsearch 字段以指定要将日志发送到的 Elasticsearch 集群的地址。 此步骤至关重要,因为它将数据流从 Filebeat 引导到适当的 Elasticsearch 实例。
创建新的服务单位
要将新的 Filebeat 实例作为系统服务进行管理,我们需要创建一个新的服务单元。 这可以通过以下命令来完成:
cd /usr/lib/systemd/system
cp filebeat.service filebeat_02.service
然后,在文本编辑器中打开 filebeat_02.service 文件并修改以下字段:
[Unit]
Description=Filebeat sends log files to Elasticsearch.
Documentation=https://www.elastic.co/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
Environment="BEAT_LOG_OPTS="
Environment="BEAT_CONFIG_OPTS=-c /etc/filebeat_02/filebeat.yml"
ExecStart=/usr/share/filebeat/bin/filebeat --environment systemd $BEAT_LOG_OPTS $BEAT_CONFIG_OPTS
Restart=always
[Install]
WantedBy=multi-user.target
此配置可确保新的 Filebeat 实例被系统视为单独的服务,并且可以独立管理。
为数据和日志创建目录
每个 Filebeat 实例都需要自己的数据和日志目录。 可以使用以下命令创建它们:
mkdir -p /var/lib/filebeat_02
mkdir -p /var/log/filebeat_02
这些目录将存储新 Filebeat 实例的操作数据和日志,使它们与其他实例分开。
启动第二个 Filebeat 实例
最后,你可以使用以下命令启动第二个 Filebeat 实例:
systemctl daemon-reload
systemctl enable filebeat_02
systemctl start filebeat_02
这些命令确保新的 Filebeat 服务加载到系统中,启用开机自启动,并最终启动。
通过执行这些步骤,你可以在单个服务器上运行 Filebeat 的多个实例,每个实例都有自己的配置、数据和日志目录。 此设置为你的数据收集和处理任务提供了高度的灵活性和控制。