JumpServer 对接 Syslog


飞致云 发布于 2025-09-05 / 823 阅读 / 0 评论 /

一、概述

本文章主要介绍 JumpServer 如何对接 Syslog 日志系统,将 JumpServer 的日志输出到 Syslog 服务器中。

二、配置 Syslog 服务器

1、服务器配置

服务器需求:LINUX 操作系统(示例发行版为 CentOS 7)。

服务器规格:2C4G 200G。

其他需求:开启服务器 UDP 的 514 端口或关闭防火墙。

2、修改配置文件

Syslog 的配置文件为 /etc/rsyslog.conf。

修改 Syslog 的配置文件设置日志输入位置以及端口等信息。修改如下:

# 方式一(注意:JumpServer 默认 UDP 方式对接 syslog):
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

# 方式二(注意:方式一如果对接不成功则采用方式二):
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

# 添加如下配置
local2.*         /tmp/messages


修改完成后 Syslog 配置文件如下所示:

方式一:

方式二:

3、重启 Syslog 服务

修改完成后重启 Syslog 服务以加载新的配置文件。

systemctl restart rsyslog


4、测试 Syslog 服务

测试 Syslog 是否可以正常对接 JumpServer 服务器。判断网络是否连通,以及 Syslog 配置是否生效。

查看 Syslog 服务器中是否已经存在输出的日志信息。

# 在 JumpServer 服务器上执行以下命令(注:10.1.12.116 为 Syslog 服务器的 IP):
logger -n 10.1.12.116 -d -P 514 -p local2.info "message: rsyslog logging from JumpServer (UDP)"


方式一测试截图如下:

方式二测试截图如下:

三、配置 JumpServer 侧

1、修改 JumpServer 的配置文件

JumpServer 的配置文件的默认存储位置位于:/opt/jumpserver/config/config.txt

JumpServer 中需要添加的配置项如下所示:

#配置 syslog
SYSLOG_ENABLE=true
SYSLOG_ADDR=10.1.12.116:514  # Syslog 服务器的IP以及端口
SYSLOG_FACILITY=local2  #根据 Syslog 配置文件的配置

2、重启 JumpServer

修改 JumpServer 配置文件后需要重启 JumpServer 以加载配置项。

jmsctl restart

3、验证配置

登录 JumpServer 服务生成一条登录日志,查看 Syslog 服务器中是否有输出。输出的登录日志如下所示:

四、Syslog日志信息解析


日志名称Syslog 输出样例核心字段解释
登录日志Apr 19 15:25:11 10.1.14.125 jumpserver: login_log - {"backend": "Password", "backend_display": "密码", "city": "局域网", "datetime": "2023/04/19 15:18:36 +0800", "id": "cfc378e5-6337-4bf9-a8ac-15f33c2b0314", "ip": "10.1.10.35", "mfa": {"label": "禁用", "value": 0}, "reason": "", "reason_display": "", "status": {"label": "成功", "value": true}, "type": {"label": "Web", "value": "W"}, "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.48", "username": "admin"}

1. username(关键字段):登录用户名,示例中为 "admin",对应系统用户账号

2. ip(关键字段):登录 IP 地址,示例中为 "10.1.10.35",支持 IPv4/IPv6

3. status(关键字段):登录状态,示例中为 "成功",对应布尔值 1(成功)/0(失败)

4. backend(关键字段):认证后端,示例中为 "Password",支持 local/LDAP/RADIUS 等类型

5. datetime(关键字段):登录时间,格式为 "yyyy/mm/dd hh:mm:ss + 时区"

6. type(关键字段):登录类型,示例中为 "Web",对应 ST/R/A/B/W 等类型编码

上传文件日志Apr 19 15:27:26 10.1.14.125 jumpserver: ftp_log - {"account": "root(root)", "asset": "10.1.12.182-root(10.1.12.182)", "date_start": "2023/04/19 15:20:51 +0800", "filename": "/tmp/vmware-root/上传示例.pdf", "id": "6e7721c0-2091-49fb-8853-fc18e0a2e432", "is_success": true, "operate": {"label": "上传文件", "value": "upload"}, "org_id": "00000000-0000-0000-0000-000000000002", "remote_addr": "10.1.10.35", "user": "Administrator(admin)"}

1. user(关键字段):操作用户,示例中为 "Administrator (admin)",即 JumpServer 系统用户

2. asset(关键字段):资产信息,示例中为 "10.1.12.182-root",标识操作的目标资产

3. account(关键字段):登录资产的账号,示例中为 "root(root)"

4. operate(关键字段):操作类型,示例中为 "upload"(上传),支持 upload/download 等

5. filename(关键字段):文件路径及名称,示例中为 "/tmp/vmware-root/ 上传示例.pdf"

6. date_start(关键字段):操作开始时间,数据库自动记录7. remote_addr:客户端 IP 地址,示例中为 "10.1.10.35"

下载文件日志Apr 19 15:28:08 10.1.14.125 jumpserver: ftp_log - {"account": "root(root)", "asset": "10.1.12.182-root(10.1.12.182)", "date_start": "2023/04/19 15:21:33 +0800", "filename": "/tmp/vmware-root/下载示例.pdf", "id": "113c0601-80c1-47d1-a053-5038fd89698c", "is_success": true, "operate": {"label": "下载文件", "value": "download"}, "org_id": "00000000-0000-0000-0000-000000000002", "remote_addr": "10.1.10.35", "user": "Administrator(admin)"}

