Mirth Connect与Splunk集成方案:如何将Mirth日志推送到Splunk仪表盘
Mirth 日志推送至 Splunk 落地方案
方案1:原生HTTP Sender直接推送(直连方案)
这是最接近直接集成的实现方式,无需额外第三方组件:
- 新建专用的日志投递通道,触发条件设置为仅匹配ERROR级别日志,可根据需求扩展覆盖WARN、INFO等其他级别
- 通道源可选择对接Mirth日志事件监听器,或者在全局脚本、通道的预处理/后处理脚本中新增错误捕获逻辑,触发日志投递
- 目标连接器选择「HTTP Sender」,请求方式设为POST,地址填Splunk HEC(HTTP Event Collector)接口地址,请求头配置
Authorization: Splunk <你的HEC Token>,请求体按照Splunk标准结构拼接,示例如下:
{ "event": "这里填错误日志完整内容", "host": "mirth生产节点1", "source": "mirth-channel-订单同步通道", "sourcetype": "mirth:error", "time": 1699999999 }
- 需额外配置投递失败重试策略,临时网络波动时可将失败日志暂存到本地目录,后续补推避免丢失。
方案2:本地日志文件采集(生产环境最稳定方案)
无侵入式的间接实现方案,适配性最高:
- Mirth默认将全量日志写入本地文件,路径一般为
<Mirth安装目录>/logs/mirth.log,所有错误日志都有明确的级别标识 - 在Mirth部署节点安装Splunk Universal Forwarder,配置监控路径指向mirth.log,同时配置日志解析规则,自动提取日志级别、生成时间、所属通道、错误堆栈等结构化字段
- Forwarder会自动将匹配到的错误日志增量同步到Splunk索引节点,配置得当的情况下日志丢失率为0,且完全不占用Mirth本身的运行资源,故障排查成本极低。
方案3:Syslog协议中转
适合已存在Syslog日志收集体系的场景:
- 在Mirth全局配置中开启日志输出到Syslog服务器,也可以单独配置仅错误日志触发Syslog发送
- Splunk端开启Syslog接收端口,直接接收Mirth发送的Syslog格式日志,也可以先通过rsyslog/syslog-ng做一层聚合过滤后再推送到Splunk,复用现有架构即可快速落地。
方案4:消息队列削峰(高并发场景适配方案)
针对Mirth日请求量百万级以上、错误日志突发频率高的场景:
- 先将Mirth捕获的错误日志推送到Kafka/RabbitMQ等消息队列做缓存削峰
- 再通过Splunk专用消费连接器或者自定义脚本从队列中消费日志推到Splunk,避免日志峰值时压垮Splunk HEC接口,也避免投递失败导致日志丢失。
内容的提问来源于stack exchange,提问作者Krishna Agarwal
相关产品推荐
相关产品推荐

