rsyslog.

rsyslog是一个syslog守护程序,通常部署在Debian和Ubuntu系统中。它通常使用简单的TCP连接来发送Logs-By-Line。我们支持将rsyslog事件转发到Insigrops的两种方法,如下所述。我们建议使用我们的令牌的输入方法,带来额外的安全性,并且独立于实际的源IP地址。

基本

基于令牌的日志记录

在UI中创建一个新主机。在此主机内部,创建一个新日志并选择令牌TCP并注册日志,您将收到一个唯一的令牌UUID,它将在表单下打印,然后在日志列表中的日志名称旁边打印。输入此令牌在此处在此处在下面说令牌,并将两行放在rsyslog配置文件的底部/etc/rsyslog.conf..将REGION_HERE替换为您的InsightOps账户所在的区域(例如eu、us、ca、au等)

         
1
$template InsightOpsFormat,"TOKEN_HERE %HOSTNAME% %syslogtag%%msg%\n"
2
3.
*.* @@REGION_HERE.data.logs.insight.rapid7.com: 80; InsightOpsFormat
基本

普通TCP/UDP转发(遗留)

如果您更愿意使用更基本的Input,那么在insighttops UI中创建一个主机。在那里面,创建一个日志,并选择普通TCP/UDP和注册日志,你将收到一个端口号使用,它将打印在表单下和日志列表中的日志名称旁边。只需将端口号添加到以下行,并将其放在rsyslog配置文件的底部/etc/rsyslog.conf..将REGION_HERE替换为您的InsightOps账户所在的区域(例如eu、us、ca、au等)

         
1
*.* @@REGION_HERE.data.logs.insight.rapid7.com:港口

注意:对于UDP转发使用单.用于加密的TLS连接@@REGION_HERE.data.logs.insight.rapid7.com

基本

重新开始

要接受其配置的任何更改,请使用以下命令重新启动syslog服务器,您应该开始查看您在帐户中设置的日志文件中显示的活动:

         
1
重启Sudo服务
基本

配置rsyslog遵循常规文件

Rsyslog可以配置为遵循系统上的任何文件。可以找到这方面的完整文档在这里.如果你想跟踪一个叫做/var/log/myapp/errors.log.log.,您将在您的/etc/rsyslog.conf.配置文件,在前面我们添加的代码片段之上。

         
1
$ modload imfile.
2
3.
美元InputFileName /var/log/myapp/errors.log
4
美元InputFileTag myapp
5
美元InputFileStateFile myapp-file1
6
美元InputFileSeverity信息
7
美元InputFileFacility local7
8
InputRunFileMonitor美元
9
10
#仅在遵循多个文件时输入一次
11
#每10秒轮询一次文件
12
$ InputFilePollInterval 10.
基本

rsyslog设置工具

Insightops还提供了一个Python Setup工具来设置rsyslog配置。此工具可通过GitHub下载。

安装工具允许您自动创建一个新的主机,然后为您希望遵循的每个文件将创建一个新的日志。注册文档可以在这里找到。跟踪一个文件只需简单地运行Sudo python le follow myfile在哪里myfile是您希望遵循的文件的路径。

更多细节可以在这里找到。设置工具还可以读取JSON配置文件,该文件允许您设置希望遵循的文件和使用的令牌。这非常有用,因为你是在弹性环境中进行日志记录。更多细节可以在这里找到。

基本

过滤rsyslog发送事件到特定的文件

Rsyslog允许您过滤日志,并将不同的目的地分配给不同的事件。完整的文档可以在这里找到。如果你想将你的nginx访问日志发送到InsightOps上的单个日志,你应该首先按照上面的小节来监视nginx访问日志,记录你给出的值InputFileTag美元.然后你会在你的下面输入以下内容/etc/rsyslog.conf..将REGION_HERE替换为您的InsightOps账户所在的区域(例如eu、us、ca、au等)

         
1
$template NginxTemplate,"TOKEN_HERE %HOSTNAME% %syslogtag%%msg%\n"
2
3.
如果$ programname =='mytag'那么@@ region_here.data.logs.insight.rapid7.com:80; nginxtemplate
4
&〜

您需要在insight tops中创建日志,并选择令牌TCP.然后用绿色打印的令牌被插入到上面TOKEN_HERE.您还需要确保您使用的值InputFileTag美元匹配$ programname.正在被核对。第三行简单地丢弃事件发送到InsightOps后,你可以省略这一点,如果你也想被发送到你的/etc/rsyslog.conf.

基本

安全日志

在不受信任的网络中,您可以使用证书验证设置加密。确保已安装对TLS的支持。通常这是实现安装的rsyslog-gnutls包裹。启用加密的示例配置可能如下所示:

         
1
美元DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-certificates.crt
2
3.
$ actionsendstreamdriver gtls.
4
ActionSendStreamDriverMode 1美元
5
美元ActionSendStreamDriverAuthMode x509 /的名字
6
$ ActionSendStreamDriverPermittedPeer * .data.logs.insight.rapid7.com
7
8
$template InsightOpsFormat,"LOG-TOKEN %HOSTNAME% %syslogtag%%msg%\n"
9
*.* @@REGION_HERE.data.logs.insight.rapid7.com: 443; InsightOpsFormat

注意:您必须指定正确的端口号。对于基于象征的输入,端口号是443

将REGION_HERE替换为您的InsightOps账户所在的区域(例如eu、us、ca、au等)

基本

缓冲

在网络连接不可靠的情况下,可以指示rsyslog在网络中断期间缓冲日志条目。更多细节请参考rsyslog可靠转发文档。

基本

Rsyslog参数解释

下面是我们在Rsyslog.conf中设置的参数的快速指南。更多信息请查看我们的Rsyslog的官方文档$ InputFileName:我们希望遵循的文件的位置为e.g / var / log / dmesg

$ InputFileTag:用于源自此文件的消息的标记。如果您想在标签后看到冒号,则需要在此处指定它(如“标记=”mytagvalue:“')。

$ InputFileStateFile:这是该文件的状态文件的名称。

$ InputFileFacility:syslog工具要分配给读取的行。可以以文本形式指定(例如“local0”,“local1”,...)或数字(例如“local0”的数字(例如128)。建议文本形式。默认为“local0”。

$ InputFileSeverity:要分配给行读取的syslog级别。可以以文本形式指定(如" info ", " warning ",…)或以数字形式指定(如" info "为4)。建议文本形式。默认设置是“注意”。

$ InputRunFileMonitor:这将激活当前监视器。它没有参数。如果你忘记了这个指令,文件监控将不会发生。

$ InputFilePollInterval:此设置指定要对新数据进行轮询的文件的频率。出于显而易见的原因,仅当IMFile在轮询模式下运行时,它只有效。指定的时间是以秒为单位的。在每个轮询间隔期间,所有文件都以循环方式处理。简短的轮询间隔提供了更多快速的消息转发,但需要更多的系统资源。虽然有可能,我们强烈建议不要将轮询间隔设置为0秒钟。这将使rsyslogd成为CPU猪,占用相当大的资源。然而,对于可能需要这种级别的一些非常异常的情况,得到了支持。即使您需要快速响应,也应该足够好。请注意,只要有任何数据,IMFile会保留读取文件。 So a “polling sleep” will only happen when nothing is left to be processed.

基本

故障排除

我的日志停止在某些时候转发,例如,午夜UTC?在与logrotate结合使用时,目前可以通过Ubuntu库获得的Rsyslog版本有一个已知的bug。在新文件被旋转之后,Rsyslog不会拾取它们。要解决这个问题,可以使用找到的说明安装一个更新版本的Rsyslog在这里