跳转到主要内容

Splunk logger可以将日志消息直接从您的Python代码发送到Splunk。

项目描述

Splunk logger

Splunk的日志处理器。允许您直接从Python代码将信息发送到Splunk。

Build Status

用法

请确保将***替换为您的凭证和特定的API域名,然后运行

import logging
from splunk_logger import SplunkLogger

ACCESS_TOKEN = '***'
PROJECT_ID = '***'
API_DOMAIN = 'api-***.data.splunkstorm.com'

splunk_logger = SplunkLogger(access_token=ACCESS_TOKEN,
                             project_id=PROJECT_ID,
                             api_domain=API_DOMAIN)
logging.getLogger('').addHandler(splunk_logger)

logging.error('This is sent to splunk')

等待Splunk处理新信息几秒钟后,您应该在Web界面中看到类似以下内容

{
    data : "This is sent to splunk",
    level : "ERROR",
    line : 1,
    module : "<stdin>"
}

当在实际的Python程序中使用代码,而不是从Python控制台时,使用实际的行号和模块名。

配置文件

总是避免在源代码中硬编码凭证是一个好主意。该模块可以从当前目录或用户的家目录中的YAML文件中获取凭证。文件名命名为.splunk_logger,其格式如下

credentials:
    project_id: ***
    access_token: ***
    api_domain: api-***.data.splunkstorm.com

文件就位后,您可以使用模块如下

import logging
from splunk_logger import SplunkLogger

# No credentials specified here
splunk_logger = SplunkLogger()
logging.getLogger('').addHandler(splunk_logger)

logging.error('This is sent to splunk')

通过环境变量进行配置

另一个splunk logger接受的配置源是环境变量。再次使用它们可以避免在源代码中硬编码凭证

  • SPLUNK_PROJECT_ID

  • SPLUNK_ACCESS_TOKEN

  • SPLUNK_API_DOMAIN

增强

这个模块中还有一些可以改进的地方

  • 可以将记录器重构为以异步方式发送消息,这将使 logging.foo() 调用立即返回,而不是等待日志消息发送。

  • 批量发送消息

欢迎提交拉取请求!

参考文献

本软件包实现了与Storm Splunk的通信,具体指定如下 这里

报告错误

Splunk Logger的问题跟踪器 中报告您的问题和功能请求,我将非常乐意修复它们。

变更日志

  • 2014年6月30日:用户需要指定API端点域名。修复了#2。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

splunk_logger-1.0.0.tar.gz (6.2 kB 查看散列)

上传时间 源代码