專業照片處理工具
阿新 • • 發佈:2021-10-28
參考:
【1】filebeat 配置檔案詳解https://blog.csdn.net/chengxuyuanyonghu/article/details/54378778
【2】ELK-filebeat 採集配置與實現https://blog.csdn.net/fd2025/article/details/80289499
一、Filebeat簡介
Filebeat是本地檔案的日誌資料採集器,可監控日誌目錄或特定日誌檔案(tail file),並將它們轉發給Elasticsearch或Logstatsh進行索引、kafka等。帶有內部模組(auditd,Apache,Nginx,System和MySQL),可通過一個指定命令來簡化通用日誌格式的收集,解析和視覺化。
二、安裝使用(windows和linux安裝包)
1.下載並解壓filebeat
下載地址:https://www.elastic.co/cn/downloads/beats/filebeat
2.編輯配置檔案filebeat.yml
filebeat 配置
採用YAML語言作為其配置語法。它的基本語法規則如下:
大小寫敏感
使用縮排表示層級關係
縮排時不允許使用Tab鍵,只允許使用空格
縮排的空格資料不重要,只要相同層級的元素左側對齊即可
# ============================== Filebeat inputs =============================== filebeat.config.inputs: enable:true path: ${path.config}/input.yml reload.enabled: true reload.period: 2s # ============================== Filebeat modules ============================== filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: true reload.period: 10s # ======================= Elasticsearch template setting ======================= setup.template.settings: index.number_of_shards:3 index.number_of_replicas: 1 # 允許自動生成index模板 setup.template.enabled: true # # 生成index模板時欄位配置檔案 setup.template.fields: fields.yml # # 如果存在模組則覆蓋 setup.template.overwrite: true # # 生成index模板的名稱 setup.template.name: "ops_log" # # 生成index模板匹配的index格式 setup.template.pattern: "ops-*" #索引生命週期管理ilm功能預設開啟,開啟的情況下索引名稱只能為filebeat-*, 通過setup.ilm.enabled: false進行關閉; setup.ilm.pattern: "{now/d}" setup.ilm.enabled: false # ================================== General =================================== # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch: # Array of hosts to connect to. hosts: ["localhost:9200"] index: "%{[fields.source]}-*" indices: - index: "ops-systemlog-%{+yyyy.MM.dd}" when.equals: fields: source: "ops-systemlog" #- index: "opslog-operationlog-%{+yyyy.MM.dd}" - index: "ops-operationlog-%{+yyyy.MM.dd}" when.equals: fields: #source: "operationlog" source: "ops-operationlog" # ================================= Processors ================================= processors: #... - script: lang: javascript id: my_filter tag: enable source: > function process(event) { //提取時間值 var str= event.Get("message"); var time =str.split(" ").slice(0,2).join(" "); event.Put("start_time",time); } - timestamp: # 格式化時間值 給 時間戳 field: start_time layouts: - '2006-01-02 15:04:05' - '2006-01-02 15:04:05.999' test: - '2019-06-22 16:33:51'
input.yml
#filebeat.input: - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - E:\junxue\ELK_demo03\demo01\system*.txt tags: "c7f1771f-0c8f-4c75-9d71-3b8c4b6bd191" fields: source: ops-systemlog #tags: ["GUID"] #- /var/log/*.log #- c:\programdata\elasticsearch\logs\* #include_l ines: ['^ERROR'] - type: log enabled: true paths: - E:\junxue\ELK_demo03\demo02\operation*.txt #- E:\junxue\ELK_demo02\demo02\junxue*.txt tags: "c7f1771f-0c8f-4c75-9d71-3b8c4b6bd190" fields: #source: operationlog source: ops-operationlog
3.啟動
linux
sudo ./filebeat -e -c filebeat.yml
window
.\filebeat.exe -e -c filebeat.yml
三、配置檔案詳細說明
filebeat: # List of prospectors to fetch data. prospectors: # 指定要監控的日誌,可以指定具體得檔案或者目錄 paths: - /var/log/*.log (這是預設的)(自行可以修改)(比如我放在/home/hadoop/app.log裡) #- c:\programdata\elasticsearch\logs\* # 指定被監控的檔案的編碼型別,使用plain和utf-8都是可以處理中文日誌的 #encoding: plain # 指定檔案的輸入型別log(預設)或者stdin input_type: log # 排除指定符合正則表示式的行 DEBUG TRACE INFO # exclude_lines: ["^DBG"] # 包含輸入中符合正則表示式列表的那些行(預設包含所有行),include_lines執行完畢之後會執行exclude_lines # include_lines: ["^ERR", "^WARN"] # Exclude files. A list of regular expressions to match. Filebeat drops the files that # are matching any regular expression from the list. By default, no files are dropped. # 忽略掉符合正則表示式列表的檔案 # exclude_files: [".gz$"] # 這個得意思就是會在es中多新增一個欄位,格式為 "filelds":{"level":"debug"} #fields: # level: debug # review: 1 # true/false 額外欄位是否存放至根目錄 #fields_under_root: false # 設定Elasticsearch輸出時的document的type欄位 可以用來給日誌進行分類。Default: log #document_type: log # Filebeat以多快的頻率去prospector指定的目錄下面檢測檔案更新(比如是否有新增檔案) # 如果設定為0s,則Filebeat會盡可能快地感知更新(佔用的CPU會變高)。預設是10s #scan_frequency: 10s # 每個harvester監控檔案時,使用的buffer的大小 #harvester_buffer_size: 16384 # 日誌檔案中增加一行算一個日誌事件,max_bytes限制在一次日誌事件中最多上傳的位元組數,多出的位元組會被丟棄 #max_bytes: 10485760 #如果json 為多⾏格式時,指定⼀個root key,以進⾏標識 #json.message_key: #false/true是否覆蓋beat中的欄位 #json.overwrite_keys:false #false/true 解析失敗時是否儲存解析失敗資訊 #json.add_error_key:false