- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的脚本,但它不工作,因为它说 sys.arg[8] 超出索引范围。
斯普伦克:您的警报可以触发 shell 脚本或批处理文件,它们必须位于 $SPLUNK_HOME/bin/scripts 中。使用以下属性/值对:
action.script =
Splunk 目前允许您将参数作为命令行参数和环境变量传递给脚本。这是因为命令行参数并不总是适用于某些界面,例如 Windows。
环境中可用的值如下:
SPLUNK_ARG_0 脚本名称 SPLUNK_ARG_1 返回的事件数 SPLUNK_ARG_2 搜索词 SPLUNK_ARG_3 完全限定的查询字符串 SPLUNK_ARG_4 已保存搜索的名称 SPLUNK_ARG_5 触发原因(例如,“事件数大于 1”) SPLUNK_ARG_6 用于查看已保存搜索的浏览器 URL SPLUNK_ARG_8 存储此搜索结果的文件(包含原始结果)由于历史原因未使用 SPLUNK_ARG_7。
这些可以在 UNIX shell 中作为 $SPLUNK_ARG_0 等引用,或者在 Microsoft 批处理文件中通过 %SPLUNK_ARG_0% 等引用。在其他语言(perl、python 等)中,使用语言 native 方法访问环境。
#! /usr/bin/python
#Install requests package for python
import requests
import csv, gzip, sys
# Set the request parameters
url = 'https://xxxxxxxxdev.service-now.com/api/now/table/new_call'
user = 'xxxxx'
pwd = 'xxxxxx'
event_count = int(sys.argv[1]) # number of events returned.
results_file = sys.argv[8] # file with search results
# Set proper headers
headers = {"Content-Type":"application/json","Accept":"application/json"}
for row in csv.DictReader(openany(results_file)):
output="{"
for name,val in row.iteritems():
if output!="{":
output+=","
output += '"'+name+'":"'+val+'"'
output+="}"
# Do the HTTP request
response = requests.post(url, auth=(user, pwd), headers=headers, data='{"short_description":"Theo\'s Test for Splunk to SN","company":"company\'s domain","u_source":"Service Desk","contact_type":"Alert","description":"Please place detailed alert detail including recommended steps"}')
# Check for HTTP codes other than 200
if response.status_code != 201:
print('Status:', response.status_code, 'Headers:', response.headers, 'Error Response:',response.json())
exit()
# Decode the JSON response into a dictionary and use the data
#resp=response.json()
#print('Status:',response.status_code,'Headers:',response.headers,'Response:',re sponse.json())
print response.headers['location']
}
最佳答案
我看到您正在使用 openany
命令,但尚未在您的代码中定义它。这会导致问题吗?
否则,这绝对应该有效,它匹配 my sample code和 Splunk docs 中的代码
import gzip
import csv
def openany(p):
if p.endswith(".gz"):
return gzip.open(p)
else:
return open(p)
results = sys.argv[8]
for row in csv.DictReader(openany(results)):
# do something with row["field"]
关于python - 如何将事件参数传递给运行以响应 Splunk 警报的 Python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046790/
我想在 splunk 中使用查询,提取字段列表,然后使用这些结果字段进一步过滤我后续的 splunk 查询。我该怎么做? 最佳答案 FORMAT 命令对此特别有用。这是一个过于简单的示例,但应该让您了
我需要找到两个事件之间的持续时间。我在 splunk 上查看了解决方案和 Stack Overflow,但仍然无法得到计算结果。 sentToSave 和 SaveDoc 都已格式化时间戳,这就是我使
我需要找到两个事件之间的持续时间。我在 splunk 上查看了解决方案和 Stack Overflow,但仍然无法得到计算结果。 sentToSave 和 SaveDoc 都已格式化时间戳,这就是我使
我正在尝试将来自两个不同日志的信息合并到一个查询中,但我不确定如何或是否可以做到这一点。本质上我想这样做: LOG 1: LOG 2: fooid=1234 speed=500 fooid=54
在不提取字段的情况下,我想搜索不包含“country=$”的任何事件,即事件不得以“country=”结尾。我可以将其正则表达式为“country=(?!$)”,但这仍然需要国家/地区出现在事件中,这
我有一个用例,我想根据条件将值设置为一个变量,并在搜索命令中使用该变量。 例子:-我要检查条件 if account_no=818 then var1="vpc-06b" el
我们在一个 Splunk 查询中使用了 ifnull 函数(是的,ifnull 而不是 isnull),我想看看只是为了确定逻辑,但我无法在任何地方找到它的记录。 是referenced in a f
我正在尝试在 Splunk 中创建一个表,其中包含提取的多个字段以及当我向 Splunk 提供要搜索的字符串时返回的条目总数。我遇到的问题是,当我使用 stats 命令获取返回结果的计数并将其通过管道
我想知道是否有人可以帮助我。 我发表了以下关于我正在尝试编写的 Splunk 查询的帖子: https://answers.splunk.com/answers/724223/in-a-table-p
我正在尝试在 Splunk 中创建一个表,其中包含提取的多个字段以及当我向 Splunk 提供要搜索的字符串时返回的条目总数。我遇到的问题是,当我使用 stats 命令获取返回结果的计数并将其通过管道
我的日志中有以下几行: ...useremail=abc@fdsf.com id=1234 .... ...useremail=pqr@fdsf.com id=4565 .... ...userema
我正在尝试在 Splunk 中搜索在特定时间范围内发生的事件,但我希望该搜索包含我索引的所有数据,这些数据涵盖了广泛的日期范围。 例如,我想查看索引日志文件中的一行是否在我已索引的 25 天日志中的上
我正在使用 this Kubernetes 上的 Splunk 镜像(使用 minikube 进行本地测试)。 应用下面的代码后,我面临以下错误: ERROR: Couldn't read "/opt
我试图弄清楚为什么有人想要在 Splunk 中创建仪表板。 View 允许您添加表单以及任何图表和搜索,而仪表板则不允许。那么,我为什么要制作仪表板?一个比另一个有什么优势吗? 最佳答案 嗯.....
如何从搜索返回的 splunk 事件列表中获取特定 splunk 事件的 url? 如果这是不可能的,并且我需要创建一个只返回该事件的搜索,那么我可以在查询中使用的每个事件是否有一些唯一的 ID? 最
我有一个 Splunk 搜索字符串。如果我添加 earliest=10/05/2020:23:59:58,搜索字符串仍然有效。但是,如果我将其更改为 earliest=10/05/2020:23:59
我正在尝试使用 alpine:3.8 基础镜像创建一个 Splunk 通用转发器镜像。 FROM alpine:3.8 ENV SPLUNK_PRODUCT universalforwarder EN
我从 API 收到以下格式的 JSON: [ { "scId": "000DD2", "sensorId": 2, "metrics": [ {
我尝试编写一个 c# 程序,通过 serilog 记录器记录到 splunk。 我尝试设置 splunk 来监听日志记录。 全部在我的本地机器上运行。 我的猜测是我没有正确配置 Splunk。
有谁知道如何在 Splunk 中准确计算第 99.9 个百分位数? 我尝试了如下多种方法,例如 exactperc(但这只需要整数百分位数)和 perc(但这非常接近结果)。 base | stats
我是一名优秀的程序员,十分优秀!