从sponsor那里收到了一个很奇怪的需求,客户需要用splunk的fowarder将日志同时输出到syslog服务器中,而且不能用别的forwarder,所以我提出的用Fluentd就被否定了。领导命令大于天,虽然syslog没用过,但是也只能硬着头皮上了。

在slack channel里面问了下,大神们纷纷表示没做过,但是splunk的文档指出heavy forwarder可能可以同时将日志发给第三方的日志服务器比如syslog server。理论上来说分两步:

将universal splunk fowarder变为heavy forwarder,并重启服务,文档在此

在SplunkForwarder的outputs.conf添加对应的配置文件,文档在此

接下来就是得去验证这些配置是否正确,简单来讲就是启动一个splunk服务器和一个syslog服务器,然后把把任意的splunk收集的日志转发给syslog服务器。

OK,首先找了两个合适的docker image,写在一个docker-compose文件中,减少配置修改的成本,同时方便通信。

version: '2'

services:

splunk:

image: dmaxwell/splunk

container_name: splunk

ports:

- "8000:8000"

- "9997:9997"

- "8088:8088"

- "1514:1514"

links:

- syslog:syslog

syslog:

image: voxxit/rsyslog

用docker-compose up -d启动,访问localhost:8000可以先更改下admin的密码。其次attach到splunk的container上面,做下面的操作:

1: 测试能否以tcp的方式连接到syslog服务器, looks good.

docker-compose exec splunk bash

root@003b513bb0f7:/# telnet syslog 514

Trying 172.26.0.2...

Connected to syslog.

Escape character is '^]'.

2 : 将universal splunkfowarder变成heavy splunkfowarder:

/opt/splunk/bin/splunk enable app SplunkForwarder -auth admin:password

#重启splunk服务

/opt/splunk/bin/splunk restart

3: 在splunkforwarder配置文件opt/splunk/etc/apps/SplunkForwarder/default/outputs.conf中添加下面的内容:

[syslog]

defaultGroup=syslogGroup

[syslog:syslogGroup]

server = syslog:514

因为是spike,所以没有过滤日志内容。很怂的又重启了一次 -_-!

4: 登陆到syslog服务器上,看不太懂/etc/rsyslog.conf内容,不过tail了下/var/log/messages,哇塞竟然看到来自splunk的日志了。

所以从splunkforwarder发送日志到syslog服务器是没有问题的,文档诚不欺我。但是怎么把它保存到不同的,我不禁陷入了沉思, hmm......。

显然沉思没有文档有用-_-! 在这里发现似乎可以通过过滤消息内容来将日志保存在其它文件中。

比如像这样把下面的配置加到/etc/rsyslog.conf中,目的是将包含splunk字符串的日志都过滤到另外一个文件中。

:msg, contains, "splunk" action(type="omfile" file="/var/log/splunk.log")

反复测试后,又成功了……,yeah!

但是这种粗暴的方式很容易把无关的日志也保存到一起,如果可以通过某种方式可以鉴别日志的来源或者格式来过滤会不会更好些?从日志format上来区分的方式尝试没有成功,但是通过给远程主机来定制一个模板方式成功了。比如像下面这样在/etc/rsyslog.d/加一个splunk.conf文件,内容如下:

## preserve sending host fqdn

$PreserveFQDN on

#

# Receive outside syslog

$template RemoteHost, "/var/log/%HOSTNAME%/1.log"

$RuleSet remote

*.* ?RemoteHost

#Listeners

$InputTCPServerBindRuleset remote

$InputTCPServerRun 5144

这里我让syslog监听另外一个端口,对应的也需要在splunk的outputs.conf中添加新的syslog server配置。各种重启之后成功的看到了不断更新的/var/log/splunk.splunk_default/1.log日志文件。

基本上一个初步的解决方案应该已经形成了,简单的阅读了rsyslog文档,了解下配置,差不多就是这样了,毕竟好像有s/1hours/3hours/g没有给老婆打电话了,docker-compose down,然后瑟瑟发抖的拿起了电话……。

