知识库

将 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 步(Type “./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 文件即可。

© . This site is unofficial and not affiliated with Neo4j, Inc.