利用Splunk收集HBase集群日志
什么是splunk
Splunk是日志界的google。支持任何服务器产生的日志,其对日志进行处理的方式是进行高效索引之后让管理员可以对日志中出现的各种情况进行搜索,并且通过非常好的图形化的方式展现出来。让管理员彻底从繁琐的ssh,grep中解放出来。
我们可以通过配置splunk,收集cluster内的HBase/Hadoop以及一切由log4j生成的日志。
1. 安装splunk
可以在其中一台机器上安装splunk,安装方法可以参考:http://www.splunk.com/base/Documentation/latest/Installation/InstallonLinux
2. 为splunk添加数据源
Splunk的webconsole是: http://{install_machine_ip}:8000
以admin和默认的changeme密码登录后,可以看到这样的界面
现在,我们为splunk加入一个udp的数据源
"Add Data" à "UDP" à 新增资料
这里,我们添加了一个UDP数据源,类别为log4j,端口为1688
3. 修改log4j配置,将日志导入到splunk中。
修改HBase中conf的log4j配置,增加一个指向splunk server服务器的appender。
# syslog
#
log4j.rootLogger=INFO,logfile,SYSLOG
……
# Define the root logger to the system property "hbase.root.logger".log4j.rootLogger=${hbase.root.logger},SYSLOG
.......
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.facility=local1
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%p %c{2}: %m%n
log4j.appender.SYSLOG.SyslogHost=10.64.66.211:1688
log4j.appender.SYSLOG.threshold=DEBUG
log4j.appender.SYSLOG.Header=true
log4j.appender.SYSLOG.FacilityPrinting=true
这个例子中,我们的syslog Host是10.64.66.211,将其改为实际的splunk server IP地址就可以了。
这样子,日志将导入到splunk,之后,我们就可以方便的对其查询了。