Apache Kylin 入門系列目錄html
ELKB 是指 Elasticsearch、Logstash、Kibana、Beats,藉助 FileBeat 採集 Kylin 日誌,並分發到 Logstash 進行過濾處理並最終寫入到 ES 中。使用 Kinaba 能夠較爲快捷的構建一系列圖表,經過對 Kylin 查詢日誌進行聚合分析,從多個維度構建其查詢指標監控頁面。linux
角色 | IP | 端口 |
---|---|---|
Elasticsearch | 192.168.3.214 | 9200 |
Logstash | 192.168.3.213 | 5044 |
Kibana | 192.168.3.214 | 5601 |
Beats | 192.168.3.213 | 5044 |
ES 的安裝與配置能夠參考文章:CentOS 7.4 下搭建 Elasticsearch 6.3 搜索羣集正則表達式
Kibana 安裝比較簡單,主要分如下步驟:sql
tar -zxvf kibana-6.4.2-linux-x86_64.tar.gz -C /opt/
;/opt/kibana-6.4.2-linux-x86_64/config/kibana.yml
;/opt/kibana-6.4.2-linux-x86_64/bin/kibana
。Kibana 不須要作過多的配置,只須要設置節點信息和 ES 鏈接信息便可。apache
server.port: 5601
server.host: "192.168.3.214"
server.name: "kibana-edps"
elasticsearch.url: "http://192.168.3.214:9200"
複製代碼
CentOS 7 能夠直接經過 RPM 包進行安裝:編程
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm
sudo rpm -vi filebeat-6.4.2-x86_64.rpm
複製代碼
其餘系統安裝方法請參考官方文檔。緩存
使用 RPM 方式安裝成功後,FileBeat 的配置文件路徑爲:/etc/filebeat/filebeat.yml
,打開配置文件進行修改:bash
# 配置 Filebeat 輸入
filebeat.inputs:
- type: log
# 開啓 log 採集
enabled: true
# 設置日誌路徑
paths:
- /opt/apache-kylin-2.4.0-bin-cdh57/logs/kylin.log
# 設置須要排除的行(正則匹配到的內容會被捨棄)
#exclude_lines: ['^DBG']
# 設置包含的行(正則匹配)
include_lines: ['Query Id: ']
# 設置須要排除的文件(正則匹配)
#exclude_files: ['.gz$']
# 附加的靜態字段
#fields:
# level: debug
# review: 1
# 設置日誌的分割正則
multiline.pattern: '\d{4}-\d{2}-\d{2}\s*\d{2}:\d{2}:\d{2},\d{3}\s*\w+\s*\['
multiline.negate: true
multiline.match: after
#==================== Elasticsearch template setting ==========================
# 禁用自動模板加載
setup.template.enabled: false
#setup.template.name: "log"
#setup.template.pattern: "log-*"
#setup.dashboards.index: "log-*"
#setup.template.settings:
# index.number_of_shards: 3
# index.number_of_replicas: 0
# index.codec: best_compression
# _source.enabled: false
#============================== Kibana =====================================
setup.kibana:
# Kibana 地址
host: "192.168.3.214:5601"
#-------------------------- Elasticsearch output ------------------------------
# 使用 ES 做爲輸出
#output.elasticsearch:
#hosts: ["192.168.3.214:9200"]
#index: "log-kylin-cdh3"
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
#----------------------------- Logstash output --------------------------------
# 使用 LogStash 做爲輸出
output.logstash:
hosts: ["192.168.3.213:5044"]
#============================== Xpack Monitoring ===============================
# 設置監控信息
xpack.monitoring:
enabled: true
elasticsearch:
hosts: ["http://192.168.3.214:9200"]
username: beats_system
password: beatspassword
複製代碼
Logstash 安裝比較簡單:架構
tar -zxvf logstash-6.4.2.tar.gz -C /opt/
。上面已經使用 FileBeat 將 Kylin 的日誌發送給了 Logstash,這裏須要使用 Logstash 對日誌進行過濾,並寫入到 ES。負載均衡
首先新建 kylin 日誌處理的配置文件vi /opt/logstash-6.4.2/config/kylin_log.conf
:
input {
beats {
port => 5044
}
}
filter {
grok {
match => {"message" => "(?<query_dtm>[^,]+),[\s\S]+?Query Id:\s*(?<query_id>\S+)\s*SQL:\s*(?<sql>[\s\S]+?)\nUser:\s*(?<user_id>[\s\S]+?)\nSuccess:\s*(?<success_flg>[\s\S]+?)\nDuration:\s*(?<cost_ft>[\s\S]+?)\nProject:\s*(?<project_id>[\s\S]+?)\n[\s\S]+?\nStorage cache used:\s*(?<cache_flg>[\s\S]+?)\n[\s\S]+"}
remove_field => [ "message", "tags", "@timestamp", "@version", "prospector", "beat", "input", "source", "offset", "host"]
}
date{
match=>["query_dtm","YYYY-MM-dd HH:mm:ss", "ISO8601"]
target=>"sql_dtm"
}
}
output {
elasticsearch {
hosts => ["192.168.3.214:9200"]
index => "log-kylin-cdh3"
document_id => "%{query_id}"
}
stdout {}
}
複製代碼
"message", "tags", "@timestamp", "@version", "prospector", "beat", "input", "source", "offset", "host"
;sql_dtm
),同時保留了原始時間(query_dtm
);\n
展現,正則表達式必定不要寫爲\\n
;所有配置完成後,啓動 Logstash 便可:/opt/logstash-6.4.2/bin/logstash -f /opt/logstash-6.4.2/config/kylin_log.conf
。
首先登錄 Kibana:http://192.168.3.214:5601
,登錄成功後建索引匹配:Management -> Kibana -> Index Patterns -> Create Index Pattern
。
日期字段必定要設置爲 UTC 時間,不然後面查詢時候會出現日期對應不上的狀況。
索引規則創建成功後,你能夠點擊左側的 Discover 查看日誌詳情。
若是能夠正常看到日誌,則表示目前爲止一切正常,下面開始建可視化組件,點擊左側菜單的 Visualize 進入可視化組件頁面(默認該頁面有不少預設的組件,沒啥用處,就所有刪除了)。
對於可視化組件的構建步驟就不進行一一說明了,只須要對 ES 的聚合函數有了解,就能夠較好的進行使用,推薦瞭解的聚合函數:
點擊左側菜單欄的 Dashboard 打開儀表盤管理界面,點擊 「Create new dashboard」 按鈕便可創建新的儀表盤,點擊右上方的 「ADD」 按鈕添加剛纔新建的組件,而後拖拽調整大小布局,最後保存便可。
Any Code,Code Any!
掃碼關注『AnyCode』,編程路上,一塊兒前行。