ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker-compose安装grafana+prometheus+loki 监控docker容器收集服务日志

2022-07-02 15:01:24  阅读:211  来源: 互联网

标签:compose name grafana prometheus loki docker configs


使用docker-compose部署springboot项目后想找一个比较好用的日志收集工具,用elk感觉太重了,小项目承担不起,无意中发现loki,与grafana集成度很高,最重要的是使用成本低,记录下安装过程。

创建grafana,prometheus文件夹及配置文件

# 创建grafana文件夹
mkdir /docker/grafana/grafana
mkdir /docker/grafana/grafana/data

# 创建prometheus文件夹
mkdir /docker/grafana/prometheus
mkdir /docker/grafana/prometheus/data
mkdir /docker/grafana/prometheus/log

# 创建prometheus配置文件
vi /docker/grafana/prometheus/prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s

# 报警暂时不需要,后续可以添加
#alerting:
#  alertmanagers:
#  - static_configs:
#    - targets:
#      - alertmanager:9093

rule_files:
  - "*rules.yml"

scrape_configs:
  # prometheus
  - job_name: 'prometheus'
    static_configs:
    - targets: ['host-ip:9090']
  # 主机监控
  - job_name: 'node'
    static_configs:
    - targets: ['host-ip:9100']
    
  # docker资源监控
  - job_name: 'cadvisor'
    static_configs:
    - targets: ['host-ip:8080']
    
# springboot 项目监控
# springboot 监控需要项目中集成prometheus
#  - job_name: 'test-server'
#    metrics_path: '/actuator/prometheus'
#    static_configs:
#    - targets: ['tesete-server-ip:8081']

#  - job_name: 'alertmanager'
#    static_configs:
#    - targets: ['alertmanager:9093']

创建loki 文件夹及配置文件

mkdir /docker/grafana/loki
mkdir /docker/grafana/loki/chunks
mkdir /docker/grafana/loki/rules

vi /docker/grafana/loki/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:
    instance_addr: 127.0.0.1
    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

创建compose文件

vi /docker/grafana/docker-compose.yml
version: "2" 
 
networks: 
  prom: 
 
services: 
  prometheus: 
    image: prom/prometheus:latest 
    container_name: prometheus 
    hostname: prometheus 
    restart: always 
    user: root
    volumes: 
      # 挂载prometheus配置文件
      - /docker/grafana/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 
      - /docker/grafana/prometheus/data:/prometheus 
      - /docker/grafana/prometheus/log:/var/log/ 
    ports: 
      - "9090:9090" 
    networks: 
      - prom 
  grafana: 
    image: grafana/grafana:latest 
    container_name: grafana 
    hostname: grafana 
    restart: always
    user: root
    volumes: 
      - /docker/grafana/grafana/data:/var/lib/grafana 
    ports: 
      - "3000:3000" 
    networks: 
      - prom 
  node-exporter: 
    image: prom/node-exporter:latest 
    container_name: node-exporter 
    hostname: exporter 
    restart: always 
    ports: 
      - "9100:9100" 
    networks: 
      - prom 
  cadvisor: 
    image: google/cadvisor:latest 
    container_name: cadvisor 
    hostname: cadvisor 
    restart: always 
    volumes: 
      # 挂载docker目录,为了监控docker使用情况,必须
      - /:/rootfs:ro 
      - /var/run:/var/run:rw 
      - /sys:/sys:ro 
      - /var/lib/docker/:/var/lib/docker:ro 
    ports: 
      - "8080:8080" 
    networks: 
      - prom 
  loki: 
    image: grafana/loki:latest 
    container_name: loki 
    hostname: loki
    restart: always
    user: root
    volumes: 
      # 挂载chunks文件夹及配置文件,loki收集到日志后会存储到chunks中
      - /docker/grafana/loki/chunks:/loki/chunks 
      - /docker/grafana/loki/rules:/loki/rules 
      - /docker/grafana/loki/local-config.yaml:/etc/loki/local-config.yaml 
    ports: 
      - "3100:3100" 
    networks: 
      - prom
cd /docker/grafana
docker-compose up -d

收集日志

使用loki-docker-driver

docker 安装loki驱动收集日志
docker plugin install  grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
需要使用loki记录日志的docker-compose文件中替换日志收集驱动
    logging:
      driver: loki
      options:
        loki-url: "http://loki-server-ip:3100/api/prom/push"
        loki-retries: "5"
        loki-batch-size: "400"

使用promtail收集日志文件

开启promtail服务
version: "2"

services:
  grafana_promtail:
    container_name: promtail2
    image: grafana/promtail:2.4.0
    restart: always
    user: root
    volumes:
      - /docker/test-service/logs:/var/log
      - /docker/grafana/promatil/config.yml:/etc/promtail/config.yml
vi /docker/grafana/promatil/config.yml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /var/log-position/positions.yaml # 记录日志上传的行号

# loki服务地址
client:
  url: http://loki-server-ip:3100/loki/api/v1/push

scrape_configs:
- job_name: my-service
  static_configs:
  - targets:
      - localhost
    labels:
      job: test-service
      __path__: /var/log/*.log

好用的grafana模板下载

https://grafana.com/dashboards


Spring Boot Statistics
	6756
1 Node Exporter for Prometheus Dashboard EN 20201010
	11074
Docker and system monitoring
	893
Docker Container & Host Metrics
	10619

标签:compose,name,grafana,prometheus,loki,docker,configs
来源: https://www.cnblogs.com/yg0070/p/16437578.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有