image
什么是Splunk?
      Splunk是一个功能强大的日志管理工具,它不仅可以用多种方式来添加日志,生产图形化报表,最厉害的是它的搜索功能 - 被称为“Google for IT”。Splunk有免费和收费版,最主要的差别在于每天的索引容量大小(索引是搜索功能的基础),免费版每天最大为500M。在使用免费版时,如果在30天之内,有7天的索引数据量超过500M,那么就不可以在搜索了(真是可惜啊!)。根据你的需要,你可以选择购买每天的索引容量大小。

如何安装Splunk?
      Splunk支持多种操作系统,但如果要通过WMI的方式来搜集Windows的日志的话,那么Splunk必须装在Windows操作系统上。我这里用的是Windows 2003 Standard服务器,具体的安装步骤很简单,根据向导一步步的进行就好。

如何配置Splunk?
      如前面提到过的,Splunk可以通过多种方式来收集日志,主要包括监听syslog消息,访问WMI,监控日志文件,FIFO队列。我这里以几个典型配置为例:
1)通过syslog来收集Cisco网络设备的日志
在Cisco网络设备上的配置命令一般为:
logging <syslog server IP Address>
logging trap <severity>
Splunk默认使用UDP 514端口来监听syslog消息。
如:
logging 172.29.1.1
logging trap warning
2)通过syslog来收集Linux主机的日志
在Linux主机上的配置一般为:
修改/etc/syslog.conf配置,添加以下两行:
# Send syslog to Splunk server
*.<severity>                 @<syslog server IP Address>
如:
# Send syslog to Splunk server
*.debug                @172.29.1.1
3)通过WMI来收集Windows主机的日志
  • 首先要确保运行Splunk服务(在服务管理器中显示为Splunkd)的帐号有权限就去读取远程Windows机器的WMI信息。
  • 然后就是要在Splunk服务器上做一下简单的配置:Splunk的安装路径默认为C:\Program Files\Splunk。在C:\Program Files\Splunk\etc\system\local文件下修改inputs.conf文件,添加以下内容:
      [script://$SPLUNK_HOME\bin\scripts\splunk-wmi.py]
      interval = 10
      source = wmi
      sourcetype = wmi
      disabled = 0
  • 接着在同一目录中新建一个文本文件,命名为wmi.conf,并添加以下内容:
      [WMI:<Name>]       
      server = <Remote Windows Host IP Address>
      interval = 60
      event_log_file = <Event log Type>
      disabled = 0
      比如监控IP地址为172.29.1.30的Windows主机上Application和System的Event Log:
      [WMI:AppAndSys]       
      server = 172.29.1.30
      interval = 60
      event_log_file = Application, System
      disabled = 0
其实还可以通过Syslog来收集Windows的日志,这里可以用一个免费工具-NTSyslog。(Syslog化Windows Event日志一文中有详细说明)

如何使用Splunk?
      Splunk采用B/S模式,默认端口为8000。如访问本文中的Splunk服务器,只需要在浏览器中输入[url]http://172.29.1.1:8000[/url]。免费版的是不需要用户认证便可登录的,30天试用企业版的是需要认证的,登录帐号是:用户为admin,密码为changeme。登录后可以清楚的看到在过去的一小时内出现的日志报错情况。点击任何一个时间点,Splunk会打开相应的详细日志。这对我们监控整个企业IT系统以及分析问题都提供了极大的帮助。
image
      那么Google for IT是怎么体现的呢?Splunk提供一套关键字搜索的规则,利用这套规则可以进行非常精确的搜索。比如我想查看关于用户Jackie Chen和Michael Jordan在过去24小时内的所有相关日志的话,就可以在搜索处输入如下关键字。
image
      Splunk还允许用户保留自己的搜索规则,这样就不用每次搜索同一内容都输入一遍关键字了。利用这一点,我分别为所有的网络设备,Windows主机和Linux主机建立的相应的搜索,并保存在一个新建的Dashboard中,这样我每天只要打开这个Dashboard就可以清楚的了解所有设备的日志情况。
image
      Splunk的用途很广泛,我上面提到的只是一点小小的应用。大家可以去[url]www.splunk.com[/url]找到更多的信息。