python - 如何将整个索引数据从一台 Splunk 服务器迁移到另一台 Splunk 服务器
问题描述
我有一个 Splunk 服务器,其中包含 650k 个事件的索引数据。我想将整个数据从一个实例迁移到另一个新实例。我尝试使用带有数据字段 -27D@d 的迁移脚本,但我只能迁移 50k 数据。-27D@d 是初始数据可用的点。你能帮帮我吗?这是代码:
import splunklib.client as client
import splunklib.results as results
import json
import requests
send_string = ""
service=client.connect(host="host1", port=8089, username="admin", password="xxxx")
rr = results.ResultsReader(service.jobs.export('search index=my_index latest=-27D@d' ))
for result in rr:
if isinstance(result, results.Message):
continue
elif isinstance(result, dict):
final = dict(result)
data = final['_raw']
send_string = json.dumps({"event" : data,"source" : "test"},ensure_ascii=False).encode('utf8')
url='http://host2:8088/services/collector'
authHeader = {'Authorization': 'Splunk 5fbxxxx'}
#Send data to Splunk
response = requests.post(url, headers=authHeader, data=send_string, verify=False)
if response.status_code == 200:
print("Successfully pushed the data to Splunk source")
else:
print("Failed to push the data to Splunk source")
解决方案
如果 host2 上不存在索引 my_index,则只需将目录 $SPLUNK_DB/my_index 复制到 host2,将 my_index 添加到 index.conf,然后重新启动 Splunk。
推荐阅读
- php - 我怎样才能在 Wordpress 中工作一次?
- dart - 在 Dart 中使用 is-operator 和使用运行时类型有什么区别
- javascript - 在 ES6 JavaScript 中,我们可以在 for 循环中使用 `let`,但不能在 while 循环中使用?
- tensorflow - 是否有可能有一个返回数组(或张量)而不是数字的度量?
- google-calendar-api - Google Calendar API for PHP 非常大,需要全部下载吗?
- c++ - C++字符串存储理解
- java - 如何在单元测试中设置 Spring 注入的值?
- javascript - 当用户单击页面中的现有链接时如何显示弹出窗口?
- shell - 使用 shell 脚本显示部分输入
- graphql - 当您在 Query 和 Mutation 中有相同的概念时,是否有命名约定来避免 GraphQL 名称冲突?