Day 10: ELK Stack 安裝與多節點
Day 11: Logstash 配置與查詢系統日誌
Day 12: Redis 安裝與配置
Day 13: Redis 高可用性與集群設置
Day 14: Prometheus 與 Grafana 安裝與監控
Day 15: 配置 Prometheus 監控 Kubernetes 叢集
Day 16: 使用 Grafana 進行數據視覺化及串接告警
Logstash 是一個開源數據處理管道,專為收集、解析和轉換來自多種來源的日誌數據而設計。它支持多種輸入和輸出插件,將數據從各種格式轉換為 Elasticsearch 可搜索的格式。Logstash 常與 Elasticsearch 和 Kibana 一起使用,形成 ELK Stack,實現強大的日誌分析和可視化功能。
Filebeat 是一個輕量級的日誌傳輸代理,專為收集和轉發伺服器上的日誌數據而設計。它監控和讀取指定的日誌文件,並將數據發送到如 Elasticsearch、Logstash 或其他目標。Filebeat 是 Elastic Stack 的一部分,適合大規模日誌收集,並提供低延遲和簡易的配置。
需要安裝一個beat類型工具將日誌打進logstash
這裡採用的是filebeat作為練習
sudo nano docker-compose-filebeat.yml
version: '3.7'
services:
filebeat:
container_name: filebeat
image: docker.elastic.co/beats/filebeat:7.15.1
#最高權限用戶執行
user: "0"
restart: on-failure
environment:
#上海時區
- TZ=Asia/Shanghai
volumes:
#將配置文件掛載出來
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml
#將系統日誌掛載出來
- /var/log:/var/log
先別急著啟動!
它還需要一個conf文件才可以成立
sudo nano filebeat.yml
貼入以下內容
filebeat.shutdown_timeout: 5s
filebeat.inputs:
- type: log
enabled: true
paths:
#把系統日誌打出來
- /var/log
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
output.logstash:
hosts: ["logstash主機地址"]
再來才是啟動filebeat
docker compose -f docker-compose-filebeat.yml up -d
文件路徑:logstash > pipeline > logstash.conf
#這裡是輸入區塊
input {
beats {
port => 5044
}
}
#這裡是過濾器區塊
filter {
mutate {
add_field => {"[topic_name]" => "%{[@metadata][topic]}"}
}
grok {
match => {
"message" => [
"%{TIMESTAMP_ISO8601:logTimestamp} (?<logLevel>.?*) \[(?<logThreadName>.?*)\] \[(?<logDetail>.?*)\] \: (?<logMessage>.?*)"
]
}
}
date {
match => ["logTimestamp", "yyyy-MM-dd HH:mm:ss,SSS"]
}
}
#這裡是輸出區塊
output {
elasticsearch {
hosts => "elasticsearch主機地址:9200"
user => "elasticsearch用戶帳號"
password => "elasticsearch用戶密碼"
ilm_rollover_alias => "syslog-%{+YYYY.MM.dd}"
ilm_pattern => "{now/d}-000001"
}
}
編輯完了之後只需要重啟logstash就好
docker compose -f docker-compose-cluster.yml restart logstash
此時查看kibana後台已經可以看到syslog的出現
左側選單 > 向下拉到底Stack Management > Index Management
也可以讓日誌數據在kibana後台可視化
左側選單 > 向下拉到底Stack Management > Index patterns
再來就可以查詢
左側選單 > Discover > 下拉選單選中剛才建立的syslog-*
當然ELK Stack的調教之路遠不止於此
不過至此我們完成了ELK集群的架設以及日誌的串接囉