syslog中转服务器,从splunkforwarder转发日志到syslog服务器相关推荐

  1. 服务器维护需要log日志,什么是服务器日志?服务器日志要怎么看?

    什么是服务器日志 虽然现在很多站长懂得做搜索排名知识,但是懂得SEO,并不代表就懂得服务器日志了,那么服务器日志是什么呢?其实,服务器日志(server log)是一个或多个由服务器自动创建和维护的日 ...

  2. 服务器cpu温度高日志记录位置,服务器CPU温度高

    服务器CPU温度高 内容精选 换一换 实例即云耀云服务器,是由CPU.内存.操作系统.云硬盘组成的基础的计算组件.云耀云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用云耀云 ...

  3. Squid access.log 转发到其他syslog服务器(OSSIM)

    1.修改/etc/squid/squid.conf 类似下列信息: access_log /var/log/squid/access.log squid access_log syslog:local ...

  4. 搭建syslog服务器+log4j2输出日志到syslog

    文章目录 前言 搭建syslog服务器 修改rsyslog配置 自定义配置 测试验证 Log4j2依赖 Log4j2配置 测试接口 验证 日志转发 参考资料 前言 本文将介绍如何搭建syslog服务器 ...

  5. golang日志服务器_golang 写日志到syslog

    应用程序可以通过 UNIX domain sockets, UDP or TCP,向syslog守护进程发送日志.syslog守护进程可以在远端. 这样,就可以不用单独收集应用程序的日志了. gola ...

  6. 配置Linux发送日志到syslog服务器

    配置Linux发送日志到syslog服务器 Linux Linux 设定的步骤如下: 1. root登录Linux.  2. 编辑启动 UDP 模块,移去下面两行的注释 # vi /etc/rsysl ...

  7. syslog传到服务器日志文件,将supervisor产生的日志通过syslog上传到服务端

    Ubuntu rsyslog的配置 服务端: 修改/etc/rsyslog.conf,将UDP或者TCP发送的注释取消. 修改/etc/default/rsyslog,将RSYSLOGD_OPTION ...

  8. aix修改日志服务器,配置aix将audit日志发送syslog服务器

    一.配置audit的config文件 以root用户编辑/etc/security/audit/config文件 vi /etc/security/audit/config start: binmod ...

  9. 将Windows日志转换为Syslog

    无论是Unix.Linux.FreeBSD.Ubuntu,还是路由器.交换机,都会产生大量的日志,而这些,一般会以syslog的形式存在.在RFC 3164中定义了syslog是一种日志协议,sysl ...

最新文章

  1. Java 数据持久化系列之池化技术
  2. 一些关于反汇编与逆向方面的博文分享
  3. 使用 Boost.MPI 的 all_reduce() 计算最小值的示例
  4. SAP Data Intelligence API执行出错的排错之道
  5. 利用shell脚本监控网站状态
  6. [cocos2d-x]HelloWorldDemo
  7. 496. 下一个更大元素 I/503. 下一个更大元素 II/739. 每日温度
  8. 三个快速便捷的命令行小贴士
  9. 配置Outlook连接Exchange
  10. 一道SQL题考你数据库的使用能力
  11. JAVA程序员--壁纸
  12. 电脑基础知识入门:键盘上的英文,意思和功能汇总!
  13. 数据库在一对一、一对多、多对多怎么设计表关系
  14. Eigen学习总结1
  15. 安防摄像头有这么多种类,如何正确选择?
  16. 机器学习神器Scikit-Learn保姆级入门教程
  17. ceph web监控管理平台calamari
  18. 公司给你调岗降薪,逼你主动辞职如何应对?
  19. 解决Android Studio配置JPush极光推送错误方案
  20. dede taglist模板中调用自定义字段

热门文章

  1. 关于多媒体计算机的手抄报,有关科技的手抄报图片大全
  2. B、dB、dBm、dBi、dBd、dBc 的理解和区别
  3. 微信小程序坐标位置接口使用整理(二)地图接口
  4. React Diff算法详解
  5. vue使用screenfull插件,Esc退出,F11切换,图标切换问题;
  6. 网易极客战记-KITHGARD地牢--真正的挑战 (需解锁)
  7. 给宝宝泡药浴有哪些注意事项?
  8. oracle数据库ORA-00918: 未明确定义列
  9. Mysql安装后配置修改
  10. 当“借钱鸡娃”遇上“躺平”一族,谁还关心在线教育死活?