Splunk
本文介绍如何通过 Syslog TCP 方式,将日志采集到 Splunk 平台。
添加日志类型
在开始之前,我们需要先添加 openrasp 日志类型,否则 Splunk 无法组装超过1KB
的日志。
方法1 - 手动添加
创建或者编辑 $SPLUNK_HOME/etc/system/local/props.conf,添加如下内容,并重启 Splunk 服务器以生效:
[openrasp]
BREAK_ONLY_BEFORE = \d\d?:\d\d:\d\d
SEDCMD-StripHeader = s/^[^{]+//
KV_MODE = json
pulldown_type = true
# Change the default maximum line length (in bytes)
TRUNCATE = 320000
上述配置添加了一个名为 openrasp
的日志类型,格式为 JSON,单行最大长度 320000 字符,足够使用了。
方法2 - 安装插件
首先在这里下载控制台插件,安装此插件会自动创建 openrasp
日志类型:
然后在 Splunk 首页左上角,点击 App -> Manage Apps -> Install app from file,点击浏览文件,选中刚才下载的插件,然后勾选 Upgrade app. Checking this will overwrite the app if it already exists 选项,点击上传:
安装成功后,会在首页看到 RASP 应用,
应用界面如图
配置 Splunk 端口监听
在 Splunk 首页,点击右上角的 Settings -> DATA -> Data Inputs,然后选择 TCP 类型,并点击 NEW 进入配置界面。在这里,我们输入监听端口,即 514。
选择日志类型时,依然是 openrasp。接着点击 Review,然后点击 Submit 保存即可。
当服务器收到日志,就可以在界面上查看了
其他端口也是可以的,但协议只能是 TCP 类型。
配置 OpenRASP
如果是单机版,请根据 其他配置 - syslog 日志 的说明,配置至少如下两项:
- syslog.enable=true
- syslog.url=tcp://X.X.X.X:514
修改后应用重启服务器生效。
如果开启了管理后台,定位到 系统设置 -> 报警设置 -> Syslog 报警设置,在界面上配置即可。
开启邮件报警
首先点击右上角 设置 -> 系统 -> 服务器设置 -> 电子邮件设置,输入邮件服务器和账号信息,
设置好上面邮箱信息后,可定期搜索报警,并通过邮件方式通知。
打开 Splunk -> 搜索 -> 设置搜索语句 -> 另存为 -> 告警
已知问题
1. Syslog UDP 方式日志截断问题
如果你使用 Syslog UDP
方式采集日志,那么单条日志长度将被限制为 1KB
。由于我们的报警日志通常在 2~3 KB
,所以会导致报警日志截断
2. 界面上看不到日志
请按照如下步骤进行排查
- OpenRASP 是否产生报警日志?
- 检查
<app_home>/rasp/logs/alarm.log
是否有报警?
- 检查
- OpenRASP 是否将日志发给 Syslog 服务器?
- 使用 wireshark/tcpdump 抓包分析
- Splunk 是否能收到数据?
- 在应用服务器上,检查 Splunk 端口是否可连接?
- 使用 linux logger 命令,模拟发送一条日志到 splunk,splunk 是否能收到?
- e.g
logger -n X.X.X.X -T -P 514 '{"hello":"world123"}'
- e.g
- Splunk 有日志,但是 OpenRASP app 看不到数据
- 使用默认的搜索应用,看是否能搜到数据?
- 检查搜索时间范围是否正确?