知识库

将 Neo4j 日志重定向到 sysout(使用 rsyslog)

有时,由于组织要求、安全、索引或单纯的便利性,我们希望将所有应用程序日志输出到 Linux 的 sysout。虽然 Neo4j 没有提供此功能,但我们可以使用 RSYSLOG(www.rsyslog.com)来实现,我们可以在 6 个简单的步骤中完成。

步骤

  1. 安装 rsyslog 依赖项

  2. 安装 rsyslog

  3. 编辑 rsyslog.conf 以接受要添加的任意文件

  4. 创建 rsyslog 的配置文件以从 Neo4j 读取

  5. 重启 rsyslog

  6. 检查结果

1. 安装 rsyslog 依赖项

安装 rsyslog 需要安装许多依赖项。在我们的测试环境中,我们必须安装以下依赖项/库:libee、libstr、libjson0、libjson0-dev、uuid、libgcrypt11-dev、python-docutils、zlib1g-dev

您应该参考 rsyslog 的安装指南(http://www.rsyslog.com/newbie-guide-to-rsyslog)并查看初步操作章节。

安装这些依赖项可能需要按照初步操作章节中的分步说明进行,或者使用命令 sudo apt-get install <dependency>。但是,为了让 rsyslog 正确安装,必须安装所有依赖项。

由于这取决于您在机器上安装的内容,因此您只有在实际安装 rsyslog 时才能知道是否缺少一些依赖项。如果出现这种情况,请安装依赖项并重试。

2. 安装 rsyslog

现在您已安装 rsyslog 指南中提到的所有必要依赖项,您可以继续安装 rsyslog 本身。您也可以参考 rsyslog 的安装指南(http://www.rsyslog.com/newbie-guide-to-rsyslog)并按照如何安装 rsyslog中的步骤进行。但是,要使 rsyslog 与任意文件一起使用,您需要显式安装该模块。在 rsyslog 网站上的分步指南中,在第 4 步(键入“./configure –prefix=/usr”)中,您需要运行以下命令:

./configure --prefix=/usr --enable-imfile

如果不执行此操作,将导致安装成功,但我们将使用的模块不会被安装,因此重定向将无法正常工作

3. 编辑 rsyslog.conf

现在 rsyslog 已安装,我们需要编辑 rsyslog.conf 以使用任意文件。为此,我们必须编辑 /etc/rsyslog.conf 文件,并将以下行添加到文件的MODULES部分:

$ModLoad imfile

这将启用与您定义的任何文件一起使用 rsyslog。

此外,请确保以下行没有被注释掉:$IncludeConfig /etc/rsyslog.d/*.conf。我们将在下一步中需要它。

4. 创建 neo4j.conf 文件

现在我们将创建配置文件,该配置文件启用从 Neo4j 日志到 sysout 的重定向。

/etc/rsyslog.d 中创建一个新文件(例如:neo4j_debug.conf),编辑它,并将以下内容添加到文件中(我将以版本 3.0.7 的 debug.log 作为示例)

$InputFileName /neo/neo4j-enterprise-3.0.7/logs/debug.log
$InputFileTag neo4j_debug
$InputFileStateFile neo4j_debug
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFilePersistStateInterval 1000

(虽然我在 $InputFileName 中使用了版本 3.0.7,但您应该使用所需日志文件的完整路径)

5. 重启 rsyslog

现在一切都已配置好,我们只需要重启 rsyslog 服务。

$ service rsyslog restart

6. 检查结果

如果一切顺利,我们应该现在在 sysout 文件中重新播放 Neo4j 的 debug.log。您可以通过验证 sysout 文件本身(/var/log/syslog)来验证这一点。

您可以重定向任意多个文件。为此,您只需按照步骤 4 进行操作,并为希望重定向的新日志创建一个新的 .conf 文件。