程序员的资源宝库

网站首页 > gitee 正文

日志lokigrafana安装和使用 日志logger

sanyeah 2024-03-29 18:00:53 gitee 7 ℃ 0 评论

一.loki的安装和使用

1.1、loki说明

  主要3个插件

  • loki   

????主要负责日志的存储和收集,主要安装在日志存储服务器

  • grafana

????负责日志页面的展示,主要安装在主存储服务器

  • promtail

????日志收集插件,安装在需要收集日志的服务器,进行日志上传

说明:

??loki日志系统安装有多种方式,二进制安装yum安装docker安装helm安装k8s安装等。

1.2、docker-compose方式安装loki和使用

??1、安装

创建日志存储loki的配置文件

vim /opt/loki/loki-local-config.yaml

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 39095 #grpc监听端口,默认为9095
  grpc_server_max_recv_msg_size: 15728640  #grpc最大接收消息值,默认4m
  grpc_server_max_send_msg_size: 15728640  #grpc最大发送消息值,默认4m

ingester:
  lifecycler:
    address: 127.0.0.1
    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

schema_config:
  configs:
    - from: 2018-04-15
      store: boltdb
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 168h

storage_config:
  boltdb:
    directory: /loki/index

  filesystem:
    directory: /loki/chunks

limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
  ingestion_rate_mb: 30
  ingestion_burst_size_mb: 15
  
chunk_store_config:
  max_look_back_period: 168h #回看日志行的最大时间,只适用于即时日志

table_manager:
  retention_deletes_enabled: true #日志保留周期开关,默认为false
  retention_period: 168h #日志保留周期

 

loki节点

vim /opt/loki/docker-compose.yaml

version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.3.0
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - LANG=zh_CN.UTF-8
    ports:
      - "3100:3100"
    command: -config.file=/opt/loki/loki-local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:2.3.0
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - LANG=zh_CN.UTF-8
    volumes:
      - /var/log:/var/log
      - /var/lib/docker:/var/lib/docker
      - /etc/promtail:/etc/promtail
    command: -config.file=/opt/loki/promtail-docker-config.yml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - LANG=zh_CN.UTF-8
    ports:
      - "3000:3000"
    networks:
      - loki

创建日志收集发送 promtail的配置文件

vim /opt/loki/promtail-local-comfig.yaml

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://localhost:3100/loki/api/v1/push  #日志上传地址

