Loki日志收集
1、Loki部署
- 二进制文件下载解压
wget https://github.com/grafana/loki/releases/download/v2.8.4/loki-linux-amd64.zip
unzip loki-linux-amd64.zip
mkdir -p /usr/local/loki/{etc,logs,bin}
mv loki-linux-amd64 /usr/local/loki/bin/loki
- loki配置文件
vim /usr/local/loki/etc/local-config.yaml
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
ruler:
alertmanager_url: http://localhost:9093
- systemd文件
vim /usr/lib/systemd/system/loki.service
[Unit]
Description=Loki service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/loki/bin/loki -config.file /usr/local/loki/etc/local-config.yaml
[Install]
WantedBy=multi-user.target
- 启动loki服务
systemctl start loki.service
2、Minio作为后端存储
3、Promtail作为收集agent
- 二进制文件下载
wget https://github.com/grafana/loki/releases/download/v2.8.4/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
mkdir -p /usr/local/promtail/{etc,logs,bin}
mv promtail-linux-amd64 /usr/local/promtail/bin/promtail
- promtail配置文件
vim /usr/local/promtail/etc/config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://127.0.0.1:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
- job_name: system-message
static_configs:
- targets:
- localhost
labels:
job: varlogs-message
__path__: /var/log/messages
- job_name: nginx
pipeline_stages:
- replace:
expression: '(?:[0-9]{1,3}\.){3}([0-9]{1,3})'
replace: '***'
static_configs:
- targets:
- localhost
labels:
job: nginx_access_log
host: localhost
agent: promtail
__path__: /var/log/nginx/*access.log
- systemd文件
vim /usr/lib/systemd/system/promtail.service
[Unit]
Description=Promtail service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/promtail/bin/promtail -config.file /usr/local/promtail/etc/config.yaml
[Install]
WantedBy=multi-user.target
- 启动promtail
systemctl start promtail
- 验证数据
curl "127.0.0.1:9080/metrics"
4、Grafana可视化展示
- docker部署grafana
cat docker-compose.yaml
version: "3"
services:
grafana:
image: grafana/grafana:10.0.4
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
docker-compose up -d
- 配置数据源
由于granfana是由docker部署,数据源的URL地址,需要填写服务器IP的地址

