
admiralobvious/tinysyslogtinysyslog是一个轻量级、简单的Syslog服务器,专注于日志轮转功能。该工具旨在提供易于部署和使用的日志收集解决方案,仅接收符合RFC 5424格式的日志,并支持将日志输出到自动轮转的文件、标准输出/错误流(适用于Docker环境)或Elasticsearch。基于Go语言开发,依赖go-syslog和lumberjack库实现核心功能。
shellgit clone [***] cd tinysyslog make run
服务启动成功后,将显示以下日志:
shell2023-08-30T18:38:09-04:00 INF server.go:52 > tinysyslog starting 2023-08-30T18:38:09-04:00 INF server.go:63 > tinysyslog listening on 127.0.0.1:5140
测试日志接收:
shellnc -w0 -u 127.0.0.1 5140 <<< '<165>1 2016-01-01T12:01:21Z hostname appname 1234 ID47 [exampleSDID@32473 iut="9" eventSource="test" eventID="123"] message'
成功接收后,终端将输出:
shellJan 1 12:01:21 hostname appname[1234]: message
拉取镜像:
shelldocker pull admiralobvious/tinysyslog
启动容器:
shelldocker run --rm --name tinysyslog -p 5140:5140/udp -d admiralobvious/tinysyslog
测试日志发送:
shellnc -w0 -u 127.0.0.1 5140 <<< '<165>1 2016-01-01T12:01:21Z hostname appname 1234 ID47 [exampleSDID@32473 iut="9" eventSource="test" eventID="123"] message'
验证日志接收:
shelldocker logs tinysyslog
预期输出:
shell2023-08-30T22:46:06Z INF build/server.go:52 > tinysyslog starting 2023-08-30T22:46:06Z INF build/server.go:63 > tinysyslog listening on 0.0.0.0:5140 Jan 1 12:01:21 hostname appname[1234]: message
yamlversion: '3.8' services: tinysyslog: image: admiralobvious/tinysyslog container_name: tinysyslog ports: - "5140:5140/udp" - "5140:5140/tcp" # 如需TCP支持 volumes: - ./syslog-logs:/app # 持久化日志文件 command: --bind-addr 0.0.0.0:5140 --sinks filesystem,console --sink-filesystem-filename /app/syslog.log --sink-filesystem-max-size 50 # 50MB后轮转 --sink-filesystem-max-backups 5 --log-level INFO
应用部署清单:
shellkubectl apply -f kubernetes/tinysyslog.yaml
验证Pod状态:
shellkubectl get pods | grep tinysyslog
预期输出:
shelltinysyslog-6c85886f65-q9cxw 1/1 Running 0 1m
查看启动日志:
shellkubectl logs tinysyslog-6c85886f65-q9cxw
应用可通过服务名tinysyslog:5140发送日志到该服务。
tinysyslog通过命令行参数进行配置,支持多种运行时参数调整。以下是主要配置参数说明:
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--app-name | 应用名称 | tinysyslog | - |
--env-name | 应用环境(用于配置文件加载) | PROD | - |
--log-level | 日志输出级别 | INFO | PANIC, FATAL, ERROR, WARN, INFO, DISABLED, TRACE |
--log-output | 内部日志输出目标 | stdout | stdout, stderr |
--log-writer | 内部日志格式 | console | console, json |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--bind-addr | 监听地址和端口 | 127.0.0.1:5140 | 格式:IP:端口 |
--socket-type | 网络协议类型 | (默认同时支持TCP/UDP) | TCP, UDP |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--filter | 日志过滤器类型 | - | regex |
--filter-regex | 过滤正则表达式 | - | 有效的正则表达式 |
--mutator | 日志转换类型 | text | text, json |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--sink-console-output | 控制台输出目标 | stdout | stdout, stderr |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--sink-filesystem-filename | 日志文件路径 | syslog.log | 有效的文件路径 |
--sink-filesystem-max-age | 日志保留时间(天) | 30 | 正整数 |
--sink-filesystem-max-backups | 最大备份数 | 10 | 正整数 |
--sink-filesystem-max-size | 单文件最大大小(MB) | 100 | 正整数 |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--sink-elasticsearch-addresses | Elasticsearch地址列表 | - | 逗号分隔的URL列表 |
--sink-elasticsearch-index-name | 索引名称 | tinysyslog | - |
--sink-elasticsearch-username | 用户名 | - | - |
--sink-elasticsearch-password | 密码 | - | - |
--sink-elasticsearch-api-key | API密钥 | - | - |
--sink-elasticsearch-service-token | 服务令牌 | - | - |
--sink-elasticsearch-cloud-id | Cloud ID | - | Elastic Cloud ID |
| 参数 | 描述 | 默认值 | 有效值 |
|---|---|---|---|
--sinks | 启用的接收器列表 | [console] | console, elasticsearch, filesystem(逗号分隔) |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务