docker搭建Grafana+Loki+Promtail日志分析

环境搭建

1. Docker 安装

Docker 官网下载:Docker: Accelerated, Containerized Application Development

Note: 本人个人原因,在WIndows OS 安装Docker

docker搭建Grafana+Loki+Promtail日志分析_第1张图片

 2. 安装完成后,验证Docker Service

# CMD 管理员界面

# sc query com.docker.service   # 查询
# sc start com.docker.service   # 启动
# sc stop com.docker.service    # 停止

docker搭建Grafana+Loki+Promtail日志分析_第2张图片

 docker搭建Grafana+Loki+Promtail日志分析_第3张图片

# CMD 管理员界面

D:\>docker version    # 查询docker Version
Client:
 Cloud integration: v1.0.29
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:08:16 2022
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.15.0 (93002)
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 18:00:19 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        770bd0108c32f3fb5c73ae1264f7e503fe7b2661
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

D:\>
验证 Docker 运行

# CMD 管理员界面

D:\>docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:94ebc7edf3401f299cd3376a1669bc0a49aef92d6d2669005f9bc5ef028dc333
d8d1a816d728: Downloading [=====================================>             ]  67.05MB/89.7MB

Hello from Docker!
This message shows that your installation appears to be working correctly.
d8d1a816d728: Downloading [=====================================>             ]  66.52MB/89.7MB
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


D:\>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

D:\>
D:\>docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     PORTS     NAMES
16218564a475   hello-world   "/hello"   2 minutes ago   Exited (0) 2 minutes ago             reverent_jemison

D:\>

3. 为了方便,推荐安装Git Bash

请自行安装Git Bash

4. 开始安装grafana

1. 获取grafana  image 方式:

方式一: cmd管理员窗口 

                D:\Soft\Docker>docker pull grafana/grafana

docker搭建Grafana+Loki+Promtail日志分析_第4张图片

方式二:Git Bash 拉取

              #docker pull grafana/grafana

docker搭建Grafana+Loki+Promtail日志分析_第5张图片

2. 由于直接从国外拉去镜像文件,一直卡在 pulling fs layer. 

解决方法: 更换镜像源 (Windows Docker 配置国内镜像源的两种方法

通过Docker-Desktop界面操作和修改daemon.json两种方法配置国内镜像源

# 添加以下源地址:	

"registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://mirror.ccs.tencentyun.com"
    ]

docker搭建Grafana+Loki+Promtail日志分析_第6张图片

至此 再次查看 Git Bash ,Grafana image 已下载完成。

docker搭建Grafana+Loki+Promtail日志分析_第7张图片

 3. 检查grafana image

# docker images 

docker搭建Grafana+Loki+Promtail日志分析_第8张图片

4. 创建docker container

Note:
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name="nginx-lb": 为容器指定一个名称;

# 创建Grafana container

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker run -d -p 3000:3000 --name=grafana grafana/grafana
9066857121a2ef1780b84c2f2135490f1bf85487ba7aa4ba7c80ec0e7de52008


# 列出所有在运行的容器信息
# docker ps

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker ps
CONTAINER ID   IMAGE             COMMAND     CREATED          STATUS          PORTS                    NAMES
9066857121a2   grafana/grafana   "/run.sh"   24 seconds ago   Up 22 seconds   0.0.0.0:3000->3000/tcp   grafana

至此,docker 内的 grafana 就部署完成了

5. 安装Vector

1. docker 搜索可安装的 image file

# docker search

docker搭建Grafana+Loki+Promtail日志分析_第9张图片

2. 安装 Vector

#  docker pull timberio/vector:0.10.0-alpine 

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker pull timberio/vector:0.10.0-alpine

0.10.0-alpine: Pulling from timberio/vector
0.10.0-alpine: Pulling from timberio/vector
21c83c524219: Pulling fs layer
88943f7483ee: Pulling fs layer
24da72aaf03b: Pulling fs layer
4145aaf02e3f: Pulling fs layer
b16d307dc057: Pulling fs layer
4145aaf02e3f: Waiting
88943f7483ee: Verifying Checksum
88943f7483ee: Download complete
21c83c524219: Verifying Checksum
21c83c524219: Download complete
21c83c524219: Pull complete
4145aaf02e3f: Verifying Checksum
4145aaf02e3f: Download complete
88943f7483ee: Pull complete
24da72aaf03b: Verifying Checksum
24da72aaf03b: Download complete
b16d307dc057: Verifying Checksum
24da72aaf03b: Pull complete
4145aaf02e3f: Pull complete
b16d307dc057: Pull complete
Digest: sha256:593180c5498ce28ebe922b87780a4a18e240592e2f5621b457e9041af5656da2
Status: Downloaded newer image for timberio/vector:0.10.0-alpine
docker.io/timberio/vector:0.10.0-alpine

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker

