在Manange>External Databases下点击NEW进入到"ADD new database"面板,选择MYSQL数据库,将数据库地址,服务端口(3306),数据库名称,用户名和密码!
Splunk DB Connect安装与其他SplunkApp有点不同,它需要java环境才可以跑起来,对于MSSQL,HyperSQL可以直接连接,但对于MYSQL和Oracle
JDBC则需要下载相应的drivers,下载地址:
MYSQL:
http://dev.mysql.com/downloads/connector/j/
The archive contains the JDBC driver: mysql-connector-java-*-bin.jar
Oracle JDBC:
ojdbc6.jar from http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html
需要将下载的jar文件放在 $SPLUNK_HOME/etc/apps/dbx/bin/lib 目录下.
在Splunk
DB Connect configuration里设置本机的JAVA环境:
环境设置完成后既可添加数据库,本实例以MYSQL数据库为例.在Manange>External Databases下点击NEW进入到"ADD new database"面板,选择MYSQL数据库,将数据库地址,服务端口(3306),数据库名称,用户名和密码:
DB
info功能是可以查看以连接的数据库中各个表的结构信息,使用方法也是极其简单,找到选择的表,点击一下就可以看到此表的各种详细信息,包括各个字段,类型,长度等等,具体信息如下图:
而DB query也正如其字面意思,就是运行一句sql语句:
以上都是一些小功能,而其导入database中的各个表的数据才是核心功能.首先提供了两种方式来export
data,dump方式和tail方式,两种方式都可以以选择整张表或运行sql语句的方式来export.
dump方式即为一次性的将表的内容全部export出来,然后索引到splunk中.如下图.
tail方式类似于linux的tail -f命令,即为对特定表内的数据进行追加索引,这样可以时时同步splunk与database内的数据.导入方法与dump方式类似,只是在指定sql语句时,对于where的条件要确定
database内的数据在索引后,字段的名字也会自动按sql语句或是表的字段名提取出来,非常的方便
以下是一些个人的使用心得:
1.对于数据库内存储的时间戳,最好使用FROM_UNIXTIME换成日期格式这样对于一次性dump的数据可以按时间排列,暂时未找到数据在export时使用一个字段的时间作为_time.
2.我在export中,发现对于表内记录一些使用整数来记录stats字段时对于非bool型字段,针对0和1,在export到splunk时该字段全部都被认作了false/true,解决办法为使用cast函数把该数值转换成字符型,例如cast(
`statsitem` AS char ) AS statsitem.
3.Splunk
DB Connect是可以lookup字段的,不过我比较爱偷懒,在sql语句内用了两个inner
join来直接lookup字段,虽然流程,数据正确性都没问题,但悲剧的是,由于这两个inner join
对于一个70w数据的表的tail导入,不到6个小时就成功的将database拖垮掉-_-!.所以老老实实去用lookup吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)