信息科技的不断进步,一方面使得银行业信息和数据逻辑集中程度不断得到提高,另一方面又成为银行业稳健运行的一大安全隐患。Splunk作为智能的IT管理运维平台,能够帮助银行业积极迎接、应对和解决不断出现的各种风险,为其完善IT体系,建立良好的风险管理,提高风险控制能力,实现网络经济时代银行业的新发展。
什么是Splunk?
Splunk是一个功能强大的日志管理工具,它不仅可以用多种方式来添加日志,生产图形化报表,最厉害的是它的搜索功能 - 被称为“Google for IT”。Splunk有免费和收费版,最主要的差别在于每天的索引容量大小(索引是搜索功能的基础),免费版每天最大为500M。在使用免费版时,如果在30天之内,有7天的索引数据量超过500M,那么就不可以在搜索了(真是可惜啊!)。根据你的需要,你可以选择购买每天的索引容量大小。
面对快速变化的业务和日趋复杂的网络应用环境,不少IT管理者追赶变化的脚步却是举步维艰。原因是多方面的,传统基于关系型数据库的IT管理平台无疑是其中一个重要因素。传统的IT管理平台针对数据管理一般采用定制数据接口标准化输入的形式获取数据,同时内部的数据结构和报表一旦确定,很难根据情况变化进行改变。面对随着新业务涌现的新型IT数据,传统的IT管理平台需要进行耗时漫长的二次开发才能进行有效管理,更谈不上应对瞬息万变的IT管理需求。
Splunk正是在这个技术的困境中应运而生,以灵活、敏捷的数据管理能力为企业带来一场IT管理的创新革命:
跨越平台,应用的数据格式支持
支持对所有以文本形式存在的IT数据进行处理,如标准的syslog和非结构化的事件日志,snmp事件,xml文本,系统和应用配置等,在Splunk可以为不同来源的数据选择最为适合的输入方式。
如右图所示,Splunk通过文件上传,共享目录等方式对文件数据进行索引分析和实时监控;网络设备和应用服务器产生的日志则可以通过TCP/UDP端口侦听的方法进行收集;甚至脚本运行产生的数据也可以作为Splunk的数据来源进行索引和分析。
快捷的数据定义和转换
要对IT数据进行有效管理的前提是,提取数据中有价值的信息进而进行定义,搜索和深入分析。
相对于传统的IT管理平台,Splunk对数据的定义灵活而快速,可以根据实际情况的变化快速地对感兴趣的数据进行定义,整个过程只需在管理界面上清点几下鼠标和花费几分钟的时间。下面以定义日志来源主机为例:Splunk中提供智能提取数据并定义的功能,只需在样本数据中填入需要定义的数据的样本,splunk便可使用正则表达式智能分析数据的结构,相对位置等信息,帮助管理者快速的识别和抽取有用信息进行定义和分析。
当然,如果你是一位熟悉正则表达式管理者,那么你对Splunk灵活和强大的功能会有更深的认识。由于各个网络设备厂商的标准不一,接口的物理特性各异,网络设备接口存在多种表示方式,如何对所有设备的接口进行严格定义而不产生遗漏呢?这是令不少IT管理者头疼的问题。在Splunk中,只需在搜索栏中输入一行短小精悍的正则表达式,所有网络设备日志中包含的网络接口即可一网打尽,绝无漏网之鱼。
所有的数据定义均可以随着情况的变化和管理的需要进行实时的增加、删除和修改,管理者需要做的工作仅是重新使用一遍智能数据定义功能或者对正则表达式进行一点小修改而已。
简单灵活的搜索语言
Splunk一个有趣的别称——”google for IT”,这其中隐含的意思是IT管理者在Splunk中对数据搜索管理可以像使用google搜索引擎一样简单方便。
在搜索栏中简单敲入fail*,选择时间范围,所有与操作失败相关的事件在数秒之内作为结果返回。在搜索结果的基础上,我们可以进行进一步的深入分析,这只需选择左边特定栏位(已定义数据)的数值:这种数据drill-down搜索在问题定位方面的效率上相较传统的IT管理平台有巨大的优势,层进式的问题排查将成为明日黄花,一去不复返。
快速的报表生成和内容丰富的dashboard
Splunk中的搜索结果可以快速转化为报表保存下来,保存的报表可作为技术和管理知识或者实时监控之用。Splunk中保存的搜索语句和报表根据特定类型和需求组织起来形成内容丰富的知识集合,以dashboard的形式进行呈现。
如何安装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系统以及分析问题都提供了极大的帮助。
那么Google for IT是怎么体现的呢?Splunk提供一套关键字搜索的规则,利用这套规则可以进行非常精确的搜索。比如我想查看关于用户Jackie Chen和Michael Jordan在过去24小时内的所有相关日志的话,就可以在搜索处输入如下关键字。
Splunk还允许用户保留自己的搜索规则,这样就不用每次搜索同一内容都输入一遍关键字了。利用这一点,我分别为所有的网络设备,Windows主机和Linux主机建立的相应的搜索,并保存在一个新建的Dashboard中,这样我每天只要打开这个Dashboard就可以清楚的了解所有设备的日志情况。
Splunk的用途很广泛,我上面提到的只是一点小小的应用。大家可以去 [url]www.splunk.com[/url]找到更多的信息。
总之,
Splunk 是一款顶级的日志分析软件
,如果你经常用 grep、awk、sed、sort、uniq、tail、head 来分析日志,那么你需要 Splunk。能处理常规的日志格式,比如 apache、squid、系统日志、mail.log 这些。对所有日志先进行 index,然后可以交叉查询,支持复杂的查询语句。然后通过直观的方式表现出来。日志可以通过文件方式传倒 Splunk 服务器,也可以通过网络实时传输过去。或者是分布式的日志收集。总之支持多种日志收集方法。
开源软件下载地址:http://www.splunk.com/en_us/download-5.html?ac=get_splunk_download
[参考资料]
1、超级日志服务器-Splunk - 面朝大海,春暖花开 - 51CTO技术博客 http://jackiechen.blog.51cto.com/196075/150222/
2、splunk学习 - 冰的城 - 博客频道 - CSDN.NET http://blog.csdn.net/wangqi0079/article/details/8582400
3、Splunk in China | Splunk在中国 http://10data.com/splunk/
4、Splunk首页、文档和下载 - 日志分析软件 - 开源中国社区 http://www.oschina.net/p/splunk
5、splunk_百度百科 http://baike.baidu.com/view/2209060.htm
6、Operational Intelligence, Log Management, Application Management, Enterprise Security and Compliance | Splunk http://www.splunk.com/