查询已下载的 docker image

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker images
REPOSITORY        TAG             IMAGE ID       CREATED         SIZE
grafana/grafana   latest          83f377cc32a0   3 weeks ago     317MB
hello-world       latest          feb5d9fea6a5   15 months ago   13.3kB
timberio/vector   0.10.0-alpine   2ebd263245dd   2 years ago     80.7MB

安装 image: timberio/vector:0.10.0-alpine 容器 名为 vector 的容器

# Git Bash

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker create --name vector timberio/vector:0.10.0-alpine
abbd527ebd3dfe0b02a0c11d892bf12c7fda25478a354c2e9f5604004989d803

Docker-Compose 搭建Grafana+Loki+Promtail 环境 

前言

Loki 组成:

  1. loki : 主服务器,负责存储日志和处理查询

  2. promtail : 代理,负责收集日志并将其发送给 loki

  3. Grafana : Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能

Loki : https://github.com/grafana/loki

搭建环境

1. 安装Docker

# 查询docker 

magx@DESKTOP-C1MJB99 MINGW64 ~
$ type -a docker
docker is /c/Program Files/Docker/Docker/resources/bin/docker

2. docker-compose

1. 安装Grafana Loki

        # 环境准备
        git clone https://gitee.com/zhengqingya/docker-compose.git

        or 手动网页访问 https://gitee.com/zhengqingya/docker-compose.git 直接克隆下载即可。

docker搭建Grafana+Loki+Promtail日志分析_第10张图片

# Windows系统走此路径
cd docker-compose/Windows

# Liunx系统走此路径
cd docker-compose/Liunx

Note:
# 【 注:Liunx系统先授权,否则会报错:`cannot create directory '/var/lib/grafana/plugins': Permission denied` 】
chmod 777 $PWD/grafana_promtail_loki/grafana/data
chmod 777 $PWD/grafana_promtail_loki/grafana/log

2.  运行服务
# docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up -d

# 停止服务

Note:

1. 此命令一次性启动前检查Grafana, Loki. Promtail  3个image,如无image 下载安装后并启动。

2. 以下命令可看出 

Attaching to

grafana_promtail_loki_demo_grafana,

grafana_promtail_loki_demo_loki,

grafana_promtail_loki_demo_promtail

# CMD 管理员权限
# 下载的docker-compose-master.zip 解压路径为:d:\Soft\Soft-dev\Dokcer\

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up -d
[+] Running 4/4
 - Network grafana_promtail_loki_loki             Created                                                                                                                                                    0.7s
 - Container grafana_promtail_loki_demo_promtail  Started                                                                                                                                                    1.6s
 - Container grafana_promtail_loki_demo_grafana   Started                                                                                                                                                    3.2s
 - Container grafana_promtail_loki_demo_loki      Started                                                                                                                                                    2.7s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                    STATUS              CONFIG FILES
grafana_promtail_loki   running(3)          D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki\docker-compose-grafana-promtail-loki.yml

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                    NAMES
6f692c924ce1   grafana/grafana:latest          "/run.sh"                22 seconds ago   Up 18 seconds   0.0.0.0:3000->3000/tcp   grafana_promtail_loki_demo_grafana
369d843c4cbb   grafana/loki:latest             "/usr/bin/loki -conf…"   22 seconds ago   Up 18 seconds   0.0.0.0:3100->3100/tcp   grafana_promtail_loki_demo_loki
2393ebad644f   grafana/promtail:latest         "/usr/bin/promtail -…"   22 seconds ago   Up 19 seconds                            grafana_promtail_loki_demo_promtail
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   16 hours ago     Up 16 hours     0.0.0.0:80->80/tcp       vector03

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki down
[+] Running 4/4
 - Container grafana_promtail_loki_demo_promtail  Removed                                                                                                                                                    0.8s
 - Container grafana_promtail_loki_demo_grafana   Removed                                                                                                                                                    0.6s
 - Container grafana_promtail_loki_demo_loki      Removed                                                                                                                                                    6.0s
 - Network grafana_promtail_loki_loki             Removed                                                                                                                                                    0.7s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                STATUS              CONFIG FILES

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS        PORTS                NAMES
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   16 hours ago   Up 16 hours   0.0.0.0:80->80/tcp   vector03

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
# CMD 管理员权限
# 下载的docker-compose-master.zip 解压路径为:d:\Soft\Soft-dev\Dokcer\

d:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up
[+] Running 3/0
 - Container grafana_promtail_loki_demo_loki      Created                                                                                               0.0s
 - Container grafana_promtail_loki_demo_promtail  Created                                                                                               0.0s
 - Container grafana_promtail_loki_demo_grafana   Created                                                                                               0.0s
Attaching to grafana_promtail_loki_demo_grafana, grafana_promtail_loki_demo_loki, grafana_promtail_loki_demo_promtail
grafana_promtail_loki_demo_promtail  | Unable to parse config: /etc/promtail/promtail-docker-config.yaml: yaml: unmarshal errors:
grafana_promtail_loki_demo_promtail  |   line 14: field entry_parser not found in type scrapeconfig.plain
grafana_promtail_loki_demo_loki      | creating WAL folder at "/wal": mkdir wal: permission denied
grafana_promtail_loki_demo_loki      | error initialising module: ingester
grafana_promtail_loki_demo_loki      | github.com/grafana/dskit/modules.(*Manager).initModule
grafana_promtail_loki_demo_loki      |  /src/loki/vendor/github.com/grafana/dskit/modules/modules.go:122
grafana_promtail_loki_demo_loki      | github.com/grafana/dskit/modules.(*Manager).InitModuleServices
grafana_promtail_loki_demo_loki      |  /src/loki/vendor/github.com/grafana/dskit/modules/modules.go:92
grafana_promtail_loki_demo_loki      | github.com/grafana/loki/pkg/loki.(*Loki).Run
grafana_promtail_loki_demo_loki      |  /src/loki/pkg/loki/loki.go:363
grafana_promtail_loki_demo_loki      | main.main
grafana_promtail_loki_demo_loki      |  /src/loki/cmd/loki/main.go:105
grafana_promtail_loki_demo_loki      | runtime.main
grafana_promtail_loki_demo_loki      |  /usr/local/go/src/runtime/proc.go:250
grafana_promtail_loki_demo_loki      | runtime.goexit
grafana_promtail_loki_demo_loki      |  /usr/local/go/src/runtime/asm_amd64.s:1594
grafana_promtail_loki_demo_promtail exited with code 1
grafana_promtail_loki_demo_grafana   | logger=settings t=2023-01-05T15:52:55.818434359Z level=info msg="Starting Grafana" version=9.3.2 commit=21c1d14e91 branch=HEAD compiled=2022-12-14T10:40:18Z
grafana_promtail_loki_demo_grafana   | logger=settings t=2023-01-05T15:52:55.818883348Z level=info msg="Config loaded from" file=/usr/share/grafana/conf/defaults.ini
grafana_promtail_loki_demo_grafana   | logger=settings t=2023-01-05T15:52:55.81891629Z level=info msg="Config loaded from" file=/etc/grafana/grafana.ini

通过Docker-compose  一起启动

grafana_promtail_loki_demo_grafana,

grafana_promtail_loki_demo_loki

grafana_promtail_loki_demo_promtail

可查看loki & promtail 启动失败报错。

因此可以单独启动某个 service, 命令如下:

#docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up    <-d>

Note:

1. -d : 后台运行

2. service name 通过 docker-compose-grafana-promtail-loki.yml 中

   services :

   loki:

      ....

  promtail:

       ...

  granfana:

     ...

# Git Bash 查询 docker-compose-grafana-promtail-loki.yml 结果如下:

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Soft-dev/Dokcer/docker-compose-master/Windows/grafana_promtail_loki
$ ls
docker-compose-grafana-promtail-loki.yml  grafana_promtail_loki/  run.md

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Soft-dev/Dokcer/docker-compose-master/Windows/grafana_promtail_loki
$ cat docker-compose-grafana-promtail-loki.yml
# docker-compose配置参考:https://github.com/grafana/loki/blob/master/production/docker-compose.yaml
version: "3"

# 网桥loki -> 方便相互通讯
networks:
  loki:

