Promtail 介紹
Promtail 是由 Grafana Labs 開發的日誌收集代理,主要用於從本地系統或容器中採集日誌,並將其發送到 Loki 或兼容 Loki 協議的系統,本次為對接到觀測雲。
觀測雲
觀測雲是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日誌管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面瞭解端到端的用户體驗追蹤,瞭解應用內函數的每一次調用,以及全面監控雲時代的基礎設施。此外,觀測雲還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。
實驗環境
- 操作系統:Ubuntu 22.04
- 日誌源:/var/log/message
- 採集工具:Promtail
- 目標平台:觀測雲(通過本地 DataKit,地址為 http://localhost:9529/v1/write/promtail)
部署 DataKit
DataKit 是一個開源的、跨平台的數據收集和監控工具,由觀測雲開發並維護。它旨在幫助用户收集、處理和分析各種數據源,如日誌、指標和事件,以便進行有效的監控和故障排查。DataKit 支持多種數據輸入和輸出格式,可以輕鬆集成到現有的監控系統中。
登錄觀測雲控制枱,在「集成」 - 「DataKit」選擇對應安裝方式,當前採用 Linux 主機部署 DataKit。
開啓 Promtail 採集器
進入 DataKit 安裝目錄下的 /usr/local/datakit/conf.d/log 目錄,複製promtail.conf.sample 並命名為 promtail.conf。示例如下:
cp promtail.conf.sample promtail.conf
備註:
- 對於
v0.3.0及之前的版本需要配置legacy = true,即使用POST /api/prom/push,可以用 Legacy 版本 API 處理接收 Promtail 的日誌數據。 - 之後的版本使用默認配置,即
legacy = false,即使用POST /loki/api/v1/push。
實驗環境部署
下載安裝(本次驗證僅為主機安裝,也可 kubernetes 部署)
wget https://github.com/grafana/loki/releases/latest/download/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
#驗證 Promtail 安裝成功
promtail --version
配置 Promtail
vim /etc/promtail/promtail.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://localhost:9529/v1/write/promtail?source=promtail
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/message
運行 Promtail
#前台測試
promtail -config.file=/etc/promtail/promtail.yaml
#後台測試
sudo tee /etc/systemd/system/promtail.service > /dev/null <<EOF
[Unit]
Description=Promtail Log Collector
After=network.target
[Service]
ExecStart=/usr/local/bin/promtail -config.file=/etc/promtail/promtail.yaml
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
EOF
#追加日誌測試
echo "test log from promtail at $(date)" | sudo tee -a /var/log/message
驗證
查看採集器狀態
在觀測雲中查看日誌功能 Promtail 數據源日誌
總結
觀測雲通過對接 Promtail 後,無需額外適配即可協助用户使用 Promtail 將主機和容器日誌實時推送到觀測雲;通過標籤化管理和與指標、追蹤數據的統一關聯,幫助工程師迅速實現多維度分析、故障定位和業務洞察,有效降低了日誌管理複雜度和運維成本,提升了全鏈路觀測的效率與準確性。