Linux搭建syslog日志服务器

最近有个需求,需要使用到syslog服务器,于是寻找资料在Linux系统上搭建了一个docker容器的syslog日志服务器。操作步骤如下。执行步骤前,你先得在Linux上安装好docker软件,安装好后看docker的compose是否可以使用,不行,还需要安装docker-compose,之前老一些的版本安装好后是使用docker-compose这样用,后面新版本的docker就docker compose这样来使用的,些许区别,在这做个简单的提醒。

1、拉取镜像

拉取镜像当时也废了一些功夫,拉取的时候不是连不上服务器就是超时,后面改了docker的镜像源,使用下面的拉取镜像命令终于拉取成功了。

复制代码
docker pull rsyslog/rsyslog:latest

拉取成功后使用docker images查看镜像,可以看到镜像已经拉取完成了,如下所示:

2、编辑配置文件

首选创建一个文件夹syslog,然后进入文件夹,创建文件夹data和下面的docker-compose.yml文件。在data里面再新建remote文件夹和rsyslog.conf文件,最后目录结构如下图所示:

然后就是编辑rsyslog.conf内容为如下内容

bash 复制代码
# 加载核心模块
module(load="imuxsock")  # 本地日志接收
module(load="imudp")     # UDP 模块
module(load="imtcp")     # TCP 模块(关键,启用 TCP 支持)

# 监听 UDP 514 端口
input(type="imudp" port="514")
# 监听 TCP 514 端口(关键,启用 TCP 支持)
input(type="imtcp" port="514")

# 定义模板:按客户端主机名+程序名分类存储日志
$template RemoteLog,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
# 所有远程日志应用模板存储
*.* ?RemoteLog

# 额外:按日志级别分类(如 ERROR 日志单独存储)
:syslogseverity, isequal, "error" /var/log/remote/error.log

# 禁止日志重复输出
& stop

其中remote文件夹里面不做任何修改,空文件夹即可,后面做数据映射到容器。

3、配置docker-compose文件

解下就是编辑compose文件,编辑上面文件夹内的docker-compose.yml文件,修改内容如下

bash 复制代码
version: '3.8'

services:
  syslog-server:
    image: rsyslog/rsyslog:latest
    network_mode: bridge
    container_name: syslog-server
    restart: unless-stopped
    ports:
      - "514:514/udp"  # UDP 协议端口映射
      - "514:514/tcp"  # TCP 协议端口映射
    volumes:
      - ./data/remote:/var/log/remote  # 日志持久化
      - ./data/rsyslog.conf:/etc/rsyslog.conf
    environment:
      - TZ=Asia/Shanghai  # 时区配置

文件中写明,容器镜像使用我们前面拉取的镜像rsyslog/rsyslog:latest,然后做了UDP和TCP的端口映射,然后就是数据持久化和匹配文件的映射

4、运行容器验证服务器

最后就是运行容器,运行命令:docker compose up -d即可运行容器,如果运行成功,是docker ps可以看到新建的容器

此时就表示容器搭建完成了,然后就是测试一下发送日志到syslog服务器,在宿主机的命令行执行如下命令:

bash 复制代码
#UDP协议发送日志到syslog日志服务器
logger -d -n 127.0.0.1 -P 514 "jelly UDP test log: $(date)"

#TCP协议发送日志到syslog日志服务器
logger -n 127.0.0.1 -P 514 "@@TCP jelly test log: $(date)"

然后就可以去宿主机映射的目录data/remote目录下面的文件里面看到上传的日志信息

相关推荐
fetasty6 小时前
rustfs加picgo图床搭建
docker
YuMiao6 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
蝎子莱莱爱打怪21 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
小p2 天前
docker学习7:docker 容器的通信方式
docker
小p2 天前
docker学习5:提升Dockerfile水平的5个技巧
docker