1. operate(关键字段):操作类型,示例中为 "download"(下载),是文件传输的核心标识

2. filename(关键字段):下载文件的完整路径,示例中为 "/tmp/vmware-root/ 下载示例.pdf"

3. asset(关键字段):目标资产标识,关联操作的服务器信息

4. account(关键字段):访问资产的账号,示例中为 "root(root)"

5. user(关键字段):发起下载操作的 JumpServer 用户

6. date_start(关键字段):下载开始时间戳

操作日志Apr 19 15:28:44 10.1.14.125 jumpserver: operation_log - {"action": {"label": "Update", "value": "update"}, "datetime": "2023/04/19 15:22:09 +0800", "id": "f844f014-2ac5-459d-abd0-ec8f853fa09c", "org_id": "00000000-0000-0000-0000-000000000004", "org_name": "SYSTEM", "remote_addr": "10.1.10.35", "resource": "[基本] 全局组织名", "resource_type": "System setting", "user": "Administrator(admin)"}

1. user(关键字段):操作用户,示例中为 "Administrator (admin)"

2. action(关键字段):操作类型,示例中为 "update"(更新),支持 create/delete 等

3. resource_type(关键字段):资源类型,示例中为 "System setting"(系统设置)

4. resource(关键字段):被操作资源名称,示例中为 "全局组织名"

5. datetime(关键字段):操作执行时间

6. remote_addr:操作发起的客户端 IP

改密日志Apr 19 15:29:58 10.1.14.125 jumpserver: password_change_log - {"change_by": "Administrator(admin)", "datetime": "2023/04/19 15:23:23 +0800", "id": "0cd278ed-8335-49d5-a0c3-0211e9858441", "remote_addr": "10.1.10.35", "user": "MFA全局(MFA)"}

1. user(关键字段):密码所属用户,示例中为 "MFA 全局 (MFA)",即被修改密码的用户

2. change_by(关键字段):修改者,示例中为 "Administrator (admin)",执行改密操作的用户

3. datetime(关键字段):密码修改时间

4. remote_addr:改密操作的客户端 IP 地址

会话日志

Apr 19 15:31:29 10.1.14.125 jumpserver: host_session_log - {"account": "root(root)", "account_id": "49536b5e-bf06-4d16-bacd-7d628de3a3f2", "asset": "10.1.12.182-root(10.1.12.182)", "asset_id": "dfba9962-7988-4d29-9b04-6f82dd8e02c3", "can_join": true, "can_replay": false, "can_terminate": true, "comment": null, "date_end": null, "date_start": "2023/04/19 15:24:54 +0800", "has_command": false, "has_replay": false, "id": "4896b882-299a-4759-804e-32250f5b05b7", "is_finished": false, "is_success": true, "login_from": {"label": "Web Terminal", "value": "WT"}, "org_id": "00000000-0000-0000-0000-000000000002", "org_name": "Default", "protocol": "ssh", "remote_addr": "10.1.10.35", "terminal": {"id": "7076d4aa-4050-4a2f-855b-2af7a7bd6674", "name": "[KoKo]-jumpserver-v3-86c4b2fc7167"}, "type": {"label": "正常", "value": "normal"}, "user": "Administrator(admin)", "user_id": "cdeb8352-9f45-46d9-8873-b3c7c53022fd"}

1. user(关键字段):会话发起用户,示例中为 "Administrator (admin)"

2. asset(关键字段):目标资产,示例中为 "10.1.12.182-root"

3. account(关键字段):资产登录账号,示例中为 "root(root)"

4. protocol(关键字段):会话协议,示例中为 "ssh",支持 rdp/vnc 等

5. is_success(关键字段):连接状态,示例中为 true(成功)

6. is_finished(关键字段):会话状态,示例中为 false(未结束)

7. date_start(关键字段):会话开始时间

8. login_from(关键字段):登录来源,示例中为 "Web Terminal"(Web 终端)

9. has_replay(关键字段):是否有会话录像,示例中为 false

10. has_command(关键字段):是否有命令记录,示例中为 false

命令日志Apr 19 15:34:00 10.1.14.125 jumpserver: session_command_log - {"account": "root(root)", "asset": "10.1.12.182-root(10.1.12.182)", "id": "28400256-e9e2-4454-8127-4880fe5b9684", "input": "free -h", "org_id": "00000000-0000-0000-0000-000000000002", "output": "free -h\r\n              total        used        free      shared  buff/cache   available\r\nMem:           7.6G        4.3G        136M         28M        3.2G        3.0G", "remote_addr": "10.1.10.35", "risk_level": {"label": "普通", "value": 0}, "session": "4896b882-299a-4759-804e-32250f5b05b7", "timestamp": 1681889159, "timestamp_display": "2023/04/19 15:25:59 +0800", "user": "Administrator(admin)"}

1. user(关键字段):命令执行用户,示例中为 "Administrator (admin)"

2. input(关键字段):用户输入命令,示例中为 "free -h"(查看内存使用)

3. output(关键字段):命令执行结果,示例中为内存使用统计信息

4. asset(关键字段):执行命令的目标资产

5. account(关键字段):资产登录账号

6. timestamp_display(关键字段):命令执行时间,格式为 "yyyy/mm/dd hh:mm:ss + 时区"

7. remote_addr:执行命令的客户端 IP 地址




是否对你有帮助?