2021年10月7日 星期四

Rsyslog to PHP

以 PHP 為例,把 syslog 的資料即時 pipe 給程式分析

/etc/rsyslog.conf 加入
module(load="omprog")
*.* action(type="omprog" binary="/usr/local/bin/syslog-parser.php")

syslog-parser.php 內容

#!/usr/bin/php
<?php
while ($line=trim(fgets(STDIN))) {
  file_put_contents("/tmp/syslog-parser.log",$line."\n",FILE_APPEND);
}
?>

不要忘了 chmod +x syslog-parser.php,它需要有執行權限
本範例中的 $line 就是 syslog 會傳進來的每一行
當然這個方法不限於 PHP,可以讀取 STDIN 的程式都可以

沒有留言:

ESXi find what process lock file

ESXi 檔案刪不掉,出現 Device or resource busy 若檔案名稱是 windows-10-flat.vmdk 下此指令就可以知道那邊佔用 ps | grep `lsof | awk '/windows-10-flat.vmdk/ {print $1...