services:
  # Loki日志系统
  loki:
    image: grafana/loki:latest
    container_name: grafana_promtail_loki_demo_loki
    restart: unless-stopped
    ports:
      - "3100:3100"
    volumes:
      - ./grafana_promtail_loki/loki:/etc/loki
      - ./grafana_promtail_loki/wal:/wal
    command: -config.file=/etc/loki/loki-local-config.yaml
    networks:
      - loki

  # Loki官方支持的日志采集端
  promtail:
    image: grafana/promtail:latest
    container_name: grafana_promtail_loki_demo_promtail
    restart: unless-stopped
    volumes:
      - ./grafana_promtail_loki/logs:/var/logs
      - ./grafana_promtail_loki/promtail:/etc/promtail
    command: -config.file=/etc/promtail/promtail-docker-config.yaml
    networks:
      - loki

  # 用于UI展示
  grafana:
    image: grafana/grafana:latest
    container_name: grafana_promtail_loki_demo_grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - "./grafana_promtail_loki/grafana/data:/var/lib/grafana"
      #      - "./grafana_promtail_loki/grafana/config:/etc/grafana"
      - "./grafana_promtail_loki/grafana/log:/var/log/grafana"
    environment:
      GF_EXPLORE_ENABLED: "true"
    networks:
      - loki

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Soft-dev/Dokcer/docker-compose-master/Windows/grafana_promtail_loki
$ 
''' 
1. 切换路径到 D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki\
2 . 启动某个service
    #前端运行
    # docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up promtail

'''


D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up promtail
[+] Running 2/2
 - Network grafana_promtail_loki_loki             Created                                                                                                                                                    0.8s
 - Container grafana_promtail_loki_demo_promtail  Created                                                                                                                                                    0.2s
Attaching to grafana_promtail_loki_demo_promtail
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:10.201691148Z caller=promtail.go:123 msg="Reloading configuration file" md5sum=afd7ad07c892f8a059abf51b346cafe0
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:10.205267637Z caller=server.go:323 http=[::]:37235 grpc=[::]:37881 msg="server listening on addresses"
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:10.20647781Z caller=main.go:171 msg="Starting Promtail" version="(version=2.7.1, branch=HEAD, revision=e0af1cc8a)"
grafana_promtail_loki_demo_promtail  | level=warn ts=2023-01-06T05:57:10.206547905Z caller=promtail.go:220 msg="enable watchConfig"
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:15.204728147Z caller=filetargetmanager.go:352 msg="Adding target" key="/var/logs/*log:{app=\"varlogs\", job=\"varlogs\"}"
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:15.208100131Z caller=filetarget.go:282 msg="watching new directory" directory=/var/logs
grafana_promtail_loki_demo_promtail  | level=info ts=2023-01-06T05:57:15.209740792Z caller=tailer.go:143 component=tailer msg="tail routine: started" path=/var/logs/app.log
grafana_promtail_loki_demo_promtail  | ts=2023-01-06T05:57:15.209785354Z caller=log.go:168 level=info msg="Seeked /var/logs/app.log - &{Offset:8621 Whence:0}"
[+] Running 1/1ping... (press Ctrl+C again to force)
 - Container grafana_promtail_loki_demo_promtail  Stopped                                                                                                                                                    0.4s
canceled
'''
    # 后台运行
    # docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up promtail -d

'''

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up promtail -d
[+] Running 1/1
 - Container grafana_promtail_loki_demo_promtail  Started                                                                                                                                                    1.0s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>

遇到问题如下:

1. 单独启动loki,报错如下所示:

d:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up  loki
[+] Running 1/0
 - Container grafana_promtail_loki_demo_loki  Created                                                                                                   0.0s
Attaching to grafana_promtail_loki_demo_loki
grafana_promtail_loki_demo_loki  | creating WAL folder at "/wal": mkdir wal: permission denied
grafana_promtail_loki_demo_loki  | error initialising module: ingester
grafana_promtail_loki_demo_loki  | github.com/grafana/dskit/modules.(*Manager).initModule

d:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up  loki
[+] Running 1/0
 - Container grafana_promtail_loki_demo_loki  Created                                                                                                   0.0s
