标签: splunk

基于正则表达式的 splunk 查询计数

我的示例日志如下所示

fixed message: 443-343-234-event-put
fixed message: wre-sdfsdf-234-event-keep-alive
fixed message: dg34-343-234-event-auth_revoked
fixed message: qqqq-sdf-234-event-put
fixed message: wre-r323-234-event-keep-alive
fixed message: we33-343-234-event-auth_revoked
Run Code Online (Sandbox Code Playgroud)

日志模式是"fixed message: {UUID}-{event-type}"

我想捕获总共有多少事件;其中有多少是 event-put、event-keep-alive 和 event-auth_revoked

我可以使用 splunk 查询来捕获上述需求吗?

regex logging splunk

3
推荐指数
1
解决办法
4161
查看次数

AKS 日志格式已更改

我们最近将 AKS 集群从 1.17.x 更新到 1.19.x,并发现自定义应用程序日志的格式发生了/var/lib/docker/containers变化。

更新之前是这样的: 旧的有效 json 格式

之后看起来像这样: 新的无效 json 格式

我可以在变更日志中找到一些注释,其中 kubernetes 从文本日志更改为结构化日志(对于系统组件),但我不知道这与我们的日志格式更改有何关联。

https://kubernetes.io/blog/2020/09/04/kubernetes-1-19-introducing-structured-logs/#:~:text=In%20Kubernetes%201.19%2C%20we%20are,迁移%20to% 20%20结构化%20格式

https://kubernetes.io/docs/concepts/cluster-administration/system-logs/

/var/lib/docker/containers在 AKS > 1.19.x 中是否仍有机会获取有效的 json 日志?

背景:我们将应用程序日志发送到 Splunk,并且不使用 Azure 堆栈进行日志分析。目前,我们的 Splunk 设置无法解析新的日志格式。

splunk azure kubernetes azure-aks

3
推荐指数
1
解决办法
1515
查看次数

配置log4j以将其日志发送到Splunk?

