簡體   English   中英

使用Logstash將日志發送到彈性搜索

[英]Sending logs to elastic search using logstash

我在10.xx1中設置了單節點ELK,其中安裝了Logstash,Elastic Search和Kibana。

我的應用程序在另一台服務器10.xx2中運行,我希望將日志轉發到彈性搜索。

我在10.xx2中的日志文件/var/log/myapp/myapp.log

在10.xx1中,我在/etc/logstash/conf.d中提供了此輸入

input {
  file {
    path => "/var/log/myapp/myapp.log"
    type => "syslog"
  }
}

output {
   elasticsearch {
       hosts => ["10.252.30.11:9200"]
       index => "versa"
   }
}

我的問題如下

  1. 我是否需要在10.xx2中安裝Logstash
  2. 我該如何僅對具有“錯誤”的行進行grep
  3. 我的應用每天都會生成10MB的日志。 我只想知道,是否可以在彈性搜索中添加一個以上的節點,以使空間不會填滿。
  4. 我不想永久保留我的日志以進行彈性搜索。 有什么辦法可以設置發送日志的到期時間? 即7天后刪除日志。

我可以回答1和2。

  • 您需要在Logstash上至少安裝Logstash (不推薦)或FilebeatPacketbeat之一。 Filebeat或Packetbeat都很不錯,而且可以從Elastic.co公司免費獲得。 Packetbeat用於通過網絡而不是日志文件捕獲應用程序日志。 對於您的情況,使用文件日志,只需使用Filebeat。
  • 您需要編輯Filebeat配置文件(filebeat .yml)才能其日志記錄到10.xx1

filebeat: prospectors: - paths: - /var/log/myapp/myapp.log

logstash: hosts: ["10.xx1:5044"]

  • 在安裝了Logstash的10.xx1上(以及用於安裝ELK的其他文件),您需要為Logstash創建一些配置文件:

    • 將名為02-beats-input.conf的輸入文件添加到/etc/logstash/conf.d/

    input { beats { port => 5044 ssl => false } }

    • 將名為03-myapp-filter.conf的過濾器文件添加到/etc/logstash/conf.d/ 您應該找到一個匹配您的日志的過濾器模式。

對於2:

Kibana充當Elasticsearch的Web界面。 一旦啟動,默認情況下它將在端口5601上可用。然后,您可以使用發現界面搜索術語,例如“錯誤”。 它將返回該術語的前500個文檔。

對於3:

另一個Elasticsearch將允許您在節點之間傳播數據。 但是,節點可以輕松處理幾千兆字節而不會出現問題。

對於4:

您無法為數據設置有效期限。 至少它不是自動的,您必須搜索所有今天到期的日志並將其刪除。
另一個解決方案(也是更好的解決方案)是每天有一個索引( index => "versa-%{+YYYY.MM.dd}" ),然后在7天后刪除索引(使用Elasticsearch策展人和cron輕松完成)工作)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM