Splunk安装、配置 && web检索、对外提供api

一、背景

本周bobo项目例会,我们有涉及根据查询以往日志获取绑定状态的需求。项目组讨论说可以研究一下splunk,看是否可以利用到项目中。我原来也没有接触过,表示可以研究下。
用时:大概1天

二、整体流程
  • 建一个服务端,用来接收各个机器的日志。服务端有web页面,可以检索。服务端也可以对外提供api接口,供第三方应用去获取信息。
  • 每个日志服务器上建一个客户端(通用转发器),用来收集日志给服务端。
三、安装

下载地址:官网 https://www.splunk.com/

  • 服务端
    splunk-7.1.2-a0c72a66db66-linux-2.6-x86_64.rpm
rpm -ivh --prefix=/data/test/  splunk-7.1.2-a0c72a66db66-linux-2.6-x86_64.rpm
cd  /data/test/splunk/bin
./splunk start --accept-license 
输入想设置的密码再次确认即可

查看和修改端口的命令分别如下:

./splunk show splunkd-port
./splunk set splunkd-port 80**

web访问:http://127.0.0.1:8000 admin/设置的密码

  • 客户端(通用转发器)
    splunkforwarder-7.1.2-a0c72a66db66-linux-2.6-x86_64.rpm
rpm -ivh  splunk-7.1.2-a0c72a66db66-linux-2.6-x86_64.rpm
cd  /opt/splunkforwarder/bin
./splunk start --accept-license 
输入想设置的密码再次确认即可

注意:如果splunk 服务和通用转发器安装在同一台服务器,通用转发器的管理端口也是8090,会有冲突,有冲突的时候会提示,选择yes,修改端口即可。

四、配置
  • 服务端配置 转发和接收
    登录web页面-设置-转发和接收-配置接收,点击 +新增,可以就用建议的 9997 作为接收数据的端口。

  • 客户端配置服务和监听文件
    设置客户端的输出(发送的服务器和端口):./splunk add forward-server server_ip:9997
    查看你的输出设置:./splunk list forward-server
    注册客户端到服务器:./splunk set deploy-poll server_ip:8089
    监控日志的目录或者文件:
    ./splunk add monitor /opt/product/data/bblive/logs/schedule.log

以上客户端的输入和输出配置也可以通过修改他的配置文件来生效。
监控哪些目录可以修改:$SPLUNK_HOME/etc/system/local/input.conf
格式如下:
host = 本机的hostname
[monitor://日志地址(这里可以使用正则来过滤数据)]
index=indexName
sourcetype=sourceName
[monitor://另一个]
index=indexName
sourcetype=sourceName
[monitor:///xxx/xxx/log/xxx/xxx.log]
index=xxxxxxxx
sourcetype=xxxxxx

转发数据到哪可以修改:$SPLUNK_HOME/etc/system/local/output.conf

[root@local]# cat outputs.conf 
[tcpout]
defaultGroup = default-autolb-group

[tcpout:default-autolb-group]
server = 192.168.***.**:9997

[tcpout-server://192.168.***.***:9997]

配置修改需要重启客户端。配置好后web的搜索界面看到索引的目录里面的日志文件了。

五、web页面搜索
根据SN号检索.png

到目前为止,如果作为运维人员平时搜索日志,其实已经满足了。到这一步已经和 FileBeat +Logstash +Elasticsearch+Kibana 功能一样了,但是我感觉 spunk更便捷。其实,splunk的检索应该是很强大的,也可以自己定义规则对日志做统计,生成报表和仪表盘,我研究的还不深入,后面可以继续探索。

六、对外提供API接口

研发的需求是希望splunk可以对外提供接口,供我们的内部应用调用访问。研究下来,目前可以搜索接口:

例如:现网的日志格式为:
日志格式.png

主要思路:利用SN号查询到request 的 taskseq 号,再利用taskseq 查到 response里面的 在线状态 online。
Splunk的搜索接口(测试地址):

https://192.168.***.****:8089/services/search/jobs

以下是命令行方式调用接口:
curl -k -u admin:passwd https://192.168.220.***:8089/services/search/jobs -d search="search source=\"/opt/product/shtel_iptv_bobo_touping/logs/message.log\" 000600191******4780AD queryStatus | head 5"
以上命令获取到 message.log 日志中,SN号是 000600191******4780AD 且查询类型是 queryStatus 的前5条数据。
返回:

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <sid>1535002930.69</sid>
</response>

拿到返回的 sid号,再执行:
curl -k -u admin:passwd https://192.168.***.***:8089/services/search/jobs/1535002930.69/results/ --get -d output_mode=csv

或者放到 json里面:
curl -k -u admin:passwd https://192.168.***.***:8089/services/search/jobs/1535002930.69/results/ --get -d output_mode=json 2>/dev/null >out.json

得到 taskseq 为 1844674407<再次拿着得到 1844674407 去查
curl -k -u admin:passwd https://192.168.***.***:8089/services/search/jobs -d search="search source=\"/opt/product/shtel_iptv_bobo_touping/logs/message.log\" 1844674407 | head 5"

得到 <sid> 为1535003009.70
再执行:
curl -k -u admin:passwd https://192.168.***.***:8089/services/search/jobs/1535003009.70/results/ --get -d output_mode=csv

就可以得到 在线状态了 online=true

现在对api的调用只是基于最基本的搜索功能,没有利用到splunk的统计功能,应该可以自己定义规则、字段、让splunk对日志信息做统计再输出给外部应用。目前的api搜索功能满足项目需求,已整理文档发给项目内部,研发表示可以使用。

<完!>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • 1、Splunk硬件需求 2、Splunk架构图 3、下载tgz: wget -O splunk-7.0.1-2b...
    SkTj阅读 5,274评论 0 8
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,702评论 0 10
  • 生活真的是调味剂,酸甜苦辣全都有,真的已经够大度了,每次有一点的小反馈都被否决,大声吼叫,都觉得自己很有道理,完全...
    6bfa03c93be4阅读 164评论 0 0
  • 很多人都会说:“追问号?问号是一种标点符号,怎么追啊?”我要说追问号不是跑着去追,而是去追问它、找出它的答案。 像...
    太阳神_7129阅读 294评论 0 0