scrape_configs:
- job_name: xzyy #namespace名字
  static_configs:
  - targets:
      - node-111  #node节点名字
    labels:
      job: varlogs  #job名字,可以自定义
      __path__: /var/lib/docker/overlay2/*/diff/home/jhipster/*log  #日志地址根据实际情况修改

promtail节点 

创建日志收集发送 promtail的配置文件

vim /opt/loki/promtail-local-comfig.yaml

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

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

scrape_configs:
- job_name: xzyy
  static_configs:
  - targets:
      - node-111
    labels:
      job: varlogs
      __path__: /var/lib/docker/overlay2/*/diff/home/jhipster/*log

?

安装promtail客户端程序

1、下载

https://github.com/grafana/loki/releases/download/v2.3.0/promtail-linux-amd64.zip

2、配置

mkdir /data/promtail
unzip promtail-linux-amd64.zip
wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml

2、启动promtail

cd /data/promtail
nohup ./promtail-linux-amd64 -config.file=promtail.yaml &

 

?2、使用

??访问:http://lokiIP:3000

??添加数据源:设置--》datasource --》 添加loki 或 ip :3100

       nginx代理使用stream或者location

 

====================================================================================

二. 第二种部署版本

2.1 docker-compose 安装精细验证版本

目录:

loki docker-compose.yaml /home/tools/loki
loki local-config.yaml /home/tools/loki/etc/loki
loki 数据存储目录 /datadisk/loki
grafana 数据存储目录 /datadisk/grafana/
promtail config.yml /etc/promtail

目录权限

chmod +777 -R /datadisk/grafana
chmod +777 -R /datadisk/loki
#promtail收集端采用docker方式收集,断点续传目录需要持久化
chmod +777 -R /datadisk/promtail/tmp

(1)、docker-compose文件

version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.8.6
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - LANG=zh_CN.UTF-8
    ports:
      - "3100:3100"
    volumes:
      - /home/tools/loki/etc/loki/:/etc/loki/
      - /datadisk/loki/:/loki/
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:2.8.6
    restart: always
    volumes:
      - /var/log:/var/log
      - /var/lib/docker:/var/lib/docker
      - /etc/promtail:/etc/promtail
      - /datadisk/promtail/tmp:/tmp/
    command: -config.file=/etc/promtail/config.yml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - LANG=zh_CN.UTF-8
    ports:
      - "3000:3000"
    networks:
      - loki
    volumes:
      - /datadisk/grafana/:/var/lib/grafana/

(2). 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:
    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

table_manager:
  retention_deletes_enabled: true
  retention_period: 720h

limits_config:
# enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 720h
# ingestion_rate_mb: 60
# 每个用户允许的采样突发大小
# ingestion_burst_size_mb: 80

(3). promtail的配置文件  (注意修改IP

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

#注意ip采用的内网ip
clients:
  - url: http://172.26.7.75:3100/loki/api/v1/push  #日志上传地址

scrape_configs:
- job_name: xzyy #namespace名字
  static_configs:
  - targets:
      - node-111  #node节点名字
    labels:
      job: varlogs  #job名字,可以自定义
      __path__: /var/log/*.log  #日志地址根据实际情况修改

注意:如果采用脚本程序运行

下载地址:

https://github.com/grafana/loki/releases/download/v2.8.6/promtail-linux-amd64.zip

nohup ./promtail-linux-amd64 -config.file=/etc/promtail/config.yml &

这里也可以编写成sh脚本运行

或者 开机启动

[root@hw ~]# cat /usr/lib/systemd/system/promtail.service
[Unit]
Description=promtail
Documentation=https://github.com/grafana/loki/tree/master
After=network.target
 
[Service]
Type=simple
User=root
ExecStart=/home/tools/promtail/promtail-linux-amd64 -config.file=/home/tools/promtail/config/promtail-local-config.yaml
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

 

(4). 访问grafana页面,添加loki数据源

以上完成

 

2.2 、k8s方式安装

请看附件yaml安装文件

 

三 . loki收集docker日志的方法

3.1 说明

本文通过安装 docker loki plugin 直接采集docker容器日志,并推送至loki。官方文档

3.2 插件安装

# 安装最新的插件
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
# 查看插件
[root@data1 ~]# docker plugin ls
ID             NAME          DESCRIPTION           ENABLED
744b79d5d1a9   loki:latest   Loki Logging Driver   true

3.3 docker插件操作

#以下根据需要进行
# 停用
docker plugin disable loki --force
# 升级
docker plugin upgrade loki grafana/loki-docker-driver:latest --grant-all-permissions
# 启用
docker plugin enable loki
# 重启docker
systemctl restart docker

#插件卸载
docker plugin disable loki --force
docker plugin rm loki

3.4 插件使用

# (1)单独为一个容器设置日志驱动
# --log-driver=loki
docker run --log-driver=loki \
    --log-opt loki-url="http://IP:3100/loki/api/v1/push" \
    --log-opt loki-retries=5 \
    --log-opt loki-batch-size=400 \
    --log-opt max-size=50m \
    --log-opt max-file=3 \
    grafana/grafana

#(2)为所有的容器设置默认参数
vim /etc/docker/daemon.json
#添加 log-driver 和 log-opts 两项,注意修改IP
{
        "exec-opts": ["native.cgroupdriver=systemd"],
        "registry-mirrors":[
                "https://xxxxxxxxxxx.mirror.aliyuncs.com",
                "https://registry.docker-cn.com"
        ],
        "log-driver": "loki",
        "log-opts": {
                "loki-url": "http://172.26.7.79:3100/loki/api/v1/push",
                "max-size": "50m",
                "max-file": "10"
        }
}

#重载环境
systemctl daemon-reload
systemctl restart docker

 

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表