编辑
2023-07-28
运维
00
请注意,本文编写于 630 天前,最后修改于 630 天前,其中某些信息可能已经过时。

目录

背景
选型&环境
rsyslog
Promtail & Loki
Grafana

背景

公司网络设备有很多靠本身存储logs在掉电后会丢失,根据这一痛点趁这个机会搭建统一logs平台来对设备的logs进行收集

选型&环境

通过rsyslog采集 promtail+loki+grafana 展现的方案来对日志进行可视化。

环境为 Ubuntu 2004

rsyslog

使用系统自带的rsyslog进行配置,首先默认配置文件中注释掉以下两行开启UDP514端口

bash
mkdir -p /data/logs/data chown syslog:adm /data/logs/data vim /etc/rsyslog.conf # 取消注释以下两行 $ModLoad imudp $UDPServerRun 514 # 在这个文件夹下新建自己的模板文件 root@logs:~# ll /etc/rsyslog.d/ total 24 drwxr-xr-x 2 root root 4096 Jul 24 15:07 ./ drwxr-xr-x 102 root root 4096 Jul 24 15:50 ../ -rw-r--r-- 1 root root 314 Jan 22 2020 20-ufw.conf -rw-r--r-- 1 root root 255 Dec 9 2022 21-cloudinit.conf -rw-r--r-- 1 root root 1862 Aug 11 2020 50-default.conf vim /etc/rsyslog.d/60-network.conf # 写入以下两行 这里是自定义了logs文件的存放方法,log文件将以ip为文件夹,按天分割 $template RemoteLogs,"/data/logs/data/%fromhost-ip%/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%.log" :fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs & ~ # 编辑完成后重启服务 systemctl restart rsyslog

Promtail & Loki

参照官网示例使用Docker方式拉起容器。

bash
# loki mkdir /data/loki cd /data/loki wget https://raw.githubusercontent.com/grafana/loki/v2.8.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml docker run --name loki -d -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:2.8.0 -config.file=/mnt/config/loki-config.yaml # promtail mkdir /data/promtail cd /data/promtail wget https://raw.githubusercontent.com/grafana/loki/v2.8.0/clients/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml docker run --name promtail -d -v $(pwd):/mnt/config -v /data/logs/data:/var/log/network --link loki grafana/promtail:2.8.0 -config.file=/mnt/config/promtail-config.yaml

Grafana

Grafana这里,如果按照官方文档后面不跟版本号,那么会拉下来8.3老版本的镜像,比较难用,建议查看docker hub的标签后重新指定版本。 Grafana Docker hub tag

bash
mkdir /data/grafana cd /data/grafana docker run -d -p 3000:3000 --name=grafana --user "$(id -u)" --volume "$PWD/data:/var/lib/grafana" grafana/grafana-enterprise:10.0.2-ubuntu

在 ip:3000 端口访问Grafana后数据源添加loki,url填入loki容器暴露的地址和端口点确定即可,同时可以将Grafana容器内的/usr/share/grafana/conf也一同映射出来,方便调整配置, 如可以修改default_language = zh-Hans,官方有部分汉化,有的总比没得好。