在FreeBSD上安裝Filebeat

遵循本指南以了解如何在FreeBSD上安裝Filebeat。

在FreeBSD上安裝Filebeat

Filebeat在默認的FreeBSD倉庫上不可用,但是可以從FreeBSD端口安裝。

我們在這個設置中使用FreeBSD 13.0。

freebsd-version
13.0-RELEASE

在FreeBSD上安裝Ports Collection

要使用端口在FreeBSD中安裝軟件,您需要安裝 portsnap。 Portsnap是用於檢索Ports集合的快速且用戶友好的工具。它連接到FreeBSD站點,驗證安全密鑰,並下載Ports Collection的新副本。

因此,要安裝端口,請運行系統更新和升級

pkg update
pkg upgrade -f

下載端口集合的壓縮快照。快照將存儲在 / var / db / portsnap

portsnap fetch

上面的命令完成後,解壓縮。僅在首次獲取快照時才能執行此操作。

portsnap extract

提取端口並將其存儲在 / usr /端口

如果以前已經下載了Ports Collection快照,則可以通過運行以下命令來簡單地對其進行更新;

portsnap fetch
portsnap update

但是,您可以將其作為單個命令運行。

portsnap fetch update

在FreeBSD上安裝Filebeat

要在FreeBSD上安裝Filebeat,請導航至beats7 ports目錄;

cd /usr/ports/sysutils/beats7

接下來,您可以通過運行以下命令從FreeBSD beats端口安裝Filebeat。

make install clean

該命令可用於安裝各種Elastic Beat,包括Filebeat,metricsbeat,packetbeat和heartbeat。

因此,由於我們在FreeBSD上安裝Filebeat,因此我們從提供的選項中僅選擇Filebeat。使用空格鍵選擇和取消選擇。

選擇後,按ENTER繼續在FreeBSD上安裝Filebeat。

如果您注意到,這將安裝Filebeat 7.10.1;

====> Compressing man pages (compress-man)
===> Staging rc.d startup script(s)
===>  Installing for beats7-7.10.1
===>  Checking if beats7 is already installed
===>   Registering installation for beats7-7.10.1
Installing beats7-7.10.1...

在FreeBSD上配置Filebeat

filebeat配置文件位於以下位置, /usr/local/etc/beats/。在此目錄中,您可以找到filebeat示例配置和modules目錄。

ls /usr/local/etc/beats/
filebeat.modules.d	filebeat.yml.reference	filebeat.yml.sample

Filebeat二進制文件位於 /usr/local/sbin/filebeat

要配置Filebeat,只需重命名示例配置文件。

cp /usr/local/etc/beats/filebeat.yml{.sample,}

您現在可以打開 /usr/local/etc/beats/filebeat.yml 進行編輯。

vim /usr/local/etc/beats/filebeat.yml

配置Filebeat輸入

您可以通過啟用以下選項來選擇直接讀取日誌文件: 類型:日誌 輸入如下所示;

# filestream is an experimental input. It is going to replace log input in the future.
- type: filestream

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log

或者只是使用Filebeat模塊。

例如,啟用Filebeat系統模塊;

cd /usr/local/etc/beats

列出可用的模塊;

filebeat modules list
Enabled:

Disabled:
apache
auditd
elasticsearch
haproxy
icinga
iis
kafka
kibana
logstash
mongodb
mysql
nats
nginx
osquery
postgresql
redis
santa
system
traefik

如您所見,默認情況下未啟用任何功能。讓我們啟用系統模塊;

filebeat modules enable system

樣品輸出;

Enabled system

Filebeat系統模塊從默認系統位置讀取系統日誌,這就是其配置文件的樣子。

less /usr/local/etc/beats/filebeat.modules.d/system.yml
# Module: system
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.10/filebeat-module-system.html

- module: system
  # Syslog
  syslog:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

  # Authorization logs
  auth:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

配置Filebeat輸出

接下來,配置Filebeat以將事件數據發送到Elastic Stack。 Filebeat可以將日誌直接發送到Elasticsearch或Logstash或其他 輸出。 Filebeat輸出是在Filebeat配置文件上定義的, /usr/local/etc/beats/filebeat.yml

Elasticsearch輸出

要將事件數據或事件日誌直接發送到Elasticsearch,請打開配置文件並按如下所示定義Elasticsearch輸出;

vi /usr/local/etc/beats/filebeat.yml

