小弟參考了《[料理佳餚] 在 CentOS 7 與 ELK(Elasticsearch + Logstash + Kibana)初次相遇 | 軟體主廚的程式料理廚房 - 點部落》
這邊先講我的ELK完成方式:
172.16.16.111 : nginx、logstash
172.16.16.112 : Elasticsearch、Kibana
先是透過在/opt/logstash/bin/
底下寫腳本,透過input在.111這台本機擷取nginx-access.log
再透過output,將log資料傳送到.112的Elasticsearch中
然後執行/opt/logstash/bin/./logstash -f stdin_to_elasticsearch.conf
變能將資料傳輸出去了
但是,這並不是小弟想要完成的方式,因為之前學長留下來的資料是,
透過在nginx.conf中撰寫的方式,將Log傳送到.112機器中,也因此 .112便安裝了Elasticsearch、Kibana、logstash這三個套件,而.111僅僅只安裝了nginx
然後在.112中的/etc/logstash/conf.d
的路徑底下寫腳本,透過input取得.111的log資料
然後一樣透過output,將log資料傳送到.112的Elasticsearch中
問題來了,學長的方式,我完全不曉得是怎麼做到的,我只能把表面僅有看到的訊息整理起來而已。
有查看過學長的.111/.112都沒有logstash進程,Google大多都指向利用「filebeat」去收集Log資料在傳到logstash,但也沒有看到學長的機器有安裝filebeat相關套件
有對ELK熟悉的前輩,能指引小弟一些方向嗎?感恩
你查查看 Nginx 設定裡面, 是否將 accesss log 丟給 syslog 去存檔? 若是的話, syslog 可以將 log 從 111 送到 112 去, 112 上面只要安裝 syslog server 就可以接收遠端的 log...
ps. 他有可能是: syslog, syslog-ng, rsyslog 這三者之一
根據您的提示,我已經有發現學長機器是走rsyslog的方式
有找到
udp 0 0 172.16.16.112:10514 0.0.0.0:*
目前正在參考這份資料:https://blog.csdn.net/chengyuqiang/article/details/80093892
及
https://its-security.blogspot.com/2018/03/centos7-install-logstash.html
正在嘗試如何解決
raytracy
嗯,不曉得如何啟動 /etc/logstash/conf.d 底下的 config