本节书摘来自华章计算机《Splunk智能运维实战》一书中的第1章,第1.3节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默克(Derek Mock),译 宫鑫,康宁,刘法宗 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 从网络端口获取数据
不是每台机器都能生成日志文件。通过网络端口和协议传送数据也很常见。例如通过系统日志来发送日志仍是获取网络设备(防火墙、路由器和交换机)数据的主要手段。
不仅网络设备可以通过网络端口向Splunk发送数据。应用程序和脚本可以使用套接字(socket)连接到Splunk所监听的网络端口。这是很有用的备选工具,因为有时候我们想向Splunk导入数据,但没法对文件进行写入操作。
本节将展示如何配置Splunk来接收UDP网络端口上的系统日志数据,该方法同时也适用于TCP端口配置。
做好准备
在本节开始前,我们仅需运行Splunk Enterprise服务器。
如何操作
按下列步骤配置Splunk,使其接收网络UDP数据。
- 登录Splunk服务器。
- 从右上角的主启动器,单击“添加数据”。
-
在“或者选择一个数据源”列表中,单击“来自一个UDP端口”链接。
- 出现源界面,在“UDP port”字段中输入514。在UNIX/Linux系统中,Splunk必须以root身份运行来访问特权端口514。另一种方法是指定更高的端口,如1514端口,或将数据从514端口传送至另一个使用iptables路由规则的端口。
- 进入“源类型”界面,在“设定源类型”下拉菜单中选择“来自列表”,然后在“从列表中选择源类型”下拉菜单中选择“系统日志”。
- 点击“保存”。在下一个界面中,点击“开始搜索”。Splunk现在已经配置好,可以监听UDP端口514了。现在任何发送至该端口的数据都会被指定系统日志源类型。如需搜索系统日志源类型,可执行如下命令:
除非碰巧正在向Splunk服务器IP发送UPD端口514上的数据,否则还无法看到任何数据。
工作原理
当添加新的网络端口输入时,也就是在后台向inputs.conf文件添加新的配置节。Splunk服务器可包含一个或多个inputs.conf文件,它们位于$SPLUNK_HOME/etc/system/ local,或Splunk 应用程序的local目录。
要收集网络端口上的数据,Splunk会创建套接字来监听特定TCP或UDP端口,并索引从该端口接收的任何数据。比如在本节,设置Splunk监听UDP 514端口的数据。如果该端口上接收到数据,Splunk会索引数据并分配系统日志源类型给它。
Splunk也提供了许多用于网络输入的配置选项,例如如何解析主机值以用于所收集的数据。
若想获取Splunk配置文件的更多信息,请访问 http://docs.splunk.com/Documentation/Splunk/latest/Admin/ Aboutconfigurationfiles。
更多内容
如本节所述,可以通过Splunk的Web界面添加输入来从网络端口接收数据,此外还有其他方法来快速地添加多种输入,这些输入可以让我们自定义Splunk提供的许多配置选项。
通过CLI添加网络输入
也可通过Splunk CLI添加文件或目录输入。找到$SPLUNK_HOME/bin目录并执行下列命令(只需替换想使用的协议、端口和源类型):
UNIX系统:
Windows系统:
许多参数可随端口传递。参考Splunk技术文档来了解更多CLI数据输入的用法 (http://docs.splunk.com/Documentation/Splunk/latest/Data/ MonitorfilesanddirectoriesusingtheCLI)。
通过inputs.conf添加网络输入
可手动添加网络输入至inputs.conf配置文件。编辑$SPLUNK_HOME/etc/system/local/inputs.conf并添加输入。修改文件后需重启Splunk。
最佳实践是在网络设备和索引器之间设置转发器,而不是直接发送系统日志数据到索引器。可设置Splunk转发器来接收系统日志数据(inputs.conf),同时它将均衡Splunk索引器(outputs.conf)之间的数据负载。转发器也可通过配置缓存系统日志数据,防止传输到索引器的通信丢失。
另参见