2、Splunk环境搭建实战:单实例安装、索引器与搜索头配置、License管理

好,咱们开始动手。这一章我带你从零搭一套Splunk环境出来。别怕,说白了就是装个软件,改几行配置,再导入个License。但这里头有几个坑,我当年第一次装的时候全踩过。今天咱们一次性捋顺。

2.1 单实例安装:最朴素的玩法

单实例,就是所有角色(数据输入、索引、搜索、告警)全跑在一台机器上。适合做POC或者小规模日志量(每天<5GB)的环境。我个人习惯在CentOS 7或Ubuntu 20.04上部署,下面以CentOS为例。

核心思路:下载Splunk Enterprise的rpm包 → 安装 → 启动 → 完成初始化向导。

具体步骤很简单:

  1. 下载:从Splunk官网或内部仓库拿splunk-<version>-linux-2.6-x86_64.rpm。
  2. 安装:rpm -ivh splunk-*.rpm,默认装到/opt/splunk/。
  3. 接受License:cd /opt/splunk/bin && ./splunk start --accept-license。
  4. 设置管理员密码:首次启动会让你设admin密码,别设成123456,我见过有人这么干,结果被扫了。
  5. 验证:浏览器访问http://<你的IP>:8000,看到登录页面就对了。

小提示:如果你是用systemd管理服务,记得跑./splunk enable boot-start,否则重启机器后Splunk不会自动起来。我曾经因为这个被凌晨3点的告警电话叫醒过。

2.2 索引器与搜索头配置:从单机走向分布式

单实例玩熟了,你会发现搜索慢、索引写入卡。这时候就该拆了。把搜索功能单独拎出来叫搜索头,把索引存储扔给索引器。你想想看,这不就是前后端分离的思路嘛。

典型的分布式部署长这样:

Splunk 分布式部署框架 数据源(UF/SDK) 通用转发器 (UF) 索引器集群 (存储+索引) 搜索头集群 (查询+可视化) License管理器 说明 数据流:UF → 索引器集群(存储原始数据)← 搜索头集群(查询) License管理器独立部署,所有索引器向其报告每日索引量

配置索引器和搜索头,咱们分两步走:

2.2.1 索引器配置要点

  • 确认角色:在$SPLUNK_HOME/etc/system/local/下创建server.conf,写入[general] serverName = idx01,然后确保服务类型是splunk_indexer。
  • 接收端口:默认索引器用9997端口收数据。./splunk enable listen 9997。
  • 存储路径:建议把索引数据挂到大容量磁盘上,改indexes.conf里的homePath和coldPath。我之前吃过亏,默认路径放根分区,结果磁盘写满,整个Splunk挂了。

警告:索引器的server.conf里千万别乱开sslKeysfile和enableSplunkdSSL,除非你确认已经配好证书链。否则搜索头连过来会报SSL握手失败,我排查了整整一下午才发现是证书链没配全。

2.2.2 搜索头配置要点

  • 连接索引器:在搜索头的distsearch.conf里指定远端索引器地址。格式:[distributedSearch] servers = idx01:8089, idx02:8089。
  • 权限认证:建议在搜索头和索引器之间统一部署认证,最简单的方案是都装同一个Splunk,用默认的共享密钥(在/opt/splunk/etc/auth/splunk.secret里)。但生产环境我推荐用LDAP或者SAML。

验证命令:在搜索头上跑./splunk list peer,如果能看到索引器列表显示EAI:SUCCESS,说明互联成功。

2.3 License管理:别让数据白收了

Splunk的License是按每日索引量算的。说白了,你每天往Splunk里倒100GB日志,就得买100GB的License。超了不会丢数据,但搜索功能会被锁定,直到你加够额度。

管理License其实就三件事:

  1. 导入License:去Settings → Licensing,上传.lic文件。或者命令行:./splunk add license /path/to/your.lic。
  2. 分配池子:如果你有多个索引器,需要建License池。比如你买了500GB/天,可以分成3个堆:200GB给在线业务,200GB给审计日志,100GB给研发调试。在License管理器上用./splunk add license-stack -pool prod_pool -value 200这种命令。
  3. 监控用量:我习惯每天一早跑./splunk list license-usage看看昨天的峰值和平均值。如果连续三天超过80%,就该考虑扩容了。
常见License违规场景及处理
违规类型表现处理方法
每日用量超标搜索报错"License violation"立即扩容License或削减无谓的日志源
License池分配不均某个索引器写满池配额调整池参数或用rebalance命令重分
License未激活Splunk工作但无数据写入检查/opt/splunk/etc/licenses是否为空,重新上传

避坑指南:我曾经把免费License(每天500MB)当成企业License用了一天,结果第二天搜索全被锁了,生产环境报警半小时。后来养成了习惯:装好之后第一件事就是./splunk list licenses确认有效。记着,先导License,再通数据。

2.4 本章小记

单实例适合入门,但正式项目一定得上分布式。索引器和搜索头分开,License管理器独立部署,这个三角结构是最稳妥的。下回遇到扩容、灾备、多租户,你在这个骨架上加东西就行了。

嗯,今天先到这儿。你按上面的步骤装一遍,遇到报错先看/opt/splunk/var/log/splunk/splunkd.log,十有八九能找到线索。装好了记得告诉我。