輕量級日志分析平臺Loki實戰
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456869.png)
簡介:
Loki的第一個穩定版本于2019年11月19日發布,是 Grafana Labs 團隊最新的開源項目,是一個水平可擴展,高可用性,多租戶的日志聚合系統。Loki 是專門用于聚集日志數據,重點是高可用性和可伸縮性。與競爭對手不同的是,它確實易于安裝且資源效率極高。
特點:
優點:
1、Loki的架構非常簡單,使用了和prometheus一樣的標簽來作為索引,通過這些標簽既可以查詢日志的內容也可以查詢到監控的數據,不但減少了兩種查詢之間的切換成本,也極大地降低了日志索引的存儲。
2、與ELK相比,消耗的成本更低,具有成本效益。
3、在日志的收集以及可視化上可以連用grafana,實現在日志上的篩選以及查看上下行的功能。
缺點:
1、技術比較新穎,相對應的論壇不是非常活躍。
2、功能單一,只針對日志的查看,篩選有好的表現,對于數據的處理以及清洗沒有ELK強大,同時與ELK相比,對于后期,ELK可以連用各種技術進行日志的大數據處理,但是loki不行。
組成
1.loki是主服務器,負責存儲日志和處理查詢。
2.promtail是代理,負責收集日志并將其發送給 loki 。
3.Grafana用于 UI 展示。
本次安裝使用docker部署
1.0 安裝 docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.28.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2.0 下載yaml文件
wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml -O docker-compose.yaml
version: "3"
networks:
loki:
services:
loki:
image: grafana/loki:2.0.0
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- loki
promtail:
image: grafana/promtail:2.0.0
volumes:
- /var/log:/var/log
command: -config.file=/etc/promtail/config.yml
networks:
- loki
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
networks:
- loki
3.0 啟動服務
docker-compose -f docker-compose.yaml up
4.0 檢查服務
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456794.png)
5.0 配置服務
http://192.168.106.202:3000/
默認granfna密碼admin/admin
5.1 配置數據源
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456787.png)
配置ip和默認數據源,配置完成點擊測試/保存
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456943.png)
5.2 配置數據源
explore 查詢樣例
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456523.png)
5.3 輸出匹配日志信息
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456975.png)
至此一次樣例日志查詢完成
6.0 promtail配置詳解
promtail容器為日志采集容器,配置文件在promtail容器/etc/promtail/config.yml,將該容器部署在需要采集日志的服務器上就能正常采集日志傳回loki服務收集整理
root@2a0cc144dd58:/# cat /etc/promtail/config.yml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push #這里配置的地址為loki服務器日志收集的信息
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs #這里為剛才選擇job下子標簽
__path__: /var/log/*log #將采集的日志放在/var/log/*log下自動發現
7.0 增加一臺服務器日志采集
7.1 編寫 promtail的配置文件config.yml
mkdir /root/promtail &&cd /root/promtail
[root@node2 promtail]# cat config.yml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://192.168.106.202:3100/loki/api/v1/push #這里配置的地址為loki服務器日志收集的信息
scrape_configs:
- job_name: mysql
static_configs:
- targets:
- localhost
labels:
job: mysql #這里為剛才選擇job下子標簽
__path__: /var/log/*log #將采集的日志放在/var/log/*log下自動發現
7.2 編寫docker-compose.yaml配置文件
[root@node2 promtail]# cat docker-compose.yaml
version: "v1"
services:
promtail:
image: grafana/promtail:2.0.0 #拉去鏡像
container_name: promtail-node #鏡像名稱
volumes:
- /root/promtail/config.yml:/etc/promtail/config.yml #掛載目錄
- /var/log:/var/log
network_mode: 'host'
7.3 啟動
docker-compose up -d
8.0 去loki上查看檢索
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456911.png)
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456181.png)
![睿智創新RAIZ,一體化IT服務提供商 睿智創新RAIZ,一體化IT服務提供商](https://www.ge-fast.com/upload/202104/1618456105.png)
可以根據數據查詢到相應日志信息