loki-rsyslog-plugin

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2023 License: Apache-2.0

README

简介

loki-rsyslog-plugin是连接Grafana Loki与Remote syslog的中间插件

工作原理

loki-rsyslog-plugin默认监听系统端口5014/tcp 5014/udp接收远程系统日志,日志接收后,对日志进行打标签,然后推送至Loki日志服务器,用于实现系统/设备远程日志集中管理,统一查询。

优点

  • 使用Golang开发,构建部署简单,具有高并发优点;
  • 相较于logstash等工具占用系统计算资源极低。

应用场景

场景1:硬件日志集中管理

数据中心机房服务器BMC、交换机、存储阵列等设备开启远程系统日志功能,由loki-rsyslog-plugin接收日志消息并处理,统一推送至Grafana Loki,实现日志集中管理,统一查询,并通过alertmanager进行告警。

开始运行

开始前配置

修改配置文件conf/config.toml(二进制包的配置文件位于解压目录下)

配置文件很简单,说明如下:

[server]
udp = true  # 是否开启udp监听
udp_bind = "0.0.0.0:5014"  # udp监听地址
tcp = true  # 是否开启tcp监听
tcp_bind = "0.0.0.0:5014"  # tcp监听地址

[loki]
url = "http://<loki_ip>:3100/loki/api/v1/push" # loki推送接口

方式1:快速开始(Docker)

构建镜像

Dockerfile base image可根据实际情况进行修改 docker build -t loki-rsyslog-plugin:1.0 .

运行容器

docker run -dit --name loki-rsyslog-plugin -p 5014:5014/tcp -p 5014:5014/udp loki-rsyslog-plugin:1.0

方式2:二进制部署(Linux 64位)

仅展示linux amd64架构部署,其它系统自行编译

# (1)创建运行目录
mkdir /usr/local/loki-rsyslog-plugin

# (2)Github Release下载打包文件
wget https://github.com/JialeHao/loki-rsyslog-plugin/releases/download/v1.0.1/loki-rsyslog-plugin-1.0.0-linux.amd64.tar.gz

# (3)解压至运行目录
tar zxvf loki-rsyslog-plugin-1.0.1-linux.amd64.tar.gz -C /usr/local/loki-rsyslog-plugin/

# (4)Systemd管理
mv /usr/local/loki-rsyslog-plugin/loki-rsyslog-plugin.service /usr/lib/systemd/system/
systemctl daemon-reload

# (5)启动并设置开机自启
systemctl enable loki-rsyslog-plugin.service --now

方式3:源码编译

go build -o loki-rsyslog-plugin cmd/loki-rsyslog-plugin/loki-rsyslog-plugin

日志标签

默认标签

默认的日志标签有5个:

  • source: 内置固定值rsyslog,定义日志来源
  • ip: 远程日志发送方的IP地址
  • ts: loki-rsyslog-plugin接收到远程日志并开始处理的时间戳
  • proto: 远程日志发送方使用的协议,tcp或udp
  • level: 根据pri解析出来的日志等级

备注:若level=unset说明远程日志未遵守syslog RFC3164或者RFC5424标准

新增标签

暂不支持简单的方式,需修改代码并重新编译(后续重点改善)。

需要修改core/packline.go,在packline函数中新增自定义逻辑,根据实际情况新增自定义标签。

设计理念

做好中间人角色,不过分臃肿,以ip标签为根据,联动企业内部其它系统的开放能力,查询标签并添加,超时或返回错误则不添加此标签,或者结合loki对外提供查询能力。

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL