Splunk
资源下载
Splunk 控制台插件下载
splunk-app-1.0.zip
报警日志样例下载-
安装插件
添加新的日志类型
注意: 如果你安装了的控制台应用,请跳过此步骤。因为安装控制台插件会自动增加 openrasp 日志类型
找到 $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 字符
安装控制台应用
打开 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 Inputs,然后选择 Local inputs -> Files & directories,然后选择 New,进入本地日志导入界面。在这里输入你下载的 alarm.log 的路径,比如 /tmp/alarm.log,点击 Next
日志类型选择 openrasp,点击 Review,然后点击 Submit 提交即可。
最后回到 RASP 应用,就可以看到结果了。由于我们的日志时间戳是当天的,所以不用调整时间范围就可以看到日志。
删除测试数据
在 Splunk 界面里,在右上角点击 Settings -> Access Controls,然后选择 Users -> admin,进入权限编辑界面
点击增加 can_delete 权限,翻到最下面点击 Save 保存。
然后回到 Search & Reporting 应用,输入 * | delete
语句以删除索引数据。
删除后,可尝试重新检索,以确认数据已经全部删除
线上数据
如果你打算在线上部署,你需要使用 Syslog TCP
方式采集报警数据。配置分为两个步骤
首先,我们来添加 Syslog TCP/514 端口
日志来源。
和导入本地日志类似,点击右上角的 Settings -> DATA -> Data Inputs,然后选择 TCP 类型,并点击 NEW 进入配置界面。在这里,我们输入监听端口,即 514。
选择日志类型时,依然是 openrasp。接着点击 Review,然后点击 Submit 保存即可。
当服务器收到日志,就可以在界面上查看了
配置 OpenRASP agent
默认情况下,OpenRASP 会输出报警信息到日志中,具体内容和文件路径,请参考 日志说明。对于不同的语言,你需要参考不同的配置文档进行配置
- Java 版本日志配置
已知问题
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"}'
- Splunk 有日志,但是 OpenRASP app 看不到数据
- 使用默认的搜索应用,看是否能搜到数据?
- 检查搜索时间范围是否正确?