本地安裝 Grafana Loki 一、 安裝 Loki 1. 下載 Loki 2. 創建 Loki 配置文件 3. 創建 Loki 服務 二、安裝 Promtail 1. 下載 Promtail 2. 創建 Promtail 配置文件 3. 創建 Promtail 服務 三、 安裝 Grafana 四、啟動所有服務 五、添加loki 數據源 參考
一、 安裝 Loki
1. 下載 Loki
wget https://github.com/grafana/loki/releases/download/v3.4.2/loki-linux-amd64.zip
unzip loki-linux-amd64.zip
sudo mv loki-linux-amd64 /usr/local/bin/loki
sudo mkdir -p /etc/loki
2. 創建 Loki 配置文件
sudo mkdir -p /var/lib/loki/chunks
sudo mkdir -p /var/lib/loki/rules
sudo mkdir -p /var/lib/loki/index
sudo mkdir -p /var/lib/loki/cache
vim /etc/loki/config.yaml
auth_enabled: false server:http_listen_port: 3100 common:path_prefix: /lokistorage:filesystem:chunks_directory: /var/lib/loki/chunksrules_directory: /var/lib/loki/rulesreplication_factor: 1 ring:instance_addr: 127.0 .0.1kvstore:store: inmemoryschema_config:configs:- from: 2020 -10-24store: tsdbobject_store: filesystemschema: v13index:prefix: index_period: 24hstorage_config:tsdb_shipper:active_index_directory: /var/lib/loki/indexcache_location: /var/lib/loki/cacheruler:alertmanager_url: http://localhost:9093
auth_enabled: false
server:http_listen_port: 3100
common:path_prefix: /loki storage:filesystem: chunks_directory: /var/lib/loki/chunks rules_directory: /var/lib/loki/rules replication_factor: 1 ring:instance_addr: 127.0 .0.1 kvstore:store: inmemory
schema_config:configs:- from: 2020 -10-24 store: tsdb object_store: filesystem schema: v13 index:prefix: index_ period: 24h
storage_config:tsdb_shipper:active_index_directory: /var/lib/loki/index cache_location: /var/lib/loki/cache
ruler:alertmanager_url: http://localhost:9093
3. 創建 Loki 服務
sudo tee /etc/systemd/system/loki.service<< EOF
[Unit]
Description=Loki service
After=network.target[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/loki -config.file /etc/loki/config.yaml[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl restart loki.service
systemctl status loki.servicesystemctl enable loki.service
二、安裝 Promtail
1. 下載 Promtail
wget https://github.com/grafana/loki/releases/download/v3.4.2/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
sudo mkdir -p /etc/promtail
2. 創建 Promtail 配置文件
vim /etc/promtail/config.yaml
server:http_listen_port: 9080 grpc_listen_port: 0 positions:filename: /tmp/positions.yamlclients:- url: http://localhost:3100/loki/api/v1/pushscrape_configs:- job_name: systemstatic_configs:- targets:- localhostlabels:job: varlogs__path__: /var/log/*log- job_name: docker static_configs:- targets:- localhostlabels:job: docker __path__: /var/lib/docker/containers/*/*log
3. 創建 Promtail 服務
sudo tee /etc/systemd/system/promtail.service<< EOF
[Unit]
Description=Promtail service
After=network.target[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail/config.yaml[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start promtail.service
systemctl status promtail.servicesystemctl enable promtail.service
三、 安裝 Grafana
四、啟動所有服務
sudo mkdir -p /var/lib/loki/chunks
sudo mkdir -p /var/lib/loki/rules
sudo systemctl daemon-reload
sudo systemctl enable loki promtail grafana-server
sudo systemctl start loki promtail grafana-server
sudo systemctl status loki
sudo systemctl status promtail
sudo systemctl status grafana-server
五、添加loki 數據源
1. 添加儀表板
17514
https://grafana.com/grafana/dashboards/17514-ssh-logs/
2. 日志查詢面板 json
{ "annotations" : { "list" : [ { "builtIn" : 1 ,"datasource" : { "type" : "grafana" ,"uid" : "-- Grafana --" } ,"enable" : true,"hide" : true,"iconColor" : "rgba(0, 211, 255, 1)" ,"name" : "Annotations & Alerts" ,"type" : "dashboard" } ] } ,"editable" : true,"fiscalYearStartMonth" : 0 ,"graphTooltip" : 0 ,"id" : 13 ,"links" : [ ] ,"liveNow" : false,"panels" : [ { "datasource" : { "type" : "loki" ,"uid" : "cedpi2os8xbeoa" } ,"gridPos" : { "h" : 20 ,"w" : 24 ,"x" : 0 ,"y" : 0 } ,"id" : 1 ,"options" : { "dedupStrategy" : "none" ,"enableLogDetails" : true,"prettifyLogMessage" : false,"showCommonLabels" : false,"showLabels" : false,"showTime" : true,"sortOrder" : "Descending" ,"wrapLogMessage" : true } ,"targets" : [ { "datasource" : { "type" : "loki" ,"uid" : "cedpi2os8xbeoa" } ,"editorMode" : "builder" ,"expr" : "{filename=~\" $log_file \" } |= \" $search_term \" " ,"queryType" : "range" ,"refId" : "A" } ] ,"title" : "日志查詢面板" ,"type" : "logs" } ] ,"refresh" : "1m" ,"schemaVersion" : 39 ,"tags" : [ "logs" ,"monitoring" ] ,"templating" : { "list" : [ { "current" : { "selected" : false,"text" : "All" ,"value" : "$__all " } ,"datasource" : { "type" : "loki" ,"uid" : "cedpi2os8xbeoa" } ,"definition" : "label_values(filename)" ,"hide" : 0 ,"includeAll" : true,"label" : "日志文件" ,"multi" : false,"name" : "log_file" ,"options" : [ ] ,"query" : "label_values(filename)" ,"refresh" : 1 ,"regex" : "" ,"skipUrlSync" : false,"sort" : 1 ,"type" : "query" } ,{ "current" : { "selected" : false,"text" : "" ,"value" : "" } ,"hide" : 0 ,"label" : "搜索關鍵字" ,"name" : "search_term" ,"options" : [ ] ,"query" : "" ,"skipUrlSync" : false,"type" : "textbox" } ] } ,"time" : { "from" : "now-1h" ,"to" : "now" } ,"timepicker" : { "refresh_intervals" : [ "5s" ,"10s" ,"30s" ,"1m" ,"5m" ,"15m" ,"30m" ,"1h" ,"2h" ,"1d" ] } ,"timezone" : "" ,"title" : "日志查詢儀表板" ,"uid" : "log_dashboard" ,"version" : 3 ,"weekStart" : ""
}
參考
本地安裝 Grafana Loki loki releases SSH Logs