📜  logstash 自动配置重新加载 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:47.819000             🧑  作者: Mango

Logstash 自动配置重新加载 - Shell/Bash

如果您使用的是 Logstash 并在生产环境中进行部署,则可能需要进行配置更改。当您进行更改并重新加载配置时,Logstash 会重启。这种情况可能会导致服务中断和生产环境中的数据丢失。为避免这种情况,我们可以使用 Logstash 自动配置重新加载脚本

概述

这个脚本可以自动监视 Logstash 配置文件夹中的更改,并在检测到更改时,自动重新加载配置。不仅可以减少因重新启动 Logstash 导致的服务中断,而且还可以确保正确的配置从 Logstash 启动后一直保持到停机。

实现方式

这个脚本使用了 inotifywait 工具,它可以监控文件系统事件。在这种情况下,脚本会监视 Logstash 配置文件夹中的更改,并在检测到更改时执行 Logstash 的重新加载命令。以下是脚本的内容:

#!/bin/bash
CONFIG_DIR="/etc/logstash/conf.d/"

inotifywait -m -r -e create,modify,delete,move $CONFIG_DIR \
| while read path action file; do
    echo "$file has been $action"
    if [[ $file == *.conf ]]; then
        echo "reload config"
        /usr/share/logstash/bin/logstash --path.settings=/etc/logstash -t && /usr/share/logstash/bin/logstash --path.settings=/etc/logstash --config.reload.automatic
    fi
done
使用方法
  1. 创建一个名为 logstash-config-watch.sh 的文件,并将上述代码复制到该文件中。

  2. 更改配置文件夹的路径(如果您的路径不同)。

    CONFIG_DIR="/etc/logstash/conf.d/"
    
  3. 运行脚本(请确保您拥有执行权限)。

    chmod +x logstash-config-watch.sh
    ./logstash-config-watch.sh
    

    运行脚本后,脚本会一直运行,以侦听配置文件夹的更改。

    logstash-config-watch

结论

使用 Logstash 自动配置重新加载脚本 可以避免因 Logstash 重新启动而导致的服务中断和数据丢失。这个脚本可以处理 Logstash 的自动重新加载,并在检测到新配置时自动重新加载,保证了生产环境中配置的正确性和可靠性。