- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在寻找从 Windows 发送日志的选项,我已经设置了 logstash,目前我使用 logstash-forwarder 和 ssl 加密将日志从 Linux (CentOS) 服务器发送到我的 ELK 堆栈。
出于合规原因,加密在此环境中非常重要。
我也希望在 Windows 中使用 logstash-forwarder,但是在用 Go 编译后我遇到了事件日志的问题,我发现有人说这是不可能的,因为文件锁定问题,这是人们似乎正在开发 logstash-forwarder,但我真的等不及了。
无论如何,最终我发现 nxlog 似乎能够使用 ssl 以加密格式传送日志,我找到了一个 few posts about similar topics虽然我已经了解了很多关于如何传送日志以及如何设置 nxlog 的知识,但我仍然不知道如何设置 logstash 来接受日志以便我可以处理它们。
我已经在#nxlog 和#logstash irc channel 中询问过,并在#nxlog 中得到了一些确认这是可能的,没有关于如何配置它的更多信息。
无论如何,我已经使用了为我的 logstash-forwarder 使用而创建的 crt 文件(如果需要,我会创建一个新文件,当我很高兴它能工作时)并用 pem 扩展名重命名它,我相信它应该工作因为它可以 ASCII 格式读取。我已经为 %CERTDIR% 创建了环境变量并将我的文件放在那里,我已经从我读过的其他文章中为 nxlog 编写了以下配置文件,我认为这是正确的,但我不是 100% 确定:
## This is a sample configuration file. See the nxlog reference manual about the
## configuration options. It should be installed locally and is also available
## online at http://nxlog.org/nxlog-docs/en/nxlog-reference-manual.html
## Please set the ROOT to the folder your nxlog was installed into,
## otherwise it will not start.
#define ROOT C:\Program Files\nxlog
define ROOT C:\Program Files (x86)\nxlog
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log
# Enable json extension
<Extension json>
Module xm_json
</Extension>
# Nxlog internal logs
<Input internal>
Module im_internal
Exec $EventReceivedTime = integer($EventReceivedTime) / 1000000; to_json();
</Input>
# Windows Event Log
<Input eventlog>
# Uncomment im_msvistalog for Windows Vista/2008 and later
Module im_msvistalog
# Uncomment im_mseventlog for Windows XP/2000/2003
# Module im_mseventlog
Exec $EventReceivedTime = integer($EventReceivedTime) / 1000000; to_json();
</Input>
<Output sslout>
Module om_ssl
Host lumberjack.domain.com
Port 5000
CertFile %CERTDIR%/logstash-forwarder.crt
AllowUntrusted TRUE
OutputType Binary
</Output>
<Route 1>
Path eventlog, internal => sslout
</Route>
我想知道在 logstash 中使用什么输入格式 我已经尝试使用以下配置将日志传送到 lumberjack 输入类型(使用与我的 logstash-forwarders 使用相同的配置) :
input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
但是当服务启动时,我在 nxlog 日志文件中得到以下内容:
2014-11-06 21:16:20 INFO connecting to lumberjack.domain.com:5000
2014-11-06 21:16:20 INFO nxlog-ce-2.8.1248 started
2014-11-06 21:16:21 INFO successfully connected to lumberjack.domain.com:5000
2014-11-06 21:16:22 INFO remote closed SSL socket
2014-11-06 21:16:22 INFO reconnecting in 1 seconds
2014-11-06 21:16:23 INFO connecting to lumberjack.domain.com:5000
2014-11-06 21:16:24 INFO reconnecting in 2 seconds
2014-11-06 21:16:24 ERROR couldn't connect to ssl socket on lumberjack.antmarketing.com:5000; No connection could be made because the target machine actively refused it.
当我将日志记录设置为 DEBUG 时,我看到大量日志飞速通过,但我认为关键部分是:
2014-11-06 21:20:18 ERROR Exception was caused by "rv" at om_ssl.c:532/io_err_handler(); [om_ssl.c:532/io_err_handler()] -; [om_ssl.c:501/om_ssl_connect()] couldn't connect to ssl socket on lumberjack.domain.com:5000; No connection could be made because the target machine actively refused it.
我假设这表明我在 logstash 上使用了错误的输入法,但我想这也可能是我的 ssl 证书或其配置方式的问题。当我从我的 Windows 机器建立连接时,我似乎没有在正在生成的 logstash 服务器上获取任何日志。
最佳答案
感谢 b0ti 的帮助,出现了很多问题,我的 logstash 配置导致服务崩溃,但我的 nxlog 设置以及我的 ssl 证书以正确的方式设置也有问题。
我找到了 this关于创建 ssl 证书的帖子,其中涵盖了它们的设置方式,非常适合用作 Web 服务的自签名证书。
nxlog 的主要错误是 b0ti 指出我试图以二进制形式发送,而这仅在发送到 nxlog 服务器时有效。我还在文档中注意到 AllowUntrusted 的默认值是 false,所以我只需要在 ssl 正常工作时删除它。
<Output sslout>
Module om_ssl
Host lumberjack.domain.com
Port 5001
CAFile %CERTDIR%\nxlog-ca.crt
OutputType LineBased
</Output>
创建 CA key 并保护它,因为这需要保密(cd 到/etc/pki/tls):
certtool --generate-privkey --bits 2048 --outfile private/nxlog-ca.key
chown logstash:logstash private/nxlog-ca.key
chmod 600 private/nxlog-ca.key
然后需要将自签名 CA 证书传输给您的客户:
certtool --generate-self-signed --load-privkey private/nxlog-ca.key --bits 2048 --template nxlog-ca-rules.cnf --outfile certs/nxlog-ca.crt
cnf文件是标准的,只有修改了这个选项:
# Whether this is a CA certificate or not
ca
logstash输入法:
input {
tcp {
port => 5001
type => "nxlogs"
ssl_cacert => "/etc/pki/tls/certs/nxlog-ca.crt"
ssl_cert => "/etc/pki/tls/certs/nxlog.crt"
ssl_key => "/etc/pki/tls/private/nxlog.key"
ssl_enable => true
format => 'json'
}
}
生成私钥:
certtool --generate-privkey --bits 2048 --outfile private/nxlog.key
chown logstash:logstash private private/nxlog.key
chmod 600 private/nxlog.key
生成 CSR(证书签名请求):
certtool --generate-request --bits 2048 --load-privkey private/nxlog.key --outfile private/nxlog.csr
使用 CA 私钥签署证书
certtool --generate-certificate --bits 2048 --load-request private/nxlog.csr --outfile certs/nxlog.crt --load-ca-certificate certs/nxlog-ca.crt --load-ca-privkey private/nxlog-ca.key --template nxlog-rules.cnf
同样,对于 cnf 文件,唯一重要的标准输入部分是:
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is preferred to use different
# keys for encryption and signing.
encryption_key
# Whether this certificate will be used for a TLS client
tls_www_client
我已经测试过了,效果很好,我现在只需要设置过滤器
关于windows - 使用 nxlog 使用 om_ssl 从 Windows 将日志发送到 logstash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789903/
我可以使用 nxlog(om_dbi) 将数据插入 PostgreSQL。 但我无法使用 nxlog 从 PostgreSQL 选择数据(或获取数据)。我尝试了很多选项都没有用。 而在 nxlog 文
我在 Windows Server 2012 R2 上使用 nxlog-ce。 nxlog 正在输出两个 txt 文件。 我想每小时轮换这两个文件。我希望事件日志保持相同的名称,logfileA.tx
我有一堆 linux 服务器配置为使用 fluent-secure-output 插件将日志推送到另一个 fluentd 服务器。现在我想使用 nxlogs 配置我们的 Windows 服务器。 我阅
如何使用客户端 $Hostname 在 nxlog 服务器中自动生成目录?nxlog 客户端是 Windows m/c 日志在 nxlog 服务器上获取,但我想创建客户端 $Hostname DIR因
我们有一个设置,其中程序以遵循 GELF 规范的格式记录到 .Json 文件。 目前这是使用 HTTP 发送到 Graylog2 服务器。这行得通,但由于 HTTP 的性质,存在明显的延迟,如果有大量
我正在尝试将 log4net 文件解析为 json。 这是我的示例 log4net: 2015-01-27 01:06:18,859 [7] ERROR Web.Cms.Content.Base.Ta
我已经从 DigiCert 购买了证书。所以我得到了文件; DigiCertCA.crt, mydomain_com.crt mydomain_com.key 我将我的 logstash 配置更改为此
我正在尝试使用 NXLog 发布到 https 中的服务。不幸的是,每次尝试发帖时我都会收到此错误: 2018-12-19 09:11:14 ERROR SSL 证书验证失败:无法获取本地颁发者证书(
我让 NXLog 将我的 Windows 事件传送到另一台仅在 TCP 中运行良好的 Logstash 机器。但我想使用自签名证书加密流量。我认为我对 SSL 有基本的了解,但对 NXLog 文档感到
我正在尝试使用 nxLog 解析器 to_json() 将自定义日志文件解析为 JSON,以便我可以将它们发送到我的 ElasticSearch 实例中。我将把它们分成三个单独的字段,日期、日志类型指
我读了a blog post关于设置 Logstash、Elasticsearch 和 Kibana,作者建议使用 NXLog 来传送来自不同机器的日志。 “The Logstash Book”中呈现
这与密切相关 > Using nxlog to ship logs in to logstash from Windows using om_ssl > Using SSL to ship from
我一直在寻找从 Windows 发送日志的选项,我已经设置了 logstash,目前我使用 logstash-forwarder 和 ssl 加密将日志从 Linux (CentOS) 服务器发送到我
我是一名优秀的程序员,十分优秀!