python 日志处理程序将数据发送到具有 SSL/TLS 支持的 Logstash 服务器
项目描述
logstashpy:支持 SSL/TLS 的 python 日志记录处理程序
这个存储库的灵感来自原始项目python-logstash,许多代码和待处理的 PR 也集成在这里,其中一些像 SSL/TLS 支持。此外,它计划支持更多的序列化格式,如 logstash 编解码器所支持的那样。目前 msgpack 已集成。
一些旧的格式化程序已经发货,但 ELK 堆栈现在促进了 ECS 的使用。查看ecs-logging 以获取最新更新。对于所有处理程序,默认格式化程序现在是来自 ecs_logging 的 StdlibFormatter,但您始终可以选择其他格式化程序或旧格式化程序。
__all__目前,__init__.py由于 API 将来可能会更改,因此目前没有公开任何类。
安装
要安装 logstashpy,只需使用一直以来最喜欢的 pip 并输入:
$ pip install logstashpy✨
用法
>>> from logstash.handlers.tcp_handler import TCPLogstashHandler
>>> from ecs.logger
>>> host = 'localhost'
>>> logger = logging.getLogger(__name__)
>>> logger.setLevel(logging.INFO)
>>> handler = TCPLogstashHandler(host, 5959, ssl=False, serializer='msgpack')
>>> logger.addHandler(handler)
>>> # add extra field to logstash message
>>> extra = {
>>> 'test_string': 'python version: ' + repr(sys.version_info),
>>> 'test_boolean': True,
>>> 'test_dict': {'a': 1, 'b': 'c'},
>>> 'test_float': 1.23,
>>> 'test_integer': 123,
>>> 'test_list': [1, 2, '3'],
>>> }
>>> logger.info('python-logstash: test extra fields', extra=extra)
SSL/TLS 支持
默认情况下启用 SSL。禁用ssl=FalseHandler 的构造函数中的传递。
要快速设置 SSL/TLS 相关证书,请遵循以下命令:
为证书颁发机构生成证书(用于自签名证书)
生成 CA 密钥(有点像 CA 的私钥,会提示输入密码,保持安全)
openssl genrsa -des3 -out localCA.key 2048
生成 CA pem 文件(类似于 CA 的公钥)
openssl req -x509 -new -nodes -key localCA.key -sha256 -days 1024 -out localCA.pem
现在我们有一个本地证书颁发机构准备签署一些证书。
让我们为我们的本地 logstash 服务器生成一些私钥以及 CSR(证书签名请求),这些私钥将由我们的本地证书颁发机构签名。您可以在此处传递一些其他配置,但为简单起见。
openssl req -new -sha256 -nodes -out logserver.csr -newkey rsa:2048 -keyout logserver.key
让我们将我们的 CSR 提交给我们的本地 CA 并获取证书(受保护,您将被提示输入之前设置的密码)
openssl x509 -req -in server.csr -CA localCA.pem -CAkey localCA.key -CAcreateserial -out logserver.crt -days 1000 -sha256
您将获得一个 logserver.crt,logstash 服务器可以将其呈现给其客户端,有效期为 1000 天。
Python 版本支持
logstashpy 支持 python3
示例 Logstash 配置
通过 TCP 从 logstashpy 接收事件的示例 Logstash 配置 ( logstash.conf)(如果不需要,则省略 ssl 相关字段):
input {
tcp {
port => 5959
codec => json
ssl_enable => true
ssl_cert => "/path/to/server.crt"
ssl_key => "/path/to/server.key"
ssl_verify => false
}
}
output {
stdout {
codec => rubydebug
}
}
文档
快来了。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
logstashpy -0.0.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d79208c806f209b804c32f894cba82f46bc0b811348faff08bedc7fcf3b0f520 |
|
| MD5 | 3a5c26ba04758ece214334c19a3f2420 |
|
| 布莱克2-256 | bf07738eea977c38bb3efd7162b3521d1577ad13b7795cad0165d529b1e08a70 |
logstashpy -0.0.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a7361b126657161acd558fd54734a047558a61eb17a9031f2ad2e73e5298ef64 |
|
| MD5 | 44146baa0bef98d061a8ca6d2ad0452a |
|
| 布莱克2-256 | 99aeac5fccbcc22496d944c6cf14fb14d6efc6263461b55a16cff1e546fe4d4f |