知识库

将 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),并查看 Preliminary actions(预备操作)章节。

安装这些依赖项可能涉及遵循 Preliminary actions(预备操作)章节中的分步说明,或使用命令 sudo apt-get install <dependency>。然而,为了 rsyslog 正确安装,所有依赖项都必须安装。

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

2. 安装 rsyslog

现在您已经安装了 rsyslog 指南中提到的所有必需依赖项,您可以继续安装 rsyslog 本身。您可以再次参考 rsyslog 的安装指南 (http://www.rsyslog.com/newbie-guide-to-rsyslog) 并按照 How to install 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. 检查结果

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

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