![](/img/trans.png)
[英]How to check Elasticsearch logs in Amazon Elasticsearch Service?
[英]How to gather logs to Elasticsearch
我在不同的服務器(許多機器)上有網絡應用程序的日志。 如何在安裝了 Elastic search 和 Kibana 的系統中收集這些日志。 當我搜索我只找到的教程介紹的設置,其中logs
, logstash
, beats
, elasticsearch
和kibana
都在一起。
由於您有許多生成日志的機器,因此您需要使用 Filebeat、Logstash、Elasticsearch 和 Kibana 設置 ELK 堆棧。
它會在每台機器上監聽你的日志文件,並將它們轉發到你在filebeat.yml
配置文件中提到的 logstash 實例,如下所示:
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /path_to_your_log_1/ELK/your_log1.log
- /path_to_your_log_2/ELK/your_log2.log
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["private_ip_of_logstash_server:5044"]
Logstash 服務器偵聽端口 5044 並通過 logstash 配置文件流式傳輸所有日志:
input { beats { port => 5044 } } filter { # your log filtering logic is here } output { elasticsearch { hosts => [ "elasticcsearch_server_private_ip:9200" ] index => "your_idex_name" } }
在 logstash 中,您可以過濾日志並將其拆分為字段並將它們發送到 elasticsearch。
下面是帶有 filebeat 的 ELK 的基本架構:
如其他答案中所述,您需要在所有實例上安裝 Filebeat 以偵聽日志文件並發送日志。 您的 Filebeat 配置將取決於您的日志格式(例如 log4j)以及您希望將其傳送到何處(例如:Kafka、Logstash、Elasticsearch)。
配置示例:
filebeat.inputs:
- type: log
paths:
- /var/log/system.log
multiline.pattern: '^\REGEX_TO_MATCH_YOUR_LOG_FORMAT'
multiline.negate: true
multiline.match: after
output.elasticsearch:
hosts: ["https://localhost:9200"]
username: "filebeat_internal"
password: "YOUR_PASSWORD"
此外Logstash是不是強制性的,如果你不想使用它,日志可以直接發送到Elasticsearch,但你需要設置攝取你Elasticsearch集群處理傳入的日志管道,更多的攝取piplelines 這里。
還有一個更有用的鏈接: 在 ElasticSearch 和 Filebeat 中使用攝取管道
為了獲取所有 Web 應用程序日志,您需要設置 ELK 堆棧。 現在你有彈性搜索設置,它只是一個保存所有日志數據的數據庫。 為了查看這些日志,您需要 Kibana 這是 UI,然后您需要 Logstash 和 Filebeat 來讀取應用程序的這些日志並將其傳輸到 Logstash 或直接傳輸到 Elasticsearch。
如果您想要一個合適的集中式日志系統,那么我建議您也將 Logstash 與 Filebeat 一起使用。 由於您的服務器與每台服務器上的服務器不同,因此您安裝 Filebeat,並在您擁有 kibana 和 Elasticsearch 的主服務器上安裝 Logstash 並將所有 Filebeats 指向該服務器。
FileBeats 是輕量級數據傳送器,我們將其作為代理安裝在服務器上,以將特定類型的操作數據發送到 Logstash,然后由 Logstash 進行過濾並將日志數據發送到 elasticsearch。
按照本網站上的說明檢查如何設置 ELK 。 另外,看看FileBeat + ELK Setup
您可以使用 Splunk 和 Splunk forwarder 將所有日志收集在一起。 在您的 Web 服務器中使用 Splunk 轉發器將所有日志轉發到具有 Splunk 的中央服務器。
如果您不想在 Elasticsearch 和 Kibana 堆棧中添加其他工具,您可以直接將日志發送到 Elasticsearch,但在構建管道以擁有更穩定的系統時應小心。
要收集日志,您可以使用 python 或其他語言,但對於 python,我會使用這個庫: https : //elasticsearch-py.readthedocs.io/en/master/
還有另一個python的中等教程:
https://medium.com/naukri-engineering/elasticsearch-tutorial-for-beginners-using-python-b9cb48edcedc
如果您更喜歡其他語言將日志推送到 elasticsearch,當然您也可以使用它們。 我只是建議使用 python,因為我對它更熟悉,而且你可以使用它來創建一個快速原型,然后再將它變為實際產品。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.