监视单个日志文件

监视单个日志文件

我正在寻找一个用于监控单个日志文件的工具或脚本。如果日志文件包含我传递给它的单词,我希望通过电报收到通知。

我的方法:

  #!/bin/sh
  tail -f /var/log/named/named.log | while read line
  do
    cat /foo/bar/grepThisWords | while read test

            do case "$line" in *"$test"*)
                   [my TG-Curl Notification with "$test found"] 
               esac
            done
  done

我计划将此脚本作为守护进程全天候运行,但它无法按我期望的方式运行。当我在 Shell 中运行它(如 ./skript.sh)时,它会显示最后的日志并向我发送通知。它运行得差不多了,但我无法将其作为守护进程全天候运行。

期待帮助解答!

谢谢

答案1

我找到了一种监视单个文件的方法:inotifywait工具正好满足了我的需要!

inotifywait -e modify /for/bar/file | while read t; do 
 if t ~= *test* 
[...]

答案2

您可以尝试这里的建议来使用 Telegraf:

https://stackoverflow.com/questions/41160883/monitoring-log-files-using-some-metrics-exporter-prometheus-grafana

我用过普罗米修斯我自己用于监控,但不用于日志监控。我了解 Prometheus黑盒出口商具有某种日志监控功能,但我没有使用过。

相关内容