Attaching to grafana_promtail_loki_demo_loki
grafana_promtail_loki_demo_loki  | creating WAL folder at "/wal": mkdir wal: permission denied
grafana_promtail_loki_demo_loki  | error initialising module: ingester
grafana_promtail_loki_demo_loki  | github.com/grafana/dskit/modules.(*Manager).initModule
grafana_promtail_loki_demo_loki  |      /src/loki/vendor/github.com/grafana/dskit/modules/modules.go:122
grafana_promtail_loki_demo_loki  | github.com/grafana/dskit/modules.(*Manager).InitModuleServices
grafana_promtail_loki_demo_loki  |      /src/loki/vendor/github.com/grafana/dskit/modules/modules.go:92
grafana_promtail_loki_demo_loki  | github.com/grafana/loki/pkg/loki.(*Loki).Run
grafana_promtail_loki_demo_loki  |      /src/loki/pkg/loki/loki.go:363
grafana_promtail_loki_demo_loki  | main.main

解决方法:

为loki 服务添加:- ./grafana_promtail_loki/wal:/wal 

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Soft-dev/Dokcer/docker-compose-master/Windows/grafana_promtail_loki
$ cat docker-compose-grafana-promtail-loki.yml
# docker-compose配置参考:https://github.com/grafana/loki/blob/master/production/docker-compose.yaml
version: "3"

# 网桥loki -> 方便相互通讯
networks:
  loki:

services:
  # Loki日志系统
  loki:
    image: grafana/loki:latest
    container_name: grafana_promtail_loki_demo_loki
    restart: unless-stopped
    ports:
      - "3100:3100"
    volumes:
      - ./grafana_promtail_loki/loki:/etc/loki
      - ./grafana_promtail_loki/wal:/wal     # 添加
    command: -config.file=/etc/loki/loki-local-config.yaml
    networks:
      - loki

  # Loki官方支持的日志采集端
 

docker搭建Grafana+Loki+Promtail日志分析_第11张图片

如果docker-compose 一起启动多个services 有错,可单独启动某个services,联调无误后,以后可以通过docker-compose 一次性启动。

1. # CMD 管理员权限
2. # 下载的docker-compose-master.zip 解压路径为:d:\Soft\Soft-dev\Dokcer\

3. # 启动命令如下:
docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up -d

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up -d
[+] Running 4/4
 - Network grafana_promtail_loki_loki             Created                                                                                                                                                    0.7s
 - Container grafana_promtail_loki_demo_promtail  Started                                                                                                                                                    1.6s
 - Container grafana_promtail_loki_demo_grafana   Started                                                                                                                                                    3.2s
 - Container grafana_promtail_loki_demo_loki      Started                                                                                                                                                    2.7s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>



4. # docker-compose 查询运行 serives
docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                    STATUS              CONFIG FILES
grafana_promtail_loki   running(3)          D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki\docker-compose-grafana-promtail-loki.yml

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>




5. # docker 查询已运行 serives
docker ps

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                    NAMES
6f692c924ce1   grafana/grafana:latest          "/run.sh"                22 seconds ago   Up 18 seconds   0.0.0.0:3000->3000/tcp   grafana_promtail_loki_demo_grafana
369d843c4cbb   grafana/loki:latest             "/usr/bin/loki -conf…"   22 seconds ago   Up 18 seconds   0.0.0.0:3100->3100/tcp   grafana_promtail_loki_demo_loki
2393ebad644f   grafana/promtail:latest         "/usr/bin/promtail -…"   22 seconds ago   Up 19 seconds                            grafana_promtail_loki_demo_promtail
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   16 hours ago     Up 16 hours     0.0.0.0:80->80/tcp       vector03

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>




6. # docker-compose 关闭所有serives
docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki down

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki down
[+] Running 4/4
 - Container grafana_promtail_loki_demo_promtail  Removed                                                                                                                                                    0.8s
 - Container grafana_promtail_loki_demo_grafana   Removed                                                                                                                                                    0.6s
 - Container grafana_promtail_loki_demo_loki      Removed                                                                                                                                                    6.0s
 - Network grafana_promtail_loki_loki             Removed                                                                                                                                                    0.7s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>




7. # 再次查询已运行 serives

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                STATUS              CONFIG FILES

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>


D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS        PORTS                NAMES
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   16 hours ago   Up 16 hours   0.0.0.0:80->80/tcp   vector03

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>

# 查询服务

方法一:Docker Desktop

方法二: 命令

# docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls

或者

# docker ps

1. # CMD 管理员权限

2. # 启动服务器查询 (无服务)

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                STATUS              CONFIG FILES

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>


3. # 单独 后台运行启动 服务loki

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki up loki -d
[+] Running 2/2
 - Network grafana_promtail_loki_loki         Created                                                                                                                                                        0.8s
 - Container grafana_promtail_loki_demo_loki  Started                                                                                                                                                        1.2s

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>