Elasticsearch是默認輸出。您需要做的就是更新IP地址Elasticsearch,默認情況下將其設置為localhost。

...
#================================ Outputs =====================================
 
# Configure what output to use when sending the data collected by the beat.
 
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
  hosts: ["192.168.57.20:9200"]
...

Logstash輸出

如果您將事件數據推送到Logstash,請注釋掉Elasticsearch輸出並定義Logstash輸出,如下所示;

#================================ Outputs =====================================
 
# Configure what output to use when sending the data collected by the beat.
 
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
 
  # Protocol - either `http` (default) or `https`.
  #protocol: "https"
 
  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"
 
#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]
  hosts: ["192.168.57.20:5044"]

保存並退出文件。

對於選擇的每個輸出,請確保端口可訪問。例如,您可以驗證與Logstash的連接;

telnet 192.168.57.20 5044
Trying 192.168.57.20...
Connected to 192.168.57.20.
Escape character is '^]'.

同樣,如果您直接使用Elasticsearch,請確保可以訪問端口 9200/tcp

telnet 192.168.57.20 9200
Trying 192.168.57.20...
Connected to 192.168.57.20.
Escape character is '^]'.

測試Filebeat輸出目標連接

驗證Filebeat可以連接到您選擇的輸出目標。

使用當前配置設置測試輸出連接;

filebeat test output -c /usr/local/etc/beats/filebeat.yml

樣品輸出;

elasticsearch: http://192.168.57.20:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 192.168.57.20
    dial up... OK
  TLS... WARN secure connection disabled
  talk to server... OK
  version: 7.10.0

如您所見,我們的filebeat可以連接到我們的Elasticsearch輸出。

測試Filebeat配置文件

要確保當前Filebeat配置文件上沒有語法問題,請運行以下命令;

filebeat test config -c /usr/local/etc/beats/filebeat.yml

如果得到輸出, Config OK,那麼您很好。

在Elasticsearch中加載Filebeat索引模板

如果您直接將數據發送到Elasticsearch,則Filebeat將在成功連接到Elasticsearch後自動加載模板。

但是,如果您將Logstash用作事件數據處理引擎,則需要手動將索引模板加載到Elasticsearch中。因此,在加載索引模板之前,請確保存在與Elasticsearch的連接。

如果一切正常,請加載模板。

filebeat setup -c /usr/local/etc/beats/filebeat.yml --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["192.168.57.20:9200"]'

如果看到輸出, 索引設置完成,模板加載成功。

如果主機沒有與Elasticsearch的直接連接,則可以生成索引模板,將其複製到Elastic Stack Server並在本地安裝。

生成模板;

filebeat -c /usr/local/etc/beats/filebeat.yml export template > filebeat.template.json

要將模板安裝在Elastic Stack服務器上,請將其複製(filebeat.template.json)並在Elasticsearch服務器上本地加載。

curl -XPUT -H 'Content-Type: application/json' http://192.168.57.20:9200/_template/filebeat-7.10.1 [email protected]

如果加載成功,您應該會得到這樣的輸出, {"acknowledged":true}

在FreeBSD上運行Filebeat

您可以使用以下命令在調試模式下運行Filebeat;

filebeat -e -c /usr/local/etc/beats/filebeat.yml --path.config /usr/local/etc/beats/ --path.home /usr/local/share/beats/filebeat/ --path.data /var/db/beats/filebeat --path.logs /var/log/beats

filebeat將開始收集系統日誌並將其發送到已定義的輸出。

您應該看到這樣一條線;

