在基于 Windows 的服务器上安装 Logstash

如果要使用 Logstash 从 Windows 操作系统收集日志数据,那么需要在运行 Windows 的服务器上安装 Logstash

开始之前

  • client.crt 证书文件从 Log Analysis 服务器复制到 Windows 服务器。 要查找该文件,请转至 <HOME>/IBM®/LogAnalysis 目录并输入以下命令:
    find . -name client.crt
    如果找到多个文件,那么可以使用任意一个文件。

过程

  1. 在 Windows 服务器上 创建名为 Logstash 的目录。 例如, C:\Logstash
  2. Logstash 8.7.1 下载页面下载 Logstash 8.7.1 Windows 版本。
  3. 要在 Windows 服务器上安装 Logstash ,请在步骤 1 中创建的目标 Windows 目录中解压缩 Logstash 捆绑软件。 例如, C:\Logstash\logstash-8.7.1 is Logstash Home(<LS_HOME>)
  4. 安装 logstash-input-eventloglogstash-filter-date_formatter 插件。 有关更多信息,请参阅 Logstash 配置文件参考
  5. 安装 Java™后,将 client.crt 文件导入到 Logstash 实例的 Java 密钥库中。
    例如,输入以下命令来导入文件:
    JAVA_HOME/bin/keytool -importcert -file <Path_to_file>/client.crt 
    -keystore <Java_home>/lib/security/cacerts 
    -alias LA_ClientCertificate
    其中,<Path_to_file> 是保存客户机证书的目录的完整路径。 <Java_home><LS_HOME>/jdk。 缺省密码为 changeit
  6. <LS_HOME>中的 Windows 服务器上的 Logstash 主目录下创建 logstash-scala\logstash 目录。
    例如,C:\Logstash\logstash-8.7.1\logstash-scala\logstash
  7. Log Analysis logstash-scala 输出插件文件 <LA_HOME>/logstash-8.7.1/logstash-scala.tgzLog Analysis 服务器复制到 Windows 服务器上的 <LS_HOME>\logstash-scala\logstash 目录。
  8. logstash-scala.tgz 文件解压缩到同一位置 (在步骤 4 中创建的目录)。
  9. 解压缩此文件将在 <LS_HOME>\logstash-scala\logstash 目录中创建两个目录 ..\config..\outputs
    例如:
    • C:\Logstash\logstash-8.7.1\logstash-scala\logstash\config
    • C:\Logstash\logstash-8.7.1\logstash-scala\logstash\outputs
  10. 因此, Logstash 可以与 Log Analysis通信,将 unity.ks 密钥库文件从 <LA_HOME>/remote_install_tool/local_conf_images 目录复制到 Logstash 所在的 Windows 服务器,例如 C:\Logstash\store\unity.ks
  11. logstash-scala.conf 文件中,添加以下参数:
    scala_keystore_path => <jks_file_path>
    其中 <jks_file_path> 是 Windows 服务器上保存密钥库文件的目录。 指定以下值: scala_keystore_path => "C:\Logstash\store\unity.ks"
  12. 如果要将 Logstash 与 Windows OS Events Insight ® Pack配合使用,那么必须将 logstash-scala.conf 文件从 Insight Pack 复制到 Windows 服务器上的 <LS_HOME>\logstash-scala\logstash\config 目录。 有关更多信息,请参阅 将 Windows OS Events Insight Pack 与 Logstash 集成
    完成以下更改:
    1. 创建日志目录。
      示例: C:\Logstash\logstash-8.7.1\logs
    2. 将位于 <LS_HOME>\logstash-scala\logstash\configlogstash.yml 文件中的插件路径指定为
      path.plugins: [ "C:/Logstash/logstash-8.7.1/logstash-scala/" ]
    3. 编辑 logstash-scala.conf.
      • filter 部分中,注释 grok {...} 括号内的每行,并定义 if 条件括号内的主机和路径。
        grok {
              :
            } # end grok
        mutate {
              replace => [ "host", "myhost"]
              replace => [ "path", "mypath"]
            }
        注: 主机名和路径名不得包含特殊字符,例如斜杠 (\) ,点 (.) 或冒号 (:)。 这些字符在 Logstash for Windows 上导致无效目录错误。 示例: C:\Logstash\syslog.log
      • output 部分中,您可以修改以下值:
        scala_url - replace the LA Hostname and port 9987 accordingly
        scala_user - "unityadmin" users
        scala_password - "unityadmin" password in plaintext
        scala_keystore_path => "C:\Logstash\store\unity.ks" (step 10)
        disk_cache_path => C:\Logstash\cache-dir"
        scala_fields - comment all line between the curly bracket
        log_file => "C:\Logstash\logstash-8.7.1\logs\scala_logstash.log"
        
        要加密 scala_password 密码,请使用 utilities 目录中的 unity_securityUtility.sh 脚本。 更多信息,请参阅 unity_securityUtility 命令
    4. 复制 log4j2.properties 并编辑其内容。 将 C:\Logstash\logstash-8.7.1\config\log4j2.properties 复制到 C:\Logstash\logstash-8.7.1\logstash-scala\logstash\config
  13. 或者,您可以将事件从输入文件发送到 Log Analysis ,而不是将 Logstash 与 Windows OS Events Insight Pack配合使用。 完成步骤 11.a, 11.b和 11.c。 然后,在 logstash-scala.conf 文件的输入部分中,将 eventlog 插件替换为以下文件插件:
    file {
                    type => "Win32-EventLog"
                    path => ["C:<input-dir>\syslog.log"]
            }

后续操作

完成安装后,可以启动 Logstash

输入以下命令以启动 Logstash:
C:\Logstash\logstash-8.7.1\bin\logstash.bat --verbose -f
C:\Logstash\logstash-8.7.1\logstash-scala\logstash\config\logstash-scala.conf  --path.logs
C:\Logstash\logstash-8.7.1\logs\ls-console.log   --path.settings
C:\Logstash\logstash-8.7.1\logstash-scala\logstash\config
此示例中的日志文件称为 ls-console.log。 您可以根据需要重命名文件。

要停止 Logstash,请在同一控制台中输入 CTRL+C 命令。 不能使用 logstash-util.sh 脚本在 Windows 服务器上操作 Logstash

要验证数据摄入,请创建以 "myhost" 作为主机名并以 "mypath" 作为路径名的定制数据源,并在选中 "搜索 UI" 之前将以下行插入到 C:\<input-dir>\syslog.log 中。
[07/01/20 04:56:21:000 PST] nc91209842 cron[1633]: postdrop: warning: mail_queue_enter: create file maildrop/772908.15028: Permission denied
[07/01/20 04:56:21:000 PST] nc91209842 run-crons[12798]: logrotate: OK 
[07/01/20 04:56:21:000 PST] nc91209842 run-crons[12798]: mdadm: OK