ELK-logstash重新导入历史日志
2023/10/25 11:05 投稿
#!/bin/bash

CONF_FILE="/etc/logstash/conf.d/forti.conf"
LOG_DIR="/data/fwlogold/"
BEAT_DIR="/data/filebeat/"
DATE="2023-08-14"  # 初始日期
DATEB="20230814"  # 初始日期

#循环到2023-10-23结束循环
while [ "$DATE" != "2023-10-23" ]; do

    # 替换 CONF_FILE中的fortinet-2023.*为fortinet-$DATE
    sed -i "s/index => \"fortinet-2023.*\"/index => \"fortinet-$DATE"/" "$CONF_FILE"

    # 重启 Logstash
    systemctl restart logstash

    # 执行 zcat 命令,将历史的log文件写入forti.log
    zcat "${LOG_DIR}devicesname.fw.log.devicesn.${DATEB}05201.zip" > "${BEAT_DIR}forti.log"

    #设定一个睡眠时间,避免zcat没执行结束 又重新修改配置文件重启服务,导致导入中断
    sleep 30m

    # 日期 + 1天
    DATE=$(date -d "$DATE +1 day" "+%Y-%m-%d")
    DATEB=$(date -d "$DATEB +1 day" "+%Y%m%d")

done