4. # 启动服务器查询 (1服务:loki)

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>docker-compose -f docker-compose-grafana-promtail-loki.yml -p grafana_promtail_loki ls
NAME                    STATUS              CONFIG FILES
grafana_promtail_loki   running(1)          D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki\docker-compose-grafana-promtail-loki.yml

D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>
D:\Soft\Soft-dev\Dokcer\docker-compose-master\Windows\grafana_promtail_loki>

3. 通过docker-compose 安装Grafana+loki+Promtail

4. 查看

查看 运行 容器

方法一:命令行查询

# CMD 管理员 or GitBash

#docker ps 


C:\Windows\system32>docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS        PORTS                    NAMES
c14308ada3b1   grafana/loki:latest             "/usr/bin/loki -conf…"   10 hours ago   Up 10 hours   0.0.0.0:3100->3100/tcp   grafana_promtail_loki_demo_loki
c6e8d3289c51   grafana/promtail:latest         "/usr/bin/promtail -…"   11 hours ago   Up 10 hours                            grafana_promtail_loki_demo_promtail
a8065ef7019b   grafana/grafana:latest          "/run.sh"                11 hours ago   Up 10 hours   0.0.0.0:3000->3000/tcp   grafana_promtail_loki_demo_grafana
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   12 hours ago   Up 12 hours   0.0.0.0:80->80/tcp       vector03

C:\Windows\system32>

查看 运行 容器

方法二:Docker Desktop

docker搭建Grafana+Loki+Promtail日志分析_第12张图片

查询所有容器:

# CMD 管理员
# docker ps -a


C:\Windows\system32>
C:\Windows\system32>docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS                    PORTS                    NAMES
c14308ada3b1   grafana/loki:latest             "/usr/bin/loki -conf…"   10 hours ago   Up 10 hours               0.0.0.0:3100->3100/tcp   grafana_promtail_loki_demo_loki
c6e8d3289c51   grafana/promtail:latest         "/usr/bin/promtail -…"   11 hours ago   Up 10 hours                                        grafana_promtail_loki_demo_promtail
a8065ef7019b   grafana/grafana:latest          "/run.sh"                11 hours ago   Up 10 hours               0.0.0.0:3000->3000/tcp   grafana_promtail_loki_demo_grafana
2f973e49c673   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   12 hours ago   Up 12 hours               0.0.0.0:80->80/tcp       vector03
c6cf31e5ad58   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   17 hours ago   Exited (0) 17 hours ago                            vector01
abbd527ebd3d   timberio/vector:0.10.0-alpine   "/usr/local/bin/vect…"   17 hours ago   Created                                            vector
9066857121a2   grafana/grafana                 "/run.sh"                23 hours ago   Exited (0) 11 hours ago                            grafana
16218564a475   hello-world                     "/hello"                 24 hours ago   Exited (0) 24 hours ago                            reverent_jemison

C:\Windows\system32>

配置Grafana

1. 浏览器打开 grafana 控制台,并进入控制台

浏览器访问:

http://localhost:3000  or  http://127.0.0.1:3000

 username& pwd: admin\admin

默认账号和密码都是 admin ,进入了以后 跳过修改密码

docker搭建Grafana+Loki+Promtail日志分析_第13张图片

 2. 设置 grafana 的数据源为 loki

docker搭建Grafana+Loki+Promtail日志分析_第14张图片

 docker搭建Grafana+Loki+Promtail日志分析_第15张图片

 3. 配置数据源Loki 信息

docker搭建Grafana+Loki+Promtail日志分析_第16张图片

 4. Vector

#  GitBash or cmd 管理员

创建container

# docker run -d -p 80:80 --name vector timberio/vector:0.10.0-alpine

magx@DESKTOP-C1MJB99 MINGW64 /d/Soft/Docker
$ docker run -d -p 80:80 --name vector timberio/vector:0.10.0-alpine
aab569a25ead1cb385edaf22144ec8cc46b4e956b4c766051cf4deea47a28d01
 

有时候需要Docker修改容器内部文件,方法多种,推荐 使用-v挂载文件夹(推荐)

方法是在启动的时候使用-v将容器内部的文件夹挂载(映射)到本地的某个路径下,以后以后可以直接在本地修改,不需要进入容器内部.

#冒号前是本地路径(需要绝对路径),冒号后是容器中的路径

你可能感兴趣的:(docker,grafana,运维)