中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EFK實戰之如何實現日志集成

發布時間:2021-10-23 14:31:57 來源:億速云 閱讀:134 作者:iii 欄目:編程語言

本篇內容主要講解“EFK實戰之如何實現日志集成”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“EFK實戰之如何實現日志集成”吧!

前言

在EFK基礎架構中,我們需要在客戶端部署Filebeat,通過Filebeat將日志收集并傳到LogStash中。在LogStash中對日志進行解析后再將日志傳輸到ElasticSearch中,最后通過Kibana查看日志。

上文已經搭建好了EFK的基礎環境,本文我們通過真實案例打通三者之間的數據傳輸以及解決EFK在使用過程中的一些常見問題。

首先看一下實際的業務日志

2020-01-09 10:03:26,719 INFO ========GetCostCenter Start===============
2020-01-09 10:03:44,267 WARN 成本中心編碼少于10位!{"deptId":"D000004345","companyCode":"01"}
2020-01-09 10:22:37,193 ERROR java.lang.IllegalStateException: SessionImpl[abcpI7fK-WYnW4nzXrv7w,]: can't call getAttribute() when session is no longer valid.
 at com.caucho.server.session.SessionImpl.getAttribute(SessionImpl.java:283)
 at weaver.filter.PFixFilter.doFilter(PFixFilter.java:73)
 at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
 at weaver.filter.MonitorXFixIPFilter.doFilter(MonitorXFixIPFilter.java:30)
 at weaver.filter.MonitorForbiddenUrlFilter.doFilter(MonitorForbiddenUrlFilter.java:133)

「日志組成格式為:」
時間 日志級別 日志詳情
那么我們的主要任務就是將這段日志正常寫入EFK中。

filebeat安裝配置

  • 下載filebeat7.5.1

  • 將下載后的文件上傳至服務器并解壓tar -zxvf filebeat-7.5.1-linux-x86_64.tar.gz

  • 修改filebeat.yml,

filebeat.inputs:- type: log  enabled: true  paths:    - /app/weaver/Resin/log/xxx.log

此段配置日志輸入,指定日志存儲路徑

output.logstash:  # The Logstash hosts  hosts: ["172.31.0.207:5044"]

此段配置日志輸出,指定Logstash存儲路徑

  • 啟動filebeat
    ./filebeat -e -c filebeat.yml
    如果需要靜默啟動,則使用 nohup ./filebeat -e -c filebeat.yml & 命令啟動即可。

logstash配置

logstash的配置主要分為三段 inputfilteroutputinput用于指定輸入,主要是開放端口給Filebeat用于接收日志filter用于指定過濾,對日志內容進行解析過濾。output用于指定輸出,直接配置ES的地址即可

input {  beats {    port => 5044  }}output {  elasticsearch {    hosts => ["http://172.31.0.127:9200"]    index => "myindex-%{+YYYY.MM.dd}"    user => "elastic"    password => "xxxxxx"  }}

我們配置好logstash后通過命令重啟logstash
docker-compose -f elk.yml restart logstash

經過上述兩步配置后應用程序往日志文件寫入日志,filebeat會將日志寫入logstash。在kibana查看寫入的日志結果如下:EFK實戰之如何實現日志集成

日志顯示有2個問題:

  • 由于錯誤日志堆棧信息有多行,在kibana中展示成了多行,數據查看很亂。需要將堆棧異常整理成一行顯示。

  • 需要對日志進行解析,拆成“時間 日志級別 日志詳情”的顯示格式。

優化升級

  • 在filebeat中設置合并行
    filebeat默認是行傳輸的,但是我們的日志肯定是多行一個日志,我們要把多行合并到一起就要找到日志的規律。比如我們的日志格式全都是以時間格式開頭,所以我們在filebeat中 filebeat.inputs區域添加如下幾行配置

  # 以日期作為前綴  multiline.pattern: ^\d{4}-\d{1,2}-\d{1,2}  # 開啟多行合并  multiline.negate: true  # 合并到上一行之后  multiline.match: after
  • 在logstash中設置對日志的解析
    將日志解析成“時間 日志級別 日志詳情”的展示格式,所以我們需要在logstash配置文件中添加filter段

filter {
	grok{
		match => {
			"message">

這里主要是使用grok語法對日志進行解析,通過正則表達式對日志進行過濾。大家可以通過kibana里的grok調試工具進行調試EFK實戰之如何實現日志集成

配置完成后我們重新打開kibana Discover界面查看日志,符合預期,完美!EFK實戰之如何實現日志集成

常見問題

kibana 亂碼

這個主要原因還是客戶端日志文件格式有問題,大家可以通過 file xxx.log查看日志文件的編碼格式,如果是ISO8859的編碼基本都會亂碼,我們可以在filebeat配置文件中通過encoding指定日志編碼進行傳輸。

filebeat.inputs:- type: log  enabled: true  paths:    - /app/weaver/Resin/log/xxx.log  encoding: GB2312

kibana 提取字段出錯

EFK實戰之如何實現日志集成

如上所示,打開kibana Discover面板時出現此異常,大家只要刪除ES中的 .kibana_1索引然后重新訪問Kibana即可。EFK實戰之如何實現日志集成

查看周圍文件

我們在終端查看日志某關鍵字時一般會查上下文信息便于排查問題,如經常用到的指令 cat xxx.log | grep -C50 keyword,那么在Kibana中如何實現這功能呢。EFK實戰之如何實現日志集成

在Kibana中搜索關鍵字,然后找到具體日志記錄,點擊左邊向下箭頭,然后再點擊“查看周圍文檔”即可實現。

動態索引

我們日志平臺可能需要對接多個業務系統,需要根據業務系統建立不同的索引。

  • 在filebeat中給日志打上標記

- type: log  ......  fields:    logType: oabusiness
  • 在logstash中根據標記生成索引

input {
  beats {
    port => 5044
  }
}
filter {
  if [fields][logType] == "oabusiness">

到此,相信大家對“EFK實戰之如何實現日志集成”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴化市| 天津市| 九龙坡区| 盘山县| 都江堰市| 马关县| 巴东县| 会同县| 三门峡市| 阿克苏市| 元朗区| 海口市| 佳木斯市| 札达县| 苍山县| 张掖市| 浏阳市| 鸡泽县| 桂东县| 卓资县| 汤阴县| 岑溪市| 乌鲁木齐市| 正镶白旗| 东光县| 定结县| 高平市| 宝清县| 龙口市| 卢氏县| 东阳市| 乐清市| 盐城市| 柳林县| 宁晋县| 区。| 弥勒县| 康平县| 特克斯县| 田东县| 桦甸市|