我需要将log4j日志发送到Splunk。我找到了几种解决方案:

  1. 使用REST API(例如curl -k -u admin:changeme -d "name=/tmp/myfile.log" -d "sourcetype=syslog" https://localhost:8089/servicesNS/admin/search/data/inputs/monitor
  2. 安装Splunk通用转发器
  3. 使用log4j附加程序,例如:

    Syslog追加器

    log4j.appender.splunk = org.apache.log4j.net.SyslogAppender log4j.appender.splunk.SyslogHost = localhost:8089 log4j.appender.splunk.layout = org.apache.log4j.PatternLayout log4j.appender.splunk.facility = LOCAL2 log4j.appender.splunk.layout.ConversionPattern = [%p]%t:%m%n

但是在我看来,如果splunk服务器和日志位于单独的计算机上,则第三种解决方案将无法工作。

第二种解决方案需要安装其他软件

谁能提出其他解决方案?

PS我试图使用开源Java库。但这没有给出结果。

log4j splunk

2
推荐指数
1
解决办法
1万
查看次数

如何在 Splunk 中统计结果并将其放入表格中?

我正在尝试在 Splunk 中创建一个表,其中包含提取的多个字段以及当我向 Splunk 提供要搜索的字符串时返回的条目总数。我遇到的问题是,当我使用 stats 命令获取返回结果的计数并将其通过管道传送到表时,它只是将所有字段留空,但显示返回结果计数的值。如果没有计数逻辑,该表将显示我想要的所有值。下面是我的示例查询:

index=test "Failed to find file"
| table host, sourceUser, sourceApp, source
| rename host as "Server", sourceUser as "User", sourceApp as "Application", source as "Log"
Run Code Online (Sandbox Code Playgroud)

以下是示例结果(由于我无法发布图片,所以采用两行 CSV 格式):

服务器、用户、应用程序、日志

myserver1,joesmith,RadomApp,C:\Users\Joe\Log.txt

这将返回我要求的所有字段。如果我添加 stats 命令(如下所示),它会返回一个包含所有列的表,但唯一包含数据的是“错误计数”列:

index=test "Failed to find file"
| stats count as error
| table host, sourceUser, sourceApp, source, error
| rename host as "Server", sourceUser as "User", sourceApp as "Application", source as "Log", error as "Error Count"
Run Code Online (Sandbox Code Playgroud)

结果示例:

服务器、用户、应用程序、日志、错误计数

,,,,1

知道解决这个问题的最佳方法是什么吗?

splunk

2
推荐指数
1
解决办法
4万
查看次数

尝试使用logback appender登录Splunk

我正在尝试使用splunk的logback appender直接在我的Java应用程序中记录splunk.

似乎什么都没有发生什么,但是当我在REST客户端手动发出post命令时,我在splunk中看到了我的数据.

我无法获得正式的splunk logback测试.

logback.xml

  <appender name="SPLUNK" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
    <url>http://mySplunkUrl:8088/services/collector</url>
    <token>1234566789</token>
    <disableCertificateValidation>true</disableCertificateValidation>
    <batch_size_count>1</batch_size_count>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%msg</pattern>
    </layout>
  </appender>

  <root level="trace">
    <appender-ref ref="SPLUNK" />
  </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

单元测试

@Test
public void splunkLogger() {
    Logger logger = LoggerFactory.getLogger(LogFactoryTest.class);
    Date date = new Date();
    String jsonMsg = String.format("{event:'CancerCenterTest'}");
    logger.info("CancerCenterTest");
    logger.info(jsonMsg);
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试使用的文档:http://dev.splunk.com/view/splunk-logging-java/SP-CAAAE7M

我错过了一些明显的东西吗

编辑 这是我项目的链接 - https://github.com/toymachiner62/splunk-logging

java logback splunk

2
推荐指数
1
解决办法
3249
查看次数

在python中通过HTTP将日志条目写入splunk

我们有一个python程序需要将日志发送到splunk。我们的 splunk 管理员创建了一个服务收集器 HTTP 端点,用于将日志发布到以下位置:

  • 指数
  • 代币
  • 主机名
  • 统一资源标识符

我们找不到在 splunk python SDK客户端中输入 URI 的位置。例如:

import splunklib.client as client
import splunklib.results as results_util

HOST="splunkcollector.hostname.com"
URI="services/collector/raw"
TOKEN="ABCDEFG-8A55-4ABB-HIJK-1A7E6637LMNO"
PORT=443

# Create a Service instance and log in
service = client.connect(
    host=HOST,
    port=PORT,
    token=TOKEN)

# Retrieve the index for the data
myindex = service.indexes["cloud_custodian"]

# Submit an event over HTTP
myindex.submit("Dummy test python client log")
Run Code Online (Sandbox Code Playgroud)

如您所见,我从不使用 URI 变量。上述代码的结果是:

Traceback (most recent call last):
  File "splunk_log.py", line 15, in <module>
    myindex = service.indexes["cloud_custodian"] …
Run Code Online (Sandbox Code Playgroud)

python splunk splunk-sdk

2
推荐指数
1
解决办法
9135
查看次数

将conf文件嵌入舵图

我是掌舵人。我用大量的conf文件构建了一个混乱的头盔图表。我目前在configmap中使用类似的东西..

    apiVersion: v1
kind: ConfigMap
metadata:
  name: splunk-master-configmap
data:
  indexes.conf: |
    # global settings
    # Inheritable by all indexes: no hot/warm bucket can exceed 1 TB.
    # Individual indexes can override this setting.
    homePath.maxDataSizeMB = 1000000
Run Code Online (Sandbox Code Playgroud)

但是我更喜欢将conf文件放在单独的文件夹中,例如configs / helloworld.conf,并且跨过“ tpl”,但是正在努力了解如何实现它。-任何人都可以建议最佳做法。附带说明一下,splunk的出现顺序为>>,因此可能在不同位置使用了许多index.conf文件。有没有人对如何最好地实现这一目标有任何想法?

干杯。

templates splunk kubernetes kubernetes-helm configmap

2
推荐指数
1
解决办法
3248
查看次数

如何从splunk中的String中提取数据?

我收到了来自 splunk 的日志,我想获取字符串中间的特定数据并将其用于仪表板。例如:

msg="somestring1 somestring2 500 somestring3 ..."

我如何获得值 500?

抱歉,我不是 splunk 方面的专家。提前致谢

splunk

2
推荐指数
1
解决办法
5483
查看次数

Python 相当于将 POST 负载用单引号括起来

与 Splunk 相比,这更像是一个 Python 问题,但如果有人这样做的话将会很有帮助......特别是在这里,有一个关于在单个 POST 中向服务器发送多个指标的讨论。他们提供的示例是使用curl 并将整个有效负载用单引号(\')括起来,例如

\n\n
curl -k http://<IP address or host name or load balancer name>:8088/services/collector  \\\n-H "Authorization: Splunk 98a1e071-bc35-410b-8642-78ce7d829083"                         \n\\\n-d \'{"time": 1505501013.000,"source":"disk","host":"host_99","fields": \n{"region":"us-west-1","datacenter":"us-west- 1a","rack":"63","os":"Ubuntu16.10","arch":"x64","team":"LON","service":"6","service_version":"0","service_environment":"test","path":"/dev/sda1","fstype":"ext3","_value":999311222774,"metric_name":"total"}}\n{"time": 1505511013.000,"source":"disk","host":"host_99","fields": \n{"region":"us-west-1","datacenter":"us-west-1a","rack":"63","os":"Ubuntu16.10","arch":"x64","team":"LON","service":"6","service_version":"0","service_environment":"test","path":"/dev/sda1","fstype":"ext3","_value":1099511627776,"metric_name":"total"}}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是如何在 python \xe2\x80\x93 中执行相同的操作,即您不能像在curl命令中那样将多个JSON对象用单引号括起来 - 这只会使整个有效负载成为字符串。是否有其他包装可以用于此目的?

\n\n

所以,这有效:

\n\n
payload = {"time": 1505501013.000,"source":"disk","host":"host_99","fields": \n{"region":"us-west-1","datacenter":"us-west- 1a","rack":"63","os":"Ubuntu16.10","arch":"x64","team":"LON","service":"6","service_version":"0","service_environment":"test","path":"/dev/sda1","fstype":"ext3","_value":999311222774,"metric_name":"total"}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这并不:

\n\n
payload = {"time": 1505501013.000,"source":"disk","host":"host_99","fields": \n{"region":"us-west-1","datacenter":"us-west- 1a","rack":"63","os":"Ubuntu16.10","arch":"x64","team":"LON","service":"6","service_version":"0","service_environment":"test","path":"/dev/sda1","fstype":"ext3","_value":999311222774,"metric_name":"total"}}\n {"time": 1505511013.000,"source":"disk","host":"host_99","fields": \n{"region":"us-west-1","datacenter":"us-west-1a","rack":"63","os":"Ubuntu16.10","arch":"x64","team":"LON","service":"6","service_version":"0","service_environment":"test","path":"/dev/sda1","fstype":"ext3","_value":1099511627776,"metric_name":"total"}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

仅供参考,那么 POST 看起来像:

\n\n
 resp = requests.post(splunkurl,json=payload,headers=headers)\n
Run Code Online (Sandbox Code Playgroud)\n

python json splunk

2
推荐指数
1
解决办法
532
查看次数

如何安装 Splunk Mint Gradle 插件?

根据 Splunk MINT 文档 ( https://docs.splunk.com/Documentation/MintAndroidSDK/5.2.x/DevGuide/Requirementsandinstallation ),您必须手动下载 Gradle 插件工件并将其包含在您的项目中。

我成功地下载并部署了这个工件到 Artifactory 的本地实例,因为它已经以 maven repo 格式存档。

为了测试集成,我简单地创建了一个全新的项目并添加/应用了 mint 插件。从这里开始,Gradle 同步失败并出现以下错误:

Caused by: java.lang.NoSuchFieldError: javacTask
 at com.splunk.mint.gradle.android.plugin.utils.VariantUtilsKt.getJavaTask(VariantUtils.kt:13)
 at com.splunk.mint.gradle.android.plugin.api.AspectJTransform.setupVariant(AspectJTransform.kt:81)
 at com.splunk.mint.gradle.android.plugin.api.AspectJTransform$prepareProject$1.execute(AspectJTransform.kt:57)
 at com.splunk.mint.gradle.android.plugin.api.AspectJTransform$prepareProject$1.execute(AspectJTransform.kt:43)
 at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1$1.run(DefaultListenerBuildOperationDecorator.java:150)
 at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:58)
 at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:147)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
 at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction.execute(DefaultListenerBuildOperationDecorator.java:144)
 at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)
 at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)
 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
 at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
 at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
 ... 126 more
Run Code Online (Sandbox Code Playgroud)

环境:

  • 安卓工作室 3.4
  • 摇篮 5.2
  • Android Gradle 插件 3.4.0
  • Splunk Mint 插件 5.2.5

我怀疑 …

android splunk gradle

2
推荐指数
1
解决办法
850
查看次数