1
1
---
2
- title : 来谈谈日志集中管理方案 - syslog是你的好伙伴 .md
2
+ title : 来谈谈日志集中管理方案 - syslog 是你的好伙伴 .md
3
3
date : 2024-10-13
4
4
lastmod : 2024-10-13
5
- description : 身为一个数码宅, 家里总是会有越来越多的数码设备, 智能化的设备多起来, 总是难免会遇到各种各样的问题, 排查问题的时候日志就很重要了, 对于一些偶发的 case, 比如偶发网络卡顿, 能够看到足够完整清晰的日志, 就很方便了.
5
+ description : 身为一个数码宅, 家里总是会有越来越多的数码设备, 智能化的设备多起来, 总是难免会遇到各种各样的问题, 排查问题的时候日志就很重要了, 对于一些偶发的 case, 比如偶发网络卡顿, 能够看到足够完整清晰的日志, 就很方便了。
6
6
categories :
7
7
- 技术
8
8
tags :
@@ -13,27 +13,27 @@ tags:
13
13
---
14
14
15
15
16
- 身为一个数码宅, 家里总是会有越来越多的数码设备, 智能化的设备多起来, 总是难免会遇到各种各样的问题, 排查问题的时候日志就很重要了, 对于一些偶发的 case, 比如偶发网络卡顿, 能够看到足够完整清晰的日志, 就很方便了.
16
+ 身为一个数码宅, 家里总是会有越来越多的数码设备, 智能化的设备多起来, 总是难免会遇到各种各样的问题, 排查问题的时候日志就很重要了, 对于一些偶发的 case, 比如偶发网络卡顿, 能够看到足够完整清晰的日志, 就很方便了。
17
17
18
- 对于一些低功耗设备, 比如路由器, 其磁盘资源很紧张, 日志通常不会保存很久. 这个时候要排查一些偶发的持续时间长的小 bug 就很头痛了. 好在 openwrt 原生就支持将日志通过 syslog 协议发送到远程服务器. 不过看了一圈, 发送是发送过去了, 但是看日志还得命令行一个个看, 要想有个方便的地方看的话就得上 ELK 那一套非常繁琐且吃资源的那一套, 我的需求是这样的:
18
+ 对于一些低功耗设备, 比如路由器, 其磁盘资源很紧张, 日志通常不会保存很久。 这个时候要排查一些偶发的持续时间长的小 bug 就很头痛了。 好在 openwrt 原生就支持将日志通过 syslog 协议发送到远程服务器。 不过看了一圈, 发送是发送过去了, 但是看日志还得命令行一个个看, 要想有个方便的地方看的话就得上 ELK 那一套非常繁琐且吃资源的那一套, 我的需求是这样的:
19
19
20
- - 免费, 可以持续使用
20
+ - 免费, 可以持续使用
21
21
- 能够通过 syslog 协议收集日志
22
- - 能够自部署最佳, 但是不希望是 ELK 那种繁琐且非常消耗资源的
22
+ - 能够自部署最佳, 但是不希望是 ELK 那种繁琐且非常消耗资源的
23
23
- 有个 web 界面能方便的查找日志
24
- - 能够配置监控, 那样的话如果设备有 fatal 日志我可以立即知道
24
+ - 能够配置监控, 那样的话如果设备有 fatal 日志我可以立即知道
25
25
26
- 搜寻了一番, 发现有个 datalust 公司出的 seq 看起来挺不错, 在自己服务器上部署了一套, 完美符合我的需求, 分享一下.
26
+ 搜寻了一番, 发现有个 datalust 公司出的 seq 看起来挺不错, 在自己服务器上部署了一套, 完美符合我的需求, 分享一下。
27
27
28
- seq 不仅支持 syslog, 还支持程序主动上报、采集容器日志等很多功能, 这里只主要围绕 syslog, 收集各种终端设备日志做介绍
28
+ seq 不仅支持 syslog, 还支持程序主动上报、采集容器日志等很多功能, 这里只主要围绕 syslog, 收集各种终端设备日志做介绍
29
29
30
30
![ Pasted image 20241013170403] ( https://blog-1301127393.file.myqcloud.com/BlogImgs/202410132128864.png )
31
31
32
32
![ Pasted image 20241013170340] ( https://blog-1301127393.file.myqcloud.com/BlogImgs/202410132128865.png )
33
33
34
- ## 安装: 通过 docker compose 部署 seq
34
+ ## 安装: 通过 docker compose 部署 seq
35
35
36
- 首先生成下默认密码, 这里需要通过程序自身的指令生成明文密码对应的密文才行. 比如我这里指定初始密码的明文为` initP@ss ` , 运行这个指令, 就会输出对应的密文, 这个待会部署的时候需要使用
36
+ 首先生成下默认密码, 这里需要通过程序自身的指令生成明文密码对应的密文才行。 比如我这里指定初始密码的明文为` initP@ss ` , 运行这个指令, 就会输出对应的密文, 这个待会部署的时候需要使用
37
37
38
38
``` bash
39
39
➜ echo ' initP@ss' | sudo docker run --rm -i datalust/seq config hash
@@ -42,7 +42,7 @@ seq 不仅支持 syslog, 还支持程序主动上报、采集容器日志等很
42
42
QE6k2bZLWkh7BwWYRNsG3h9sZPcLskSLKJGii4mvU0rsDyN0/UqW1TwEZp43O09wvOCjbOgswZxHX7FeNo05cfiv3KkB8/q/Msj8nlXL4TGd
43
43
```
44
44
45
- 之后通过 docker compose 进行部署, 下面为 compose 文件示例
45
+ 之后通过 docker compose 进行部署, 下面为 compose 文件示例
46
46
47
47
``` yaml
48
48
services :
@@ -52,9 +52,9 @@ services:
52
52
depends_on :
53
53
- seq
54
54
ports :
55
- - " 20014:514/udp" # 接收 syslog 协议请求的端口, 这里配置的是20014 , 可以自定义, 后面需要用到
55
+ - " 20014:514/udp" # 接收 syslog 协议请求的端口,这里配置的是 20014 , 可以自定义, 后面需要用到
56
56
environment :
57
- SEQ_ADDRESS : " http://seq:5341" # 要转发到主程序进行处理, 端口为默认的5341 , 不用改
57
+ SEQ_ADDRESS : " http://seq:5341" # 要转发到主程序进行处理,端口为默认的 5341 , 不用改
58
58
restart : unless-stopped
59
59
60
60
seq :
@@ -70,21 +70,21 @@ services:
70
70
- /data/seq-data:/data
71
71
` ` `
72
72
73
- 之后执行 sudo docker compose up -d , 顺利的话, 在配置的 web ui 端口, 就可以看到管理台了. 默认账户为 admin, 密码为刚才设置的密码的原始明文.
73
+ 之后执行 sudo docker compose up -d , 顺利的话, 在配置的 web ui 端口, 就可以看到管理台了。 默认账户为 admin, 密码为刚才设置的密码的原始明文。
74
74
75
- ## 使用: syslog 配置
75
+ ## 使用: syslog 配置
76
76
77
- 基本上所有 Linux-base 系统都支持将系统日志通过 syslog 协议发送到远端服务器. 我手头主要的 openwrt 路由器、运行 truenas 系统的 nas、树莓派上跑的 debian, 以及其他 linux 云服务器都可以无缝接入, 这里简单介绍下
77
+ 基本上所有 Linux-base 系统都支持将系统日志通过 syslog 协议发送到远端服务器。 我手头主要的 openwrt 路由器、运行 truenas 系统的 nas、树莓派上跑的 debian, 以及其他 linux 云服务器都可以无缝接入, 这里简单介绍下
78
78
79
79
### openwrt 配置远程 log
80
80
81
- 在 system -> system 菜单下, 有个 logging 的 tab, 里面配置好服务器 ip、端口就可以使用了. 协议记得选 udp
81
+ 在 system -> system 菜单下, 有个 logging 的 tab, 里面配置好服务器 ip、端口就可以使用了。 协议记得选 udp
82
82
83
83

84
84
85
85
### truenas 配置远程 log
86
86
87
- 在 system setting -> advaned -> syslog 菜单下, 配置远程服务器地址和端口, 协议选择 udp, 保存就可以了
87
+ 在 system setting -> advaned -> syslog 菜单下, 配置远程服务器地址和端口, 协议选择 udp, 保存就可以了
88
88
89
89

90
90
@@ -104,21 +104,21 @@ sudo yum install rsyslog
104
104
` ` `
105
105
106
106
步骤 2:配置客户端的 rsyslog
107
- 编辑 rsyslog 配置文件: 打开配置文件进行编辑,通常位于 `/etc/rsyslog.conf` 或 `/etc/rsyslog.d/` 目录下。
107
+ 编辑 rsyslog 配置文件:打开配置文件进行编辑,通常位于 `/etc/rsyslog.conf` 或 `/etc/rsyslog.d/` 目录下。
108
108
109
109
` ` ` bash
110
110
sudo nano /etc/rsyslog.conf
111
111
` ` `
112
112
113
- 添加远程服务器配置: 在文件末尾,添加以下行以指定远程服务器的 IP 地址和端口(默认是 UDP 514 或 TCP 514):
113
+ 添加远程服务器配置:在文件末尾,添加以下行以指定远程服务器的 IP 地址和端口(默认是 UDP 514 或 TCP 514):
114
114
115
115
` ` ` conf
116
116
*.* @remote-server-ip:514 # 使用 UDP
117
117
*.* @@remote-server-ip:514 # 使用 TCP
118
118
` ` `
119
119
120
- 这里我们需要使用 udp 协议的.
121
- 将 remote-server-ip 替换为远程 Syslog 服务器的实际 IP 地址或者域名, 保存并关闭文件。
120
+ 这里我们需要使用 udp 协议的。
121
+ 将 remote-server-ip 替换为远程 Syslog 服务器的实际 IP 地址或者域名, 保存并关闭文件。
122
122
123
123
比如
124
124
@@ -137,15 +137,15 @@ sudo systemctl restart rsyslog
137
137
138
138
# ## 配置日志定期清理
139
139
140
- 默认情况下, 是没有配置日志清理规则的, 时间一长服务器硬盘可能直接满了, 所以这里一定不要忘记配置自动清理. 在菜单里的 retention 可以配置过多少天删除
140
+ 默认情况下, 是没有配置日志清理规则的, 时间一长服务器硬盘可能直接满了, 所以这里一定不要忘记配置自动清理。 在菜单里的 retention 可以配置过多少天删除
141
141
142
142

143
143
144
144

145
145
146
146
# ## 配置告警通知
147
147
148
- 各种通知渠道的支持是通过插件形式提供的, 在 设置里可以自行安装. 可以支持 email、http webhook, 钉钉机器人、telegram 机器人等多种渠道.
148
+ 各种通知渠道的支持是通过插件形式提供的, 在 设置里可以自行安装。 可以支持 email、http webhook, 钉钉机器人、telegram 机器人等多种渠道。
149
149
150
150
[插件市场链接](https://www.nuget.org/packages?q=Tags%3A%22seq-app%22)
151
151
0 commit comments