簡介
????????ELK 框架是一套開源的日志管理和分析工具,由 Elasticsearch、Logstash 和 Kibana 三個主要組件組成,現在新增了Filebeat組件,可以更高效的收集數據。
- Elasticsearch:是一個分布式、高可擴展的開源搜索引擎,能快速準確地從大量日志數據中檢索出所需信息。
- Logstash:是一個數據收集和處理引擎,用于從各種數據源收集日志數據,如文件、網絡接口、數據庫等,然后對數據進行過濾、轉換和格式化等處理。
- Kibana:是一個開源的數據分析和可視化平臺,可視化方式對 Elasticsearch 中的數據進行分析和展示,無需編寫復雜的查詢語句,即可快速了解數據的分布、趨勢和關聯關系。
- Filebeat :Filebeat 是一個輕量級的日志文件收集器,專為轉發和集中日志數據而設計,用于監控指定的日志文件或目錄,一旦有新的日志產生,Filebeat 就會讀取并將其發送。
????????ELK 框架的工作流程是,Filebeat收集各種來源的日志數據,發送到Logstash處理過濾后將其發送到 Elasticsearch 進行存儲和索引,然后 Kibana 從 Elasticsearch 中獲取數據并進行可視化展示,為用戶提供直觀的日志分析結果。
ELK運行流程圖
(我搭建的只是一個簡易版本的,如需專業版的請查找其他文件或視頻資料)
我是在虛擬機的Docker中搭建的ES和Kabana,首先需要新建一個網絡用于ELK
docker network create elk
docker安裝elasticsearch
docker run -d \
--name=elasticsearch \
-v es-data:/usr/share/elasticsearch/data \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
--net elk \
-p 9200:9200 -p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.6.2
安裝kibana
docker run -d \
--name=kibana \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e I18N_LOCALE=zh-CN \
--net elk \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.6.2
測試ES
curl 1ocalhost:9200/_cat/health
測試Kabana,直接訪問5601端口就可以,http://192.168.178.78:5601/app/home#/,記得把ip換成自己的。
然后我的Logstash和Filebeat 是安裝在客戶端的,直接安裝在了Windows上。需要再官網下載https://www.elastic.co/,進入后可以先改成中文
然后往下滑,就可以看到下載本地部署的鏈接了
進去后選擇應用和版本
選擇需要下載的軟件和版本 ,我下載的8.6.2的
進去之后記得下載Windows版本的。
?安裝Logstash和Filebeat
????????Filebeat:?解壓前面下載好的filebeat壓縮包,打開filebeat.yml文件
打開之后把里邊原本的文件注銷了 ,然后輸入以下配置
filebeat.inputs: #這個是獲取日志- type: filestreamid: your_unique_input_id # 在這里添加一個唯一的 IDenabled: truepaths:- D:\IDER\project\a\vehicle\logs\vehicle-system\*.log # 請替換為實際的日志路徑setup.ilim.enabled: false
setup.template.name: "logstash"
setup.template.pattern: "logstash-*"
output.logstash: #這個是把日志發送到logstashhosts: ["127.0.0.1:5044"] #這個logstash的ip以及接口,設置成自己的index: "logstash-%{+yyyy.MM.dd}" #發送過去的數據名字,前綴加時間戳
保存后在當前文件夾路徑哪里輸入cmd,打開黑窗口,然后輸入啟動命令
.\filebeat.exe -c filebeat.yml -e
????????如果一切配置正確,Filebeat將開始讀取配置文件中指定的日志文件,并根據你的輸出配置將日志數據發送到目標位置(比如Logstash)。你應該能在命令提示符窗口看到Filebeat的運行日志,顯示數據正在被處理和發送。?
????????Logstash:解壓Logstash壓縮包文件,在config文件夾下有一個文件:logstash-sample.conf,復制一份,并重命名為logstash.conf,輸入以下配置。
input {beats {port => 5044 #這個監測端口}
}output {elasticsearch {hosts => ["http://192.168.178.78:9200"] #輸出到ES中index => "task-service-%{+YYYY.MM.dd}"#user => "elastic"#password => "changeme"}
}
然后進入到bin目錄,然后地址欄cmd打開黑窗口,輸入啟動命令
logstash.bat -f D:\tools\logstash-7.15.2\config\logstash.conf
啟動之后打開Kibana,滑到最后點擊Stack Management
然后點擊索引,就可以看到,如果沒有看到,可以在數據流那里看看有沒有。
有了索引或者數據流后,點擊 數據視圖,然后創建數據視圖
創建時名稱可以隨便填,但是索引模式一般都是前綴加上*號做通配符
創建保存視圖后在左上角點擊,然后點擊Discover
然后顯示出來日志記錄?