iT邦幫忙

1

關於「rsyslog」的配置迷思及問題 (感謝 SunAllen 協助解決)

這邊想要實現nginx透過rsyslog將Log傳送給ELK做分析

目前機器配置為
172.16.16.111 ngnix
172.16.16.86 ELK

《nginx 172.16.16.111》

只操作了單獨配置nginx的config設定檔
配置 syslog:server=172.16.16.86:10514;
https://ithelp.ithome.com.tw/upload/images/20190625/20114520fZXHd9UXLk.png
《ELK 172.16.16.86》

先是修改了rsyslog.conf檔案,將註解拿掉

https://ithelp.ithome.com.tw/upload/images/20190625/20114520KcHIXtNfAV.png

然後啟動rsys.conf的相關進程
https://ithelp.ithome.com.tw/upload/images/20190625/20114520BAxPnCzpeT.png

啟動logstash的config檔案,進行log的接收
https://ithelp.ithome.com.tw/upload/images/20190625/20114520fwjzn0G2M5.png

因為Google很多資料,一路走到這邊來了,還是接收不到東西,想問問是不是自己還漏了什麼部分,也很感謝「raytracy」一路指引我到這邊來/images/emoticon/emoticon41.gif

https://ithelp.ithome.com.tw/upload/images/20190625/20114520QtcpWHWWts.png

1 個回答

1
SunAllen
iT邦高手 1 級 ‧ 2019-06-25 16:41:55
最佳解答

最近也在用syslog相關的軟體。

請問大大的 nginx 到 elk tcp/udp 的514 port 連線,有建立起來嗎?

看更多先前的回應...收起先前的回應...

https://ithelp.ithome.com.tw/upload/images/20190625/20114520mLlVXWhquY.png

SunAllen iT邦高手 1 級 ‧ 2019-06-25 17:35:29 檢舉

您上面的測試用telnet,只能確認到 tcp 514port的通的。

您接收log 看起來是 udp 的 10514。

您可看看,當兩端的服務都起來後,在兩端用
netstat -na | more 看看是否有連到 udp 10514 的session。

172.16.16.111 被我玩壞,現在改成172.16.16.102
https://ithelp.ithome.com.tw/upload/images/20190625/20114520DYUbkAaBxe.png

udp 有連到 172.16.16.86:10514
但是tcp沒有
https://ithelp.ithome.com.tw/upload/images/20190625/201145200DEimCNYTW.png
172.16.16.86端
https://ithelp.ithome.com.tw/upload/images/20190625/20114520khLGu1u7Uu.png

SunAllen iT邦高手 1 級 ‧ 2019-06-25 20:53:27 檢舉

您的連線狀態,看起來是正常,TCP沒有也是正常(TCP要也有的話,可能就是農曆七月到了XD)

在rsyslog.conf中,有一段是設定遠端連結過來時,要收檔案相關的設定,大概是長這樣

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs 
& ~

您再去看看,這個部份的設定。

rsyslog 需要設定的地方不多,差不多就是這些,下面的連結您可以參考看看...

https://www.itread01.com/content/1532326941.html

大哥您好 ~

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *
是要修改成
$template RemoteLogs,"/var/log/172.16.16.102/access.log" *
嗎?

順便一問,.102的nginx端,應該不需要配置任何rsyslog相關吧
是否只要配置access.log syslog:server=172.16.16.86:10514;

就能將access.log傳遞給.86端,對吧?

目前是在.86端做rsysylog.conf配置
https://ithelp.ithome.com.tw/upload/images/20190626/20114520VPYce8jGzW.png

嗯,還是接收不到訊息/images/emoticon/emoticon06.gif

SunAllen iT邦高手 1 級 ‧ 2019-06-26 17:54:47 檢舉

%HOSTNAME%/%PROGRAMNAME% 這邊應該指的是,自訂路徑和檔名,要實際存在的。

目前也在水深火熱之中...晚點再仔細看您上面的留言。

這邊還是先謝謝您,我也有把它修改成.102的實際路徑試試看 (有點無果)

我有參考了「CentOS 7搭建Rsyslong集中式日志系统

確實是有將log都傳到被接收端了,但就會有兩個問題,並不是我要的功能

  1. 傳送端要安裝rsyslog,(如果要額外安裝東西,就會選擇保持原方案)
  2. 只打算傳送nginx-Log,但這方式把機器上所有操作都傳送了

https://ithelp.ithome.com.tw/upload/images/20190627/20114520G5LwmBLxKP.png

我懷疑是 udp6 在搞鬼,跟修改成udp,也一樣 (排除)

關閉防火牆,直接解決

我要發表回答

立即登入回答