docker搭建 grafana+promtail+loki日志平台

PLG日志系统组成

  • promtail:负责收集日志并将其发送给Loki
  • loki:主服务器,服务存储日志和处理查询
  • Grafana:用于查询和现实日志

1.拉取镜像

docker pull grafana/grafana

docker pull grafana/promtail

docker pull grafana/loki:2.0.1

在这里插入图片描述

2.拉取promtail和loki配置文件

wget  --no-check-certificate https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml

wget  --no-check-certificate https://raw.githubusercontent.com/grafana/loki/master/clients/cmd/promtail/promtail-local-config.yaml

3.修改配置文件

loki-local-config.yaml
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096
  grpc_server_max_recv_msg_size: 1073741824  #grpc最大接收消息值,默认4m
  grpc_server_max_send_msg_size: 1073741824  #grpc最大发送消息值,默认4m

ingester:
  lifecycler:
    address: 192.168.15.144
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
  max_transfer_retries: 0
  max_chunk_age: 20m  #一个timeseries块在内存中的最大持续时间。如果timeseries运行的时间超过此时间,则当前块将刷新到存储并创建一个新块

schema_config:
  configs:
    - from: 2021-11-01
      store: boltdb
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 168h

storage_config:
  boltdb:
    directory: /tmp/loki/index #存储索引地址
  filesystem:
    directory: /tmp/loki/chunks

limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
  ingestion_rate_mb: 30  #修改每用户摄入速率限制,即每秒样本量,默认值为4M
  ingestion_burst_size_mb: 15  #修改每用户摄入速率限制,即每秒样本量,默认值为6M

chunk_store_config:
        #max_look_back_period: 168h   #回看日志行的最大时间,只适用于即时日志
  max_look_back_period: 0s

table_manager:
  retention_deletes_enabled: false #日志保留周期开关,默认为false
  retention_period: 0s  #日志保留周期

注意:这几行要去掉否则会报错
    wal:
        enabled: true
        dir: /tmp/wal
        recover: true
promtail-local-config.yaml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://192.168.15.144:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log

- job_name: file
  static_configs:
  - targets:
      - localhost
    labels:
      job: file
      __path__: /root/java/plg/log/fileService/logback-file.log   

clients配置的是loki客户端的地址

scrape_configs配置收集日志的labels和日志挂载的路径

4.启动Loki和promtail

loki

创建目录和授权

mkdir -p /root/java/plg/loki/index
mkdir -p /root/java/plg/loki/chunks
chmod -R 777 /root/java/plg/loki/index
chmod -R 777 /root/java/plg/loki/chunks 

docker run -d \
--name loki \
--privileged=true \
-v /root/java/plg/loki:/mnt/config \
-v /root/java/plg/loki/index:/tmp/loki/index \
-v /root/java/plg/loki/chunks:/tmp/loki/chunks \
-p 3100:3100 \
-p 9096:9096 \
grafana/loki:2.0.1 -config.file=/mnt/config/loki-local-config.yaml
promtail
docker run -d \
--name promtail \
--privileged=true \
-v /root/java/plg/promtail:/mnt/config \
-v /opt/product/file-service/logs:/root/java/plg/log/fileService \
grafana/promtail:latest -config.file=/mnt/config/promtail-local-config.yaml
grafana
docker run -d \
--name grafana \
-p 3000:3000 \
grafana/grafana:latest
启动出错一般都是这几个地方(踩过的坑)

doker -v 目录挂载 宿主机目录:容器目录---->(目录挂载出错)

docker -p 端口映射 宿主机端口:容器端口---->(端口映射出错)

-config.file-------------------------------------------------> (配置文件路径错误)

可以用 netstat -nap | grep port 命令去看看端口是否通的

可以用 docker logs -f --tail=100 容器ID/容器名 命令去查看日志

在这里插入图片描述

5.docker常用命令

查看docker仓库镜像列表
docker images 

查看正在运行容器列表
docker ps

查看所有容器 -----包含正在运行 和已停止的
docker ps -a 

停止容器
docker stop 容器ID/容器名

重启容器
docker restart 容器ID/容器名

启动容器
docker start 容器ID/容器名

kill 容器
docker kill 容器ID/容器名

删除容器 
docker rm -f 容器ID/容器名

查看日志
docker logs -f --tail=100 容器ID/容器名

6.访问grafana

http://Ip:3000/

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