Aqui está uma receita de alto nível.
- Configure o syslogd ou o rsyslogd (o que o seu sistema usar) para gerar
as mensagens necessárias de facilidade / prioridade para um pipe nomeado além
para onde vai agora. Extrair de
man rsyslog.conf
Named pipes This version of rsyslogd(8) has support for logging output to named pipes (fifos). A fifo or named pipe can be used as a des‐ tination for log messages by prepending a pipe symbol ('|') to the name of the file. This is handy for debugging. Note that the fifo must be created with the mkfifo(1) command before rsys‐ logd(8) is started.
Existe um exemplo no meu /etc/rsyslog.d/50-default.conf
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/tmp/rt_monitor
-
Crie um pipe nomeado e use tail e grep para ler e pesquisar a partir do pipe.
mkfifo /tmp/rt_monitor; tail -f /tmp/rt_monitor | grep "alert string"
Você deve verificar se o sistema continua se o pipe nomeado ficar cheio, se você não tiver seu consumidor em execução e impedir que isso ocorra, eu lhe dei uma receita bem crua.