2017/03/04

之前提到graylog如果要把別机器log file的資料丟過來
要另外裝軟体
今天想到一個方法
使用tail -f 加上nc 就可以解決了

首先在graylog上新增一個input

sytem/inputs - inputs 選擇 Raw/Plaintext TCP

選擇node 在title上給一個名字 再來指定port  再來save就可以了

之後再要傳送log的server上使用

tail -F /var/log/messages | nc 1.1.1.1 6666

必須使用 -F 否則logrotate後就不會再送資料了

1.1.1.1為graylog的ip
6666為上一步驟所指定的port

這樣資料就進來了

只是有個問題 如果graylog重開 nc就會斷掉了

因此寫了一個shell來開机執行

#!/bin/bash
#check graylog data send every 5 secs
while [ true ]
do
sleep 5
ps -ef|grep 1.1.1.1|grep -v grep || /usr/bin/tail -F /var/log/messages | /usr/bin/nc 1.1.1.1 6666
done

每5秒檢查一次 如果有問題就重下指令

沒有留言: