我想將錯誤從我的node.js服務器記錄到另一臺服務器。我正在考慮使用elasticsearch,logstash和kibana。我想知道如何用我的節點服務器設置ELK。如何使用node.js設置ELK
回答
我在我的舊組織中恰好使用了這個用例。使用Beats + ELK啓動的基本教程 - https://www.elastic.co/guide/en/beats/libbeat/current/getting-started.html
所以基本上它是如何工作的 - 您的nodejs應用程序將以不同格式(如錯誤/警告/信息等)登錄文件(您可以使用bunyan)。 Filebeat會將這些日誌文件拖尾併發送到logstash服務器。 Logstash input.conf將有一些輸入過濾器(在你的情況下它將是錯誤過濾器)。當任何日誌消息通過這些過濾器時,logstash會根據output.conf文件中的決定將其轉發到某個端點。
這是我們所做的事情 -
初始架構 - 安裝filebeat(之前我們使用logstash轉發)客戶端尾日誌服務器的NodeJS並轉發給logstash機。 Logstash將對輸入日誌進行一些處理並將它們發送到ES羣集(可以與Logstash位於同一臺機器上)。 Kibana只是這個ES上的一個可視化。
最終體系結構 - 初始設置對於小流量很酷,但是我們意識到logstash可能是單點故障,並且在流量增加時可能會導致日誌丟失。因此,我們將Kafka與Logstash一起整合,以便系統順利地進行擴展。這裏是一篇文章 - https://www.elastic.co/blog/logstash-kafka-intro
希望這有助於!
可以使用運行代理的logstash從應用程序收集日誌。 Logstash具有輸入插件(https://www.elastic.co/guide/en/logstash/current/input-plugins.html)。這可以在管道中配置。一個基本的設置是配置TCP(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-tcp.html)或者UDP(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-udp.html)input插件),Logstash可以監聽插件中配置的端口 然後應用程序可以將日誌直接發送到logstash服務器,然後流水線可以轉換並轉發到ES。 通過配置Logstash管道是持久的,可避免數據丟失,這種方法是較好的,當應用程序服務器是短暫的(如在容器中)。
對於的NodeJS,https://www.npmjs.com/package/winston-logstash是一個包這是相當活躍的,這要點https://gist.github.com/jgoodall/6323951爲其他語言的整體方法提供了一個很好的例子。
這是示例(最小)TCP inpu t插件配置
input {
tcp {
'port' => '9563'
}
}
- 1. 配置ELK + log4j
- 2. Grok配置ELK
- 3. 如何設置在node.js中
- 4. 設置ELK最佳方式生產
- 5. 在AWS EC2和S3中使用ELK設置日誌服務器
- 6. 如何設置頂級域名(ELK)的電子郵件警報
- 7. 如何使用Gmail的Node.js API設置收件人
- 8. 如何使用Node.js自動設置表單中的值
- 9. 如何使用Node.js和AngularJS設置構建環境?
- 10. 如何設置內容類型的文件中使用的node.js
- 11. 如何使用Node.js和Passport設置Mocha測試
- 12. 如何在Node.js中設置Cookie年齡而不使用框架?
- 13. 如何使用MongoHQ和Node.js在Heroku上設置MongoDB?
- 14. 如何正確設置CoffeeScript中使用Node.js的
- 15. 如何使用node.js設置腳本的最大執行時間?
- 16. 如何使用Angular.js和MongoDb在Node.js中設置會話變量
- 17. 如何在node.js中使用node-soap設置標題
- 18. 如何使用node.js上的請求模塊設置POST編碼?
- 19. 如何使用node.js設置html元素值?
- 20. 如何使用Socket.io安裝程序設置Apache和Node.js?
- 21. 如何在express node.js中設置TimeTimeout?
- 22. 如何設置與Node.js組合的MySQL
- 23. 如何設置的Node.js實時更新
- 24. 如何在node.js中設置超時值?
- 25. 如何在node.js中設置Geofire
- 26. 如何在node.js下設置setsockopt?
- 27. Node.js DNS查找 - 如何設置超時?
- 28. 如何設置服務器運行Node.js?
- 29. 如何在Node.js上設置Twitter OAuth?
- 30. 如何$在node.js中設置mongoDB遊標?
感謝回覆@aky。你能指導我通過setup,conf文件以及如何從node.js層登錄所需的基本安裝步驟。 –
編輯答案與每個組件和步驟的教程:) –
它有幫助嗎?或者你需要其他幫助? –