...
2021-04-16T12:47:08.990+0300	INFO	[registrar]	registrar/registrar.go:109	States Loaded from registrar: 2
2021-04-16T12:47:08.990+0300	INFO	[crawler]	beater/crawler.go:71	Loading Inputs: 2
2021-04-16T12:47:08.992+0300	INFO	log/input.go:157	Configured paths: [/var/log/auth.log* /var/log/secure*]
2021-04-16T12:47:08.992+0300	INFO	log/input.go:157	Configured paths: [/var/log/messages* /var/log/syslog*]
2021-04-16T12:47:08.992+0300	INFO	[crawler]	beater/crawler.go:108	Loading and starting Inputs completed. Enabled inputs: 0
2021-04-16T12:47:08.992+0300	INFO	cfgfile/reload.go:164	Config reloader started
2021-04-16T12:47:08.995+0300	INFO	log/input.go:157	Configured paths: [/var/log/auth.log* /var/log/secure*]
2021-04-16T12:47:08.995+0300	INFO	log/input.go:157	Configured paths: [/var/log/messages* /var/log/syslog*]
2021-04-16T12:47:08.995+0300	INFO	eslegclient/connection.go:99	elasticsearch url: http://192.168.57.20:9200
...
...
2021-04-16T12:48:27.496+0300	INFO	[publisher_pipeline_output]	pipeline/output.go:151	Connection to backoff(elasticsearch(http://192.168.57.20:9200)) established

好吧,如果您看到這樣的錯誤:

2021-04-16T12:45:39.840+0300	ERROR	instance/metrics_file_descriptors.go:39	Error while retrieving FD information: error retrieving process stats: cannot find matching process for pid=90737
2021-04-16T12:45:39.840+0300	ERROR	instance/metrics.go:98	Error while getting memory usage: error retrieving process stats: cannot find matching process for pid=90737
2021-04-16T12:45:39.840+0300	ERROR	instance/metrics.go:142	Error retrieving CPU percentages: error retrieving process stats: cannot find matching process for pid=90737

您可以禁用指標監視;

echo "logging.metrics.enabled: false" >> /usr/local/etc/beats/filebeat.yml

在FreeBSD上將Filebeat作為服務運行

啟用Filebeat以在系統啟動時運行,並

您可以使用以下命令將Filebeat作為服務運行;

sysrc filebeat_enable="YES"

在FreeBSD上啟動Filebeat;

service filebeat start

查看日誌;

tail -f /var/log/beats/filebeat
2021-04-16T13:00:07.421+0300	INFO	[index-management.ilm]	ilm/std.go:139	do not generate ilm policy: exists=true, overwrite=false
2021-04-16T13:00:07.421+0300	INFO	[index-management]	idxmgmt/std.go:274	ILM policy successfully loaded.
2021-04-16T13:00:07.421+0300	INFO	[index-management]	idxmgmt/std.go:407	Set setup.template.name to '{filebeat-7.10.1 {now/d}-000001}' as ILM is enabled.
2021-04-16T13:00:07.421+0300	INFO	[index-management]	idxmgmt/std.go:412	Set setup.template.pattern to 'filebeat-7.10.1-*' as ILM is enabled.
2021-04-16T13:00:07.421+0300	INFO	[index-management]	idxmgmt/std.go:446	Set settings.index.lifecycle.rollover_alias in template to {filebeat-7.10.1 {now/d}-000001} as ILM is enabled.
2021-04-16T13:00:07.421+0300	INFO	[index-management]	idxmgmt/std.go:450	Set settings.index.lifecycle.name in template to {filebeat {"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"30d","max_size":"50gb"}}}}}}} as ILM is enabled.
2021-04-16T13:00:07.422+0300	INFO	template/load.go:97	Template filebeat-7.10.1 already exists and will not be overwritten.
2021-04-16T13:00:07.422+0300	INFO	[index-management]	idxmgmt/std.go:298	Loaded index template.
2021-04-16T13:00:07.424+0300	INFO	[index-management]	idxmgmt/std.go:309	Write alias successfully generated.
2021-04-16T13:00:07.429+0300	INFO	[publisher_pipeline_output]	pipeline/output.go:151	Connection to backoff(elasticsearch(http://192.168.57.20:9200)) established

驗證Elasticsearch Index數據接收

接下來,登錄到彈性堆棧服務器並驗證數據接收。

curl -X GET 192.168.57.20:9200/_cat/indices?v
health status index                             uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   filebeat-7.10.1-2021.04.16-000001 CbQmXaRzQ4G9n1wldgvwbg   1   1       1022            0    222.2kb        222.2kb
green  open   .apm-custom-link                  YUZ3YLcBRqqA16bFXrPWEg   1   0          0            0       208b           ...

之後,前往Kibana, 創建索引模式。並在Discover上檢查您的索引數據;

我已經模擬了一些身份驗證事件,如此處所示。

在FreeBSD上安裝Filebeat

如果您已經加載了默認的儀錶板,則應該能夠在儀錶板上可視化身份驗證事件。

在FreeBSD上安裝Filebeat

這標誌着我們在FreeBSD上如何安裝Filebeat的終結。

其他教程

如何在Linux中運行多個Filebeat實例

配置Filebeat-Logstash SSL / TLS連接的簡便方法

在CentOS 8上安裝和配置Filebeat

Sidebar