本地安装 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