Filebeat的配置參考
指定要運行的模塊
前提:
在運行Filebeat模塊之前,需要安裝並配置Elastic堆棧:
安裝Ingest Node GeoIP和User Agent插件。這些插件需要捕獲示例儀表板中可用的某些可視化所使用的地理位置和瀏覽器信息。您可以通過在Elasticsearch主路徑中運行以下命令來安裝這些插件:
sudo bin/elasticsearch-plugin install ingest-geoip
sudo bin/elasticsearch-plugin install ingest-user-agent
運行這些命令后需要重新啟動Elasticsearch。
驗證Elasticsearch和Kibana是否正在運行,並且Elasticsearch已准備好從Filebeat接收數據。
在modules.d目錄編輯中啟用模塊配置
該modules.d目錄包含Filebeat中可用的所有模塊的默認配置。您可以modules.d通過運行 modules enable或modules disable命令啟用或禁用特定模塊配置。
例如,要在 目錄中啟用apache2和mysql配置modules.d:
/filebeat modules enable apache2 mysql
然后,當您運行Filebeat時,它會加載modules.d目錄中指定的相應模塊配置(例如,modules.d/apache2.yml和 modules.d/mysql.yml)
要查看啟用和禁用模塊的列表,請運行:filebeat modules list
默認模塊配置收集的日志位於操作系統的預期位置,並且模塊的行為適合您的環境。要更改默認配置,您需要指定變量設置。
運行filebeat時啟用模塊
要在命令行運行Filebeat時啟用特定模塊,可以使用該--modules標志。這種方法在您開始使用時很有效,並且每次運行Filebeat時都希望指定不同的模塊和設置。
將在命令行中指定的任何模塊以及在配置文件或modules.d 目錄中啟用的任何模塊一起加載。如果存在沖突,則使用命令行中指定的配置。下面的示例示出了如何啟用和運行nginx,mysql和 system模塊。
./filebeat -e --modules nginx,mysql,systemfilebeat -e --modules nginx,mysql,system
默認模塊配置假定您正在收獲的日志位於操作系統的預期位置,並且模塊的行為適合您的環境。要更改默認配置,您需要指定變量設置。
在filebeat.yml文件編輯中啟用模塊配置
如果可能,您應該使用modules.d目錄中的配置文件。但是,如果從先前版本的Filebeat升級並且不想將模塊配置移動到目錄,則直接在配置文件中啟用模塊是一種實用方法modules.d。您可以繼續在filebeat.yml文件中配置模塊,但是您將無法使用該modules命令來啟用和禁用配置,因為該命令需要modules.d布局。
要在filebeat.yml配置文件中啟用特定模塊,可以向filebeat.modules列表中添加條目。列表中的每個條目都以短划線( - )開頭,然后是該模塊的設置。
下面的示例示出了運行的配置nginx,mysql和 system模塊。
filebeat.modules:modules:
- module: nginx- module: nginx
- module: mysql- module: mysql
- module: system- module: system
指定模塊的變量設置
每個模塊和文件集都有變量,您可以設置這些變量來更改模塊的默認行為,包括模塊查找日志文件的路徑。例如,var.paths以下示例中的設置設置nginx訪問日志文件的路徑:
- module: nginx
access:
var.paths: ["/var/log/nginx/access.log*"]
要在命令行中設置Nginx訪問日志文件的路徑,請使用該-M標志。例如:
filebeat -M "nginx.access.var.paths=[/var/log/nginx/access.log*]"
在命令行設置變量時,變量名稱需要包含模塊和文件集名稱。您可以指定多個覆蓋。每個覆蓋都必須以-M。
在這里,您將看到如何將-M旗幟與旗幟一起使用--modules。此示例顯示如何設置訪問和錯誤日志的路徑:
filebeat --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" -M "nginx.error.var.paths=[/var/log/nginx/error.log*]"
在模塊中可以為每個文件集設置的特定變量的信息。
高級設置(prospector)
在幕后,每個模塊啟動一個Filebeat prospector。高級用戶可以添加或覆蓋任何探針設置。例如,你可以設置 close_eof到true在模塊配置:
- module: nginx
access:
prospector:
close_eof: true
或者在命令行中這樣:
filebeat -M "nginx.access.prospector.close_eof=true"
在這里,您將看到如何將-M旗幟與旗幟一起使用--modules:
filebeat --modules nginx -M "nginx.access.prospector.close_eof=true"
您可以使用通配符一次更改多個模塊/文件集的變量或設置。例如啟用模塊close_eof中的所有文件集nginx:
filebeat -M "nginx.*.prospector.close_eof=true"
啟用close_eof由任何模塊創建的所有prospectors:
filebeat -M "*.*.prospector.close_eof=true"
設置prospectors
Filebeat使用prospector來定位和處理文件。要配置Filebeat,請filebeat.prospectors在filebeat.yml配置文件的部分中指定prospectors列表。
列表中的每個項目都以短划線( - )開頭,並指定特定於瀏覽器的配置選項,包括為查找文件而被爬網的路徑列表。
filebeat.prospectors:
- type: log
paths:
- /var/log/apache/httpd-*.log
- type: log
paths:
- /var/log/messages
- /var/log/*.log
配置選項:
type:
log:讀取日志文件的每一行(默認)
stdin:標准輸入
redis:從redis讀取慢速日志條目(實驗性)
udp:通過UDP讀取事件。max_message_size
docker:從Docker讀取日志。containers
您在此處指定的值將用作type發布到Logstash和Elasticsearch的每個事件的值。
paths:
應該對其進行爬網和獲取的基於glob的路徑列表。此處還支持Golang Glob支持的所有模式。
例如,要從預定義級別的子目錄中獲取所有文件,可以使用以下模式:/var/log/*/*.log。這.log將從子文件夾中獲取所有文件/var/log。
它不從/var/log文件夾本身獲取日志文件。可以使用可選recursive_glob設置以遞歸方式獲取目錄的所有子目錄中的所有文件。
Filebeat為在指定路徑下找到的每個文件啟動收集器。您可以為每行指定一個路徑。每行以短划線( - )開頭。
recursive_glob.enabled:
允許擴展**為遞歸的glob模式。啟用此功能后,**每個路徑中最右邊的部分將擴展為固定數量的glob模式。例如:/foo/**擴展到/foo,/foo/*,/foo/*/*,等等。如果啟用,它會將單個擴展**為8級深度*模式。
默認情況下啟用此功能,設置recursive_glob.enabled為false以禁用它。
encoding:
用於讀取包含國際字符的文件的文件編碼。請參閱W3C推薦的編碼名稱,以便在HTML5中使用。
以下是W3C推薦的一些示例編碼:
plain,latin1,utf-8,utf-16be-bom,utf-16be,utf-16le,big5,gb18030,gbk,hz-gb-2312,
euc-kr,euc-jp,iso-2022-jp,shift-jis等
該plain編碼是特殊的,因為它不驗證或轉換任何輸入。
exclude_lines:
正則表達式列表,用於匹配您希望Filebeat排除的行。Filebeat會刪除與列表中的正則表達式匹配的所有行。默認情況下,不會刪除任何行。空行被忽略。
如果多行同時指定時,線通過過濾前的各多行消息被組合成一個單一的線exclude_lines。
以下示例將Filebeat配置為刪除以“DBG”開頭的所有行。
filebeat.prospectors:
- paths:
- /var/log/myapp/*.log
exclude_lines: ['^DBG']
請參閱正則表達式支持以獲取受支持的正則表達式模式列表。
include_lines:
正則表達式列表,用於匹配您希望Filebeat包含的行。Filebeat僅導出與列表中的正則表達式匹配的行。默認情況下,將導出所有行。空行被忽略。
如果多行同時指定時,線通過過濾前的各多行消息被組合成一個單一的線include_lines。
以下示例將Filebeat配置為導出以“ERR”或“WARN”開頭的所有行:
filebeat.prospectors:
- paths:
- /var/log/myapp/*.log
include_lines: ['^ERR', '^WARN']
如果兩個include_lines和exclude_lines定義,Filebeat執行include_lines,然后再執行exclude_lines。定義兩個選項的順序無關緊要。該include_lines選項將始終在exclude_lines選項之前執行,即使在配置文件中exclude_lines出現之前include_lines也是如此。
以下示例導出除調試消息(DBG)之外的所有Apache日志行:
include_lines: ['apache']
exclude_lines: ['^DBG']
exclude_files
正則表達式列表,用於匹配您希望Filebeat忽略的文件。默認情況下不會排除任何文件。
以下示例將Filebeat配置為忽略具有gz擴展名的所有文件:
exclude_files: ['\.gz$']
tags
Beat在tags每個已發布事件的字段中包含的標記列表。使用標簽可以輕松選擇Kibana中的特定事件或在Logstash中應用條件過濾。這些標記將附加到常規配置中指定的標記列表中。
filebeat.prospectors:
- paths: ["/var/log/app/*.json"]
tags: ["json"]
fields
可以指定的可選字段,用於向輸出添加其他信息。例如,您可以添加可用於過濾日志數據的字段。字段可以是標量值,數組,字典或這些的任何嵌套組合。默認情況下,您在此處指定的字段將分組在fields輸出文檔中的子字典下。要將自定義字段存儲為頂級字段,請將該fields_under_root選項設置為true。如果在常規配置中聲明了重復字段,則其值將被此處聲明的值覆蓋。
filebeat.prospectors:
- paths: ["/var/log/app/*.log"]
fields:
app_id: query_engine_12
fields_under_root
如果此選項設置為true,則自定義字段將存儲為輸出文檔中的頂級字段,而不是在fields子字典下分組 。如果自定義字段名稱與Filebeat添加的其他字段名稱沖突,則自定義字段將覆蓋其他字段。
指定多個prospector
當您需要從多個文件中收集行時,您只需配置一個prospector並指定多個路徑即可為每個文件啟動收集器。但是,如果你想申請額外的特定探礦- 配置設置(如fields,include_lines,exclude_lines,multiline,等),以從特定文件中獲取的線,你需要在Filebeat配置文件中定義多個探礦。
在配置文件中,您可以指定多個探測器,每個探測器可以定義多個要爬網的路徑,如以下示例所示。
filebeat.prospectors:
- type: log
paths:
- /var/log/system.log
- /var/log/wifi.log
- type: log
paths:
- "/var/log/apache2/*"
fields:
apache: true
fields_under_root: true
示例中的配置文件啟動了兩個prospectors(prospectors列表是一個YAML 數組,因此每個prospectors都以a開頭-)。第一個prospectors有兩個收割機,一個收割system.log銼刀,另一個收割wifi.log。第二個prospectors為目錄中的每個文件啟動一個收集器,apache2並使用fields配置選項添加一個調用apache輸出的字段。
管理多行消息
Filebeat收集的文件可能包含跨越多行文本的郵件。例如,多行消息在包含Java堆棧跟蹤的文件中很常見。為了正確處理這些多行事件,您需要multiline在filebeat.yml文件中配置設置以指定哪些行是單個事件的一部分。
重要:如果要向Logstash發送多行事件,請在將事件數據發送到Logstash之前使用此處描述的選項來處理多行事件。嘗試在Logstash中實現多行事件處理(例如,通過使用Logstash多行編解碼器)可能會導致流和損壞數據的混合。
配置選項:
您可以filebeat.prospectors在filebeat.yml配置文件的部分中指定以下選項,以控制Filebeat如何處理跨越多行的消息。以下示例顯示如何配置Filebeat以處理多行消息,其中消息的第一行以方括號([)開頭。
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
Filebeat獲取所有不以其開頭的行,[並將它們與之前的行組合。例如,您可以使用此配置將多行消息的以下行連接到單個事件中:
[beat-logstash-some-name-832-2015.11.28] IndexNotFoundException[no such index]
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)
at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)
multiline.pattern
指定要匹配的正則表達式模式。請注意,Filebeat支持的正則表達式模式與Logstash支持的模式略有不同。請參閱正則表達式支持以獲取受支持的正則表達式模式列表。根據您配置其他多行選項的方式,與指定正則表達式匹配的行被視為前一行的延續或新多行事件的開始。您可以設置negate選項以否定模式。
multiline.negate
定義模式是否被否定。默認是false。
multiline.match
指定Filebeat如何將匹配行組合到事件中。設置是after或before。這些設置的行為取決於您為negate以下內容指定的內容:
設置為 negate 設置為 match 結果 例 pattern: ^b
multiline.flush_pattern
指定正則表達式,其中當前多行將從內存中刷新,結束多行消息。
multiline.max_lines
可以合並為一個事件的最大行數。如果多行消息包含多個消息max_lines,則丟棄任何其他行。默認值為500。
multiline.timeout
在指定的超時后,即使沒有找到新模式來啟動新事件,Filebeat也會發送多行事件。默認值為5秒。
全局filebeat配置選項
這些選項位於filebeat命名空間中。
registry_file
注冊表文件的名稱。如果使用相對路徑,則認為它相對於數據路徑。有關詳細信息,請參閱目錄布局部分 默認是${path.data}/registry。
filebeat.registry_file: registry
無法使用符號鏈接作為注冊表文件。
config_dir
包含其他prospector配置文件的目錄的完整路徑。每個配置文件必須以.yml。每個配置文件還必須指定完整的Filebeat配置層次結構,即使只處理文件的prospector部分。所有全局選項(例如registry_file)都將被忽略。
該config_dir選項必須指向主Filebeat配置文件所在目錄以外的目錄。
如果指定的路徑不是絕對路徑,則認為它相對於配置路徑。有關詳細信息,請參閱 目錄布局部分
filebeat.config_dir: path/to/configs
shutdown_timeout
Filebeat等待關閉以便發布者在Filebeat關閉之前完成發送事件的時間。
默認情況下,此選項被禁用,Filebeat不會等待發布者在關閉之前完成發送事件。這意味着在重新啟動Filebeat時,會再次發送發送到輸出但在Filebeat關閉之前未確認的任何事件。有關其工作原理的詳細信息,請參閱Filebeat如何確保至少一次交付?編輯。
您可以配置該shutdown_timeout選項以指定Filebeat等待發布者在關閉之前完成發送事件的最長時間。如果在shutdown_timeout到達之前確認了所有事件,則Filebeat將關閉。
此選項沒有建議的設置,因為確定正確的值在shutdown_timeout很大程度上取決於運行Filebeat的環境和輸出的當前狀態。
配置示例:
filebeat.shutdown_timeout:5s
常規配置選項
所有Elastic Beats都支持這些選項。因為它們是常見選項,所以它們不是命名空間。
配置示例:
name: "my-shipper"
tags: ["service-X", "web-tier"]
name
Beat的名字。如果此選項為空,hostname則使用服務器的選項。該名稱作為beat.name每個已發布事務中的字段包含在內。您可以使用該名稱對單個Beat發送的所有事務進行分組。
例:
name: "my-shipper"
tags
Beat在tags每個已發布事務的字段中包含的標記列表。標簽可以輕松地按不同的邏輯屬性對服務器進行分組。例如,如果您有一組Web服務器,則可以將“webservers”標記添加到每台服務器上的Beat中,然后在Kibana Web界面中使用過濾器和查詢來獲取整個服務器組的可視化。
例:
tags: ["my-service", "hardware", "test"]
fields
可以指定的可選字段,用於向輸出添加其他信息。字段可以是標量值,數組,字典或這些的任何嵌套組合。默認情況下,您在此處指定的字段將分組在fields輸出文檔中的子字典下。要將自定義字段存儲為頂級字段,請將該fields_under_root選項設置為true。
例:
fields: {project: "myproject", instance-id: "574734885120952459"}
fields_under_root
如果此選項設置為true,則自定義字段將存儲為輸出文檔中的頂級字段,而不是在fields子字典下分組。如果自定義字段名稱與其他字段名稱沖突,則自定義字段將覆蓋其他字段。
例:
fields_under_root: true
fields:
instance_id: i-10a64379
region: us-east-1
processors
要應用於節拍生成的數據的處理器列表。
有關在配置中指定處理器的信息,請參閱篩選並增強導出的數據。
max_procs
設置可以同時執行的最大CPU數。默認值是系統中可用的邏輯CPU數。
加載外部配置文件
Filebeat可以為探礦者和模塊加載外部配置文件,這允許您將配置分成多個較小的配置文件。有關詳細信息,請參閱Prospector配置編輯和 模塊配置編輯部分。
prospectors配置
對於prospector配置,您path可以在文件的filebeat.config.prospectors部分中指定該選項filebeat.yml。例如:
filebeat.config.prospectors:
enabled: true
path: configs/*.yml
pathGlob找到的每個文件都必須包含一個或多個prospector定義的列表。每個外部配置文件的第一行必須是以...開頭的prospector定義- type。確保省略filebeat.config.prospectors此文件中的行 。
例如:
- type: log
paths:
- /var/log/mysql.log
scan_frequency: 10s
- type: log
paths:
- /var/log/apache.log
scan_frequency: 5s
至關重要的是,兩個正在運行的探礦者沒有定義重疊的文件路徑。如果多個探測器同時收集同一個文件,則可能導致意外行為。
實時重新加載
您可以將Filebeat配置為在發生更改時動態重新加載外部配置文件。此功能適用於作為外部配置文件加載的prospector和模塊配置 。您無法使用此功能重新加載主filebeat.yml配置文件。
要配置此功能,請指定要監視配置更改的路徑(Glob)。當Glob找到的文件發生變化時,將根據配置文件中的更改啟動和停止新的探礦者和/或模塊。
此功能在容器環境中特別有用,其中一個容器用於為在同一主機上的其他容器中運行的服務尾部日志。
要啟用動態配置重裝,指定path和reload下選項filebeat.config.prospectors或filebeat.config.modules部分。例如:
filebeat.config.prospectors:
enabled: true
path: configs/*.yml
reload.enabled: true
reload.period: 10s
path:一個Glob,用於定義要檢查更改的文件。
reload.enabled: 設置true為時,啟用動態配置重新加載。
reload.period: 指定檢查文件更改的頻率。不要將其設置period為小於1,因為文件的修改時間通常以秒為單位存儲。將period小於1 設置為將導致不必要的開銷。
在具有POSIX文件權限的系統上,所有Beats配置文件都受所有權和文件權限檢查的約束。
配置內部隊列
Filebeat使用內部隊列在發布事件之前存儲事件。隊列負責緩沖事件並將事件組合成可由輸出使用的批處理。輸出將使用批量操作在一個事務中發送一批事件。
可以通過queue在filebeat.yml配置文件的部分中設置選項來配置內部隊列的類型和行為。
配置示例將內存隊列設置為最多緩沖4096個事件,512個可用事件或者最舊的可用事件已在隊列中等待5秒:
queue.mem:
events: 4096
flush.min_events:512
flush.timeout:5s
events:
隊列可以存儲的事件數。默認值為4096個事件。
flush.min_events:
發布所需的最少事件數。如果此值設置為0,則輸出可以開始發布事件而無需額外的等待時間。否則輸出必須等待更多事件變為可用。默認值為2048。
flush.timeout:
最長等待時間flush.min_events。如果設置為0,則事件將立即可供使用。默認值為1秒。
配置輸出
配置elasticsearch輸出
為輸出指定Elasticsearch時,Filebeat會使用Elasticsearch HTTP API將事務直接發送到Elasticsearch。
配置示例:
output.elasticsearch:
hosts: ["http://localhost:9200"]
index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
ssl.certificate: "/etc/pki/client/cert.pem"
ssl.key: "/etc/pki/client/cert.key"
要啟用SSL,只需添加https到主機下定義的所有URL 。
output.elasticsearch:
hosts: ["https://localhost:9200"]
username: "admin"
password: "s3cr3t"
如果Elasticsearch節點由定義IP:PORT,則添加protocol: https到yaml文件。
output.elasticsearch:
hosts: ["localhost"]
protocol: "https"
username: "admin"
password: "s3cr3t"
配置選項
enabled
enabled config是一個布爾設置,用於啟用或禁用輸出。如果設置為false,則禁用輸出。默認值是true
hosts
要連接的Elasticsearch節點列表。事件以循環順序分發到這些節點。如果一個節點無法訪問,則會自動將該事件發送到另一個節點。每個Elasticsearch節點都可以定義為URL或IP:PORT。例如:http://192.15.3.2,https://es.found.io:9230或192.24.3.2:9300。如果未指定端口,9200則使用。
output.elasticsearch:
hosts: ["10.45.3.2:9220", "10.45.3.1:9230"]
protocol: https
path: /elasticsearch
在前面的示例中,Elasticsearch節點位於https://10.45.3.2:9220/elasticsearch和 https://10.45.3.1:9230/elasticsearch。
compression_level
gzip壓縮級別。將此值設置為0將禁用壓縮。壓縮級別必須在1(最佳速度)到9(最佳壓縮)的范圍內。
增加壓縮級別將減少網絡使用,但會增加CPU使用率。默認值為0。
worker
每個配置主機向Elasticsearch發布事件的工作器數。這最適用於啟用負載平衡模式。示例:如果您有2個主機和3個工作程序,則總共啟動6個工作程序(每個主機3個)。默認值為1。
username
用於連接Elasticsearch的基本身份驗證用戶名。
password
用於連接Elasticsearch的基本身份驗證密碼。
parameters
使用索引操作在url中傳遞的HTTP參數字典。
protocol
可以訪問協議Elasticsearch的名稱。選項是: http或https。默認是http。但是,如果您指定了URLhosts,protocol則會通過您在URL中指定的任何方案覆蓋該值。
path
HTTP API調用前面的HTTP路徑前綴。這對於Elasticsearch監聽在自定義前綴下導出API的HTTP反向代理的情況非常有用。
headers
自定義HTTP標頭,以添加到Elasticsearch輸出創建的每個請求。例:
output.elasticsearch.headers:
X-My-Header: Header contents
通常可以通過用逗號分隔它們來為同一標頭名稱指定多個標頭值。
proxy_url
連接到Elasticsearch服務器時要使用的代理的URL。該值可以是完整的URL或“host [:port]”,在這種情況下,假定為“http”方案。如果未通過配置文件指定值,則使用代理環境變量。有關 環境變量的更多信息,請參閱 golang文檔。
index
要將事件寫入的索引名稱。默認值為 "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"(例如 "filebeat-6.2.4-2017.04.26")。如果更改此設置,還需要配置setup.template.name和setup.template.pattern選項(請參閱加載Elasticsearch索引模板)。如果您使用的是預先構建的Kibana儀表板,則還需要設置該setup.dashboards.index選項(請參閱 加載Kibana儀表板)。
indices
支持條件的索引選擇器規則數組,基於格式字符串的字段訪問和名稱映射。第一個規則匹配將用於設置index要發布的事件。如果indices缺少或沒有規則匹配,index將使用該字段。
規則設置:
index:要使用的索引格式字符串。如果缺少使用的字段,則規則將失敗。
mapping:字典映射索引名稱到新名稱
default:如果mapping找不到匹配項,則為默認字符串值。
when:必須成功執行當前規則的條件。
示例elasticsearch輸出indices:
output.elasticsearch:
hosts: ["http://localhost:9200"]
index: "logs-%{[beat.version]}-%{+yyyy.MM.dd}"
indices:
- index: "critical-%{[beat.version]}-%{+yyyy.MM.dd}"
when.contains:
message: "CRITICAL"
- index: "error-%{[beat.version]}-%{+yyyy.MM.dd}"
when.contains:
message: "ERR"
pipeline
格式字符串值,指定要將事件寫入的攝取節點管道。
output.elasticsearch:
hosts: ["http://localhost:9200"]
pipeline: my_pipeline_id
pipelines
與indices數組類似,這是一個支持條件,基於格式字符串的字段訪問和名稱映射的管道選擇器配置數組。第一個規則匹配將用於設置 pipeline要發布的事件。如果pipelines缺少或沒有規則匹配,pipeline將使用該字段。
示例elasticsearch輸出pipelines:
filebeat.prospectors:
- paths: ["/var/log/app/normal/*.log"]
fields:
type: "normal"
- paths: ["/var/log/app/critical/*.log"]
fields:
type: "critical"
output.elasticsearch:
hosts: ["http://localhost:9200"]
index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
pipelines:
- pipeline: critical_pipeline
when.equals:
fields.type: "critical"
- pipeline: normal_pipeline
when.equals:
fields.type: "normal"
max_retries
Filebeat忽略max_retries設置並無限期重試。
bulk_max_size
單個Elasticsearch批量API索引請求中要批量處理的最大事件數。默認值為50。
事件可以分批收集。Filebeat會將批次大於bulk_max_size 多批次。
指定更大的批處理大小可以通過降低發送事件的開銷來提高性能。但是,大批量大小也會增加處理時間,這可能會導致API錯誤,連接中斷,超時發布請求,以及最終導致吞吐量降低。
設置bulk_max_size為小於或等於0的值將禁用批次拆分。禁用拆分時,隊列將決定批處理中包含的事件數。
timeout
Elasticsearch請求的http請求超時(以秒為單位)。默認值為90。
ssl
SSL參數的配置選項,例如用於基於HTTPS的連接的證書頒發機構。如果ssl缺少該部分,則主機CA用於與Elasticsearch的HTTPS連接。
配置Logstash輸出
Logstash輸出通過使用在TCP上運行的lumberjack協議將事件直接發送到Logstash。Logstash允許對生成的事件進行額外處理和路由。要將Logstash用作輸出,必須 為Logstash 安裝和配置 Beats輸入插件。
如果要使用Logstash對Filebeat收集的數據執行其他處理,則需要配置Filebeat以使用Logstash。
要執行此操作,請編輯Filebeat配置文件以通過注釋掉它來禁用Elasticsearch輸出,並通過取消注釋logstash部分來啟用Logstash輸出:
output.logstash:
hosts: ["127.0.0.1:5044"]
該hosts選項指定Logstash服務器和port(5044),其中Logstash配置為偵聽傳入的Beats連接。
對於此配置,您必須手動將索引模板加載到Elasticsearch中,因為自動加載模板的選項僅適用於Elasticsearch輸出。
訪問元數據字段
發送到Logstash的每個事件都包含以下元數據字段,您可以在Logstash中使用這些字段進行索引和過濾:
{
...
"@metadata": {
"beat": "filebeat",
"version": "6.2.4"
"type": "doc"
}
}
Filebeat使用該@metadata字段將元數據發送到Logstash。
默認為filebeat。要更改此值,請index在Filebeat配置文件中設置該選項。
目前的值type是硬編碼的doc。之前的Logstash配置使用它來設置Elasticsearch中的文檔類型。
警告:@metadata.type由Logstash輸出添加的字段已棄用,硬編碼doc,並將在Filebeat7.0中刪除。
您可以從Logstash配置文件中訪問此元數據,以根據元數據的內容動態設置值。
例如,版本2.x和5.x的以下Logstash配置文件將Logstash設置為使用Beats報告的索引和文檔類型將事件索引到Elasticsearch中:
input {{
beats {{
port => 5044=> 5044
}}
}}
output {{
elasticsearch {{
hosts => ["http://localhost:9200"]=> ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}}
}}
%{[@metadata][beat]}將索引名稱的第一部分設置為beat元數據字段的值,%{[@metadata][version]}將第二部分設置為Beat的版本,並將%{+YYYY.MM.dd}名稱的第三部分設置為基於Logstash @timestamp字段的日期。例如: filebeat-6.2.4-2017.03.29。
使用此處顯示的Logstash配置索引到Elasticsearch中的事件類似於Beats直接索引到Elasticsearch的事件。
配置選項
enabled
enabled config是一個布爾設置,用於啟用或禁用輸出。如果設置為false,則禁用輸出。默認值是true。
hosts
要連接的已知Logstash服務器列表。如果禁用負載均衡,但配置了多個主機,則會隨機選擇一個主機(沒有優先級)。如果一台主機無法訪問,則隨機選擇另一台主機。此列表中的所有條目都可以包含端口號。如果未指定端口號,則為其指定的值port將用作默認端口號。
compression_level
gzip壓縮級別。將此值設置為0將禁用壓縮。壓縮級別必須在1(最佳速度)到9(最佳壓縮)的范圍內。增加壓縮級別將減少網絡使用,但會增加CPU使用率。默認值為3。
worker
每個配置主機將事件發布到Logstash的工作器數。這最適用於啟用負載平衡模式。示例:如果您有2個主機和3個工作程序,則總共啟動6個工作程序(每個主機3個)。
loadbalance
如果設置為true並且配置了多個Logstash主機,則輸出插件會將已發布的事件負載平衡到所有Logstash主機上。如果設置為false,則輸出插件僅將所有事件發送到一個主機(隨機確定),如果所選主機無響應,則會切換到另一個主機。默認值為false。
ttl
是否可以連接到Logstash,之后將重新建立連接。Logstash主機代表負載均衡器時很有用。由於與Logstash主機的連接是粘性操作,因此負載平衡器可能導致實例之間的負載分配不均勻。在連接上指定TTL允許在實例之間實現相等的連接分配。指定TTL為0將禁用此功能。默認值為0。異步Logstash客戶端(具有“pipelining”選項集的客戶端)尚不支持“ttl”選項。
output.logstash:
hosts: ["localhost:5044", "localhost:5045"]
loadbalance: true
index: filebeat
pipelining
配置從logstash等待ACK時要異步發送到logstash的批次數。只有pipelining 在編寫批次數后,輸出才會變為阻塞。如果配置值為0,則禁用流水線操作。默認值為2。
proxy_url
連接到Logstash服務器時要使用的SOCKS5代理的URL。該值必須是方案為的URL socks5://。用於與Logstash通信的協議不基於HTTP,因此無法使用Web代理。
如果SOCKS5代理服務器需要客戶端身份驗證,則可以在URL中嵌入用戶名和密碼,如示例中所示。
使用代理時,主機名在代理服務器上而不是在客戶端上解析。您可以通過設置proxy_use_local_resolver選項來更改此行為 。
output.logstash:
hosts: ["remote-host:5044"]
proxy_url: socks5://user:password@socks5-proxy:2233
proxy_use_local_resolver
該proxy_use_local_resolver選項確定在使用代理時是否在本地解析Logstash主機名。默認值為false,這意味着在使用代理時,代理服務器上會發生名稱解析。
index
將事件寫入的索引根名稱。默認值為Beat名稱。例如,"filebeat"生成"[filebeat-]6.2.4-YYYY.MM.DD" 索引(例如,"filebeat-6.2.4-2017.04.26")。
ssl
SSL參數的配置選項,例如Logstash連接的根CA. 有關更多信息,請參閱 指定SSL設置。要使用SSL,還必須為Logstash配置 Beats輸入插件以使用SSL / TLS。
timeout
在超時之前等待Logstash服務器響應的秒數。默認值為30(秒)。
max_retries
Filebeat忽略max_retries設置並無限期重試。
bulk_max_size
單個Logstash請求中要批量處理的最大事件數。默認值為2048。
如果Beat發送單個事件,則會將事件收集到批處理中。如果Beat發布大量事件(大於指定的值bulk_max_size),則拆分批處理。
指定更大的批處理大小可以通過降低發送事件的開銷來提高性能。但是,大批量大小也會增加處理時間,這可能會導致API錯誤,連接中斷,超時發布請求,以及最終導致吞吐量降低。
設置prospectors置bulk_max_size為小於或等於0的值將禁用批次拆分。禁用拆分時,隊列將決定批處理中包含的事件數。
slow_start
如果啟用,則每個事務僅傳輸一批事件中的一部分事件。bulk_max_size如果沒有遇到錯誤,則要發送的事件數量會增加。出錯時,每個事務的事件數量再次減少。默認是false。
配置kafka輸出
Kafka輸出將事件發送到Apache Kafka。
配置示例
output.kafka:
# initial brokers for reading cluster metadata
hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]
# message topic selection + partitioning
topic: '%{[fields.log_topic]}'
partition.round_robin:
reachable_only: false
required_acks: 1
compression: gzip
max_message_bytes: 1000000
大於的事件max_message_bytes將被刪除。要避免此問題,請確保Filebeat不會生成大於的事件max_message_bytes。
配置選項
enabled
的enabled配置是一個布爾設置可啟用或禁止輸出。如果設置為false,則禁用輸出。默認值是true。
hosts
從中獲取集群元數據的Kafka代理地址列表。集群元數據包含發布到的實際Kafka代理事件。
version
假設Kafka版本$ filebeat運行。默認為最早支持的穩定版本(當前版本為0.8.2.0)。
如果啟用了版本0.10.0.0+,則將添加事件時間戳。
有效值之間的所有卡夫卡版本0.8.2.0和0.11.0.0。
username
用於連接Kafka的用戶名。如果配置了用戶名,則還必須配置密碼。僅支持SASL / PLAIN。
password
連接Kafka的密碼。
topic
用於制作活動的Kafka主題。該設置可以是使用任何事件字段的格式字符串。例如,您可以使用 fields配置選項添加調用log_topic該事件的自定義字段,然后設置topic為自定義字段的值:
topics
支持條件的主題選擇器規則數組,基於格式字符串的字段訪問和名稱映射。第一個規則匹配將用於設置topic要發布的事件。如果topics缺少或沒有規則匹配,topic將使用該字段。
規則設置:
topic:要使用的主題格式字符串。如果缺少使用的字段,則規則將失敗。
mapping:字典映射索引名稱到新名稱
default:如果mapping找不到匹配項,則為默認字符串值。
when:必須成功執行當前規則的條件。
key
可選的Kafka事件密鑰。如果已配置,則事件鍵必須是唯一的,並且可以使用格式字符串從事件中提取。
partition
Kafka輸出經紀人事件分區策略。必須是一個random, round_robin或hash。默認情況下,使用hash分區程序。
random.group_events:設置在分區程序隨機選擇新分區之前要發布到同一分區的事件數。默認值為1表示在每個事件后隨機選取新分區。
round_robin.group_events:在分區程序選擇下一個分區之前,設置要發布到同一分區的事件數。默認值為1表示在每個事件之后將選擇下一個分區。
hash.hash:用於計算分區哈希值的字段列表。如果未配置任何字段,key則將使用事件值。
hash.random:如果不能計算散列值或鍵值,則隨機分配事件。
默認情況下,所有分區程序都會嘗試將事件發布到所有分區。如果分區的領導者無法訪問節拍,則輸出可能會阻止。所有分區程序都支持設置reachable_only以覆蓋此行為。如果reachable_only設置為true,則事件將僅發布到可用分區。
發布到可用分區的子集可能會增加資源使用量,因為事件可能會分布不均勻。
client_id
可配置的ClientID,用於記錄,調試和審計。默認為“beats”。
worker
並發負載均衡Kafka輸出工作者的數量。
codec
輸出編解碼器配置。如果codec缺少該部分,則事件將被json編碼。有關更多信息,請參閱輸出編解碼器
metadata
Kafka元數據更新設置。元數據確實包含有關用於發布的代理,主題,分區和活動領導者的信息。
refresh_frequency 元數據刷新間隔。默認為10分鍾。
retry.max 當群集處於領導者選舉的中間時,元數據更新重試的總次數。默認值為3。
retry.backoff 領導選舉期間重試之間的等待時間。默認值為250毫秒。
max_retries
Filebeat忽略max_retries設置並無限期重試。
bulk_max_size
單個Kafka請求中批量處理的最大事件數。默認值為2048。
timeout
在超時之前等待Kafka經紀人響應的秒數。默認值為30(秒)。
broker_time
代理將等待所需ACK數的最大持續時間。默認值為10秒。
channel_buffer_size
每個Kafka代理在輸出管道中緩沖的消息數。默認值為256。
keep_alive
活動網絡連接的保持活動期。如果為0,則禁用保持活動。默認值為0秒。
compression
設置輸出壓縮編解碼器。必須是一個none,snappy,lz4和gzip。默認是gzip。
max_message_bytes
JSON編碼消息的最大允許大小。更大的消息將被刪除。默認值為1000000(字節)。該值應等於或小於經紀人的值message.max.bytes。
required_acks
經紀人需要的ACK可靠性等級。0 =無響應,1 =等待本地提交,-1 =等待所有副本提交。默認值為1。
注意:如果設置為0,Kafka不會返回任何ACK。錯誤時,消息可能會以靜默方式丟失。
ssl
SSL參數的配置選項,例如Kafka連接的根CA. 有關更多信息,請參閱 指定SSL設置。
配置redis輸出
Redis輸出將事件插入Redis列表或Redis通道。此輸出插件與Logstash 的Redis輸入插件兼容。
配置示例:
output.redis:redis:
hosts: ["localhost"] hosts: ["localhost"]
password: "my_password"password: "my_password"
key: "filebeat"key: "filebeat"
db: 0db: 0
timeout: 5timeout: 5
兼容性
此輸出適用於Redis 3.2.4。
配置選項
enabled
enabled config是一個布爾設置,用於啟用或禁用輸出。如果設置為false,則禁用輸出。默認值是true。
hosts
要連接的Redis服務器列表。如果啟用了負載平衡,則會將事件分發到列表中的服務器。如果一台服務器無法訪問,則事件僅分發給可訪問的服務器。您可以通過指定HOST或定義每個Redis服務器 HOST:PORT。例 如:"192.15.3.2"或"test.redis.io:12345"。如果未指定端口號,port則使用配置的值。
key
發布事件的Redis列表或通道的名稱。默認為“filebeat”。
可以使用訪問要發布的事件中的任何字段的格式字符串動態設置redis密鑰。
此配置將使用該fields.list字段設置redis列表鍵。如果 fields.list缺少,fallback將被使用。
output.redis:redis:
hosts: ["localhost"] hosts: ["localhost"]
key: "%{[fields.list]:fallback}"key: "%{[fields.list]:fallback}"
keys
支持條件的鍵選擇器配置數組,基於格式字符串的字段訪問和名稱映射。第一個規則匹配將用於設置key要發布的事件。如果keys缺少或沒有規則匹配,key將使用該字段。規則設置:
key:鍵格式字符串。如果缺少格式字符串中使用的字段,則規則將失敗。
mapping:字典將鍵值映射到新名稱
default:如果mapping找不到匹配項,則為默認字符串值。
when:必須成功執行當前規則的條件。
示例keys設置:
output.redis:redis:
hosts: ["localhost"] hosts: ["localhost"]
key: "default_list"key: "default_list"
keys:keys:
- key: "info_list" # send to info_list if `message` field contains INFO - key: "info_list" # send to info_list if `message` field contains INFO
when.contains:contains:
message: "INFO" message: "INFO"
- key: "debug_list" # send to debug_list if `message` field contains DEBUG- key: "debug_list" # send to debug_list if `message` field contains DEBUG
when.contains:contains:
message: "DEBUG" message: "DEBUG"
- key: "%{[fields.list]}"- key: "%{[fields.list]}"
mapping:mapping:
"http": "frontend_list" "http": "frontend_list"
"nginx": "frontend_list""nginx": "frontend_list"
"mysql": "backend_list""mysql": "backend_list"
password
用於進行身份驗證的密碼。默認為無身份驗證。
db
發布事件的Redis數據庫編號。默認值為0。
datatype
用於發布事件的Redis數據類型。如果數據類型為list,則使用Redis RPUSH命令,並將所有事件添加到列表中,並在其下定義鍵key。如果使用數據類型,channel則使用Redis PUBLISH命令,這意味着所有事件都被推送到Redis的pub / sub機制。頻道的名稱是在其下定義的名稱key。默認值為list。
codec
輸出編解碼器配置。如果codec缺少該部分,則事件將被json編碼。
worker
為配置為向Redis發布事件的每個主機使用的工作器數。將此設置與loadbalance選項一起使用 。例如,如果您有2個主機和3個工作程序,則總共啟動6個工作程序(每個主機3個)。
loadbalance
如果設置為true並且配置了多個主機或工作程序,則輸出插件會將已發布的事件負載平衡到所有Redis主機上。如果設置為false,則輸出插件僅將所有事件發送到一個主機(隨機確定),如果當前選定的主機無法訪問,則將切換到另一個主機。默認值是true。
timeout
Redis連接超時(以秒為單位)。默認值為5秒。
max_retries
Filebeat忽略max_retries設置並無限期重試。
bulk_max_size
單個Redis請求或管道中要批量處理的最大事件數。默認值為2048。
如果Beat發送單個事件,則會將事件收集到批處理中。如果Beat發布大量事件(大於指定的值 bulk_max_size),則拆分批處理。
指定更大的批處理大小可以通過降低發送事件的開銷來提高性能。但是,大批量大小也會增加處理時間,這可能會導致API錯誤,連接中斷,超時發布請求,以及最終導致吞吐量降低。
設置bulk_max_size為小於或等於0的值將禁用批次拆分。禁用拆分時,隊列將決定批處理中包含的事件數。
ssl
SSL參數的配置選項,例如由SSL代理保護的Redis連接的根CA(例如stunnel)。有關更多信息,請參閱 指定SSL設置。
proxy_url
連接到Redis服務器時要使用的SOCKS5代理的URL。該值必須是方案為的URL socks5://。您無法使用Web代理,因為用於與Redis通信的協議不基於HTTP。
如果SOCKS5代理服務器需要客戶端身份驗證,則可以在URL中嵌入用戶名和密碼。
使用代理時,主機名在代理服務器上而不是在客戶端上解析。您可以通過設置proxy_use_local_resolver選項來更改此行為 。
proxy_use_local_resolver
此選項確定在使用代理時是否在本地解析Redis主機名。默認值為false,這意味着代理服務器上會發生名稱解析。
配置文件輸出
File輸出將事務轉儲到每個事務都是JSON格式的文件中。目前,此輸出用於測試,但它可以用作Logstash的輸入。
output.file:
path: "/tmp/filebeat"
filename: filebeat
#rotate_every_kb: 10000
#number_of_files: 7
#permissions: 0600
配置選項
enabled
enabled config是一個布爾設置,用於啟用或禁用輸出。如果設置為false,則禁用輸出。默認值是true。
path
保存生成文件的目錄的路徑。此選項是必需的。
filename
生成的文件的名稱。默認設置為Beat名稱。例如,Filebeat默認生成的文件將是“filebeat”,“filebeat.1”,“filebeat.2”等。
rotate_every_kb
每個文件的最大大小(以KB為單位)。達到此大小時,將旋轉文件。默認值為10240 KB。
nunber_of_files
要保存的最大文件數path。達到此數量的文件時,將刪除最舊的文件,其余文件將從最后一個文件轉移到第一個文件。默認值為7個文件。
permissions
用於文件創建的權限。默認值為0600。
codec
輸出編解碼器配置。如果codec缺少該部分,則事件將被json編碼。有關更多信息,請參閱輸出編解碼器
配置控制台輸出
Console輸出將JSON格式的事件寫入stdout。
output.console:
pretty: true
配置選項
pretty
如果pretty設置為true,則寫入stdout的事件將被很好地格式化。默認值為false。
codec
輸出編解碼器配置。如果codec缺少該部分,則使用該pretty選項對事件進行json編碼。有關更多信息,請參閱輸出編解碼器
enabled
enabled config是一個布爾設置,用於啟用或禁用輸出。如果設置為false,則禁用輸出。默認值是true。
bulk_max_size
發布期間內部緩沖的最大事件數。默認值為2048。
指定較大的批處理大小可能會在發布期間增加一些延遲和緩沖。但是,對於控制台輸出,此設置不會影響事件的發布方式。
設置bulk_max_size為小於或等於0的值將禁用批次拆分。禁用拆分時,隊列將決定批處理中包含的事件數。
配置輸出解碼器
對於不需要特定編碼的輸出,可以使用編解碼器配置更改編碼。您可以指定json或format 編解碼器。默認情況下,使用json編解碼器。
json.pretty:如果pretty設置為true,則事件將被很好地格式化。默認值為false。
使用json帶有漂亮打印的編解碼器將事件寫入控制台的示例配置:
output.console:
codec.json:
pretty: true
format.string:可配置的格式字符串,用於創建自定義格式的消息。
可配置示例,使用format編解碼器將事件時間戳和消息字段打印到控制台:
output.console:
codec.format:
string: '%{[@timestamp]} %{[message]}'
負載均衡輸出主機
Filebeat提供配置選項,可用於在將事件發送到多個主機時微調負載平衡。
要啟用負載平衡,請指定loadbalance: true配置輸出的時間。例如:
output.logstash:
hosts: ["localhost:5044", "localhost:5045"]
loadbalance: true
該loadbalance選項可用於Redis,Logstash和Elasticsearch輸出。Kafka輸出在內部處理負載平衡。
負載均衡器還支持每個主機多個工作線程。默認是 worker: 1。如果增加工作人員數量,將使用其他網絡連接。參與負載平衡的工作者總數是number of hosts * workers。
filebeat.prospectors:
- type: log
paths:
- /var/log/*.log
output.logstash:
hosts: ["localhost:5044", "localhost:5045"]
loadbalance: true
worker: 2
在此示例中,有4個worker參與負載平衡。
指定ssl設置
您可以在配置時指定SSL選項:
支持SSL的 輸出
該Kibana端點
啟用ssl的示例輸出配置
output.elasticsearch.hosts: ["192.168.1.42:9200"]
output.elasticsearch.ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
output.elasticsearch.ssl.certificate: "/etc/pki/client/cert.pem"
output.elasticsearch.ssl.key: "/etc/pki/client/cert.key"
另請參閱使用SSL與Logstash進行安全通信。
啟用SSL的示例Kibana端點配置:
setup.kibana.host: "192.0.2.255:5601"
setup.kibana.protocol: "https"
setup.kibana.ssl.enabled: true
setup.kibana.ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
setup.kibana.ssl.certificate: "/etc/pki/client/cert.pem"
setup.kibana.ssl.key: "/etc/pki/client/cert.key"
配置選項
enabled
該enabled設置可用於通過將其設置為禁用ssl配置false。默認值為true。如果enabled設置為false或 ssl缺少部分,則禁用SSL設置。
certificate_authorities
服務器驗證的根證書列表。如果certificate_authorities為空或未設置,則使用主機系統的可信證書頒發機構。
certificate: "/etc/pki/client/cert.pem"
SSL客戶端身份驗證證書的路徑。如果未指定證書,則客戶端身份驗證不可用。如果服務器請求客戶端身份驗證,連接可能會失敗 如果SSL服務器不需要客戶端身份驗證,則將加載證書,但服務器不會請求或使用該證書。
配置此選項后,certificate_key還需要該選項。
key: "/etc/pki/client/cert.key"
用於客戶端身份驗證的客戶端證書密鑰。如果certificate指定,則此選項是必需的。
key_passphrase
密碼短語用於解密存儲在配置key文件中的加密密鑰。
supported_protocols
允許的SSL / TLS版本列表。如果SSL / TLS服務器決定未配置的協議版本,則在握手期間或之后將斷開連接。該設置是允許的協議版本的列表: SSLv3,TLSv1用於TLS版本1.0, TLSv1.0,TLSv1.1和TLSv1.2。默認值為[TLSv1.0, TLSv1.1, TLSv1.2]。
verification_mode
此選項控制客戶端是否驗證服務器證書和主機名。有效值為none和full。如果verification_mode設置為none,則接受所有服務器主機名和證書。在此模式下,基於TLS的連接容易受到中間人攻擊。使用此選項僅用於測試。默認是full
cipher_suites
要使用的密碼套件列表。第一個條目具有最高優先級。如果省略此選項,則使用Go加密庫的默認套件(推薦)。
以下密碼套件可用:
RSA-RC4-128-SHA(默認禁用 - 不建議使用RC4)
RSA-3DES-CBC3-SHA
RSA-AES-128-CBC-SHA
RSA-AES-256-CBC-SHA
ECDHE-ECDSA-RC4-128-SHA(默認禁用 - 不建議使用RC4)
ECDHE-ECDSA-AES-128-CBC-SHA
ECDHE-ECDSA-AES-256-CBC-SHA
ECDHE-RSA-RC4-128-SHA(默認禁用 - 不建議使用RC4)
ECDHE-RSA-3DES-CBC3-SHA
ECDHE-RSA-AES-128-CBC-SHA
ECDHE-RSA-AES-256-CBC-SHA
ECDHE-RSA-AES-128-GCM-SHA256(僅限TLS 1.2)
ECDHE-ECDSA-AES-128-GCM-SHA256(僅限TLS 1.2)
ECDHE-RSA-AES-256-GCM-SHA384(僅限TLS 1.2)
ECDHE-ECDSA-AES-256-GCM-SHA384(僅限TLS 1.2)
以下是用於定義密碼套件的首字母縮略詞列表:
3DES:使用三重DES的密碼套件
AES-128/256:使用帶128/256密鑰的AES的密碼套件。
CBC:使用密碼塊鏈接作為分組密碼模式的密碼。
ECDHE:使用Elliptic Curve Diffie-Hellman(DH)短暫密鑰交換的密碼套件。
ECDSA:使用橢圓曲線數字簽名算法進行身份驗證的密碼套件。
GCM:Galois / Counter模式用於對稱密鑰加密。
RC4:使用RC4的密碼套件。
RSA:使用RSA的密碼套件。
SHA,SHA256,SHA384:使用SHA-1,SHA-256或SHA-384的密碼套件。
curve_types
ECDHE(橢圓曲線Diffie-Hellman短暫密鑰交換)的曲線類型列表。
以下橢圓曲線類型可用:
P-256
P-384
P-521
renegotiation
這會配置支持哪種類型的TLS重新協商。有效的選項是never,once和freely。永遠不會是默認值。
never - 禁用重新協商。
once - 允許遠程服務器在每個連接請求重新協商一次。
freely - 允許遠程服務器重復請求重新協商。
過濾並增強導出的數據
您的用例可能只需要Filebeat導出的數據的一部分,或者您可能需要增強導出的數據(例如,通過添加元數據)。Filebeat提供了幾個用於過濾和增強導出數據的選項。
您可以將每個prospector配置為包含或排除特定行或文件。這允許您為每個探針器指定不同的過濾條件。要做到這一點,您可以使用include_lines, exclude_lines以及exclude_files 下方的選項filebeat.prospectors配置文件的部分(見 設置勘探者)。此方法的缺點是您需要為所需的每個過濾條件實施配置選項。
另一種方法(此處描述的方法)是定義處理器以配置Filebeat導出的所有數據的全局處理。
處理器
您可以在配置中定義處理器,以便在將事件發送到配置的輸出之前處理事件。libbeat庫提供以下處理器:
減少導出字段的數量
使用其他元數據增強事件
執行額外的處理和解碼
每個處理器接收事件,將定義的操作應用於事件,並返回事件。如果定義處理器列表,則按照Filebeat配置文件中定義的順序執行它們。
event -> processor 1 -> event1 -> processor 2 -> event2 ...
刪除事件示例
以下配置將刪除所有DEBUG消息。
processors:
- drop_event:
when:
regexp:
message: "^DBG:"
要刪除來自某個日志文件的所有日志消息:
processors:
- drop_event:
when:
contains:
source: "test"
以上。