Logstash

使用 beats 將日誌從應用程序伺服器發送到 ELK 伺服器

  • June 3, 2020

我正在為生產環境建構日誌分析器。我的場景是,我需要在一台要使用 ELK 伺服器的 centos7 伺服器上設置elasticsearch、Logstash 和 kibana,另一台是 apache 伺服器(遠端伺服器)。

我已經配置了以下

(i).ELK 伺服器 - elasticsearch,kibana,logstash 和 nginx 代理

(ii).Application server(apache server)-在apache伺服器上安裝beats

(i).ELK伺服器配置

彈性搜尋配置

vi /etc/elasticsearch/elasticsearch.yml

network.host: 本地主機

http.port: 9200

Kibana 儀表板配置

vi /etc/kibana/kibana.yml

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]

Nginx 配置:

server {
listen 80;
server_name 172.xx.xx.xx;
location / {
   proxy_pass http://localhost:5601;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection 'upgrade';
   proxy_set_header Host $host;
   proxy_cache_bypass $http_upgrade;
 }
}

Logstash 配置

貓 /etc/logstash/conf.d/02-beats-input.conf

input {
 beats {
 port => 5044
}
}

我也配置了過濾器部分..

貓 /etc/logstash/conf.d/30-elasticsearch-output.conf

output {
elasticsearch {
 hosts => ["localhost:9200"]
 sniffing => true
 manage_template => false
 index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}

ii) 應用伺服器 Beats 配置

我已經在應用程序伺服器中安裝了 beats 並使用 logstash 發送日誌。

文件節拍配置:

貓 /etc/filebeat/filebeat.yml

output.logstash:
  #the logstash hosts
hosts: ["172.xx.xx.xx:5044"]

在這裡,我不確定如何在 kibana 中載入 filebeat 索引模板、索引和儀表板。當我嘗試從 apache 伺服器執行“filebeat setup”命令時,出現以下錯誤。

[root@webserver ~]# filebeat setup
Exiting: Index management requested but the Elasticsearch output is not configured/enabled.

我知道如果我用 elasticsearch 輸出配置 filebeat,我可以將索引直接載入到 kibana。但我不希望 apache 伺服器直接與 elasticsearch 聯繫。

有人可以建議我如何將“索引、索引模板和儀表板”直接從 apache 伺服器載入到 kibana,同時配置節拍輸出到 logstash。

我搜尋了很多網站,但沒有得到任何答案。是否有任何其他替代方法(如導入方法)在 kibana 和 elk 伺服器中載入 apache 伺服器 filebeat indexe。

我渴望等待有人為此提供解決方案。

謝謝

庫馬爾

首先,看看事件是如何從源伺服器進入 ElasticSearch 的。

[App-Server --> Log-file --> Beats] --> [Logstash --> ElasticSearch].

Apache 伺服器,即應用伺服器,在此配置中無法與 ElasticSearch 對話。因此,用於設置索引、模板和儀表板的 beats 命令將無法從那里工作。但是,您的架構並未設置為假設 Beats!它假設 Logstash 是向 ElasticSearch 發送事件的那個。Kibana 可以處理得很好。

如果您進入 Kibana 的管理,然后索引模式,它將顯示您目前索引的列表。有了你對 logstash 配置的節拍,你應該有一些。為要搜尋的索引設置萬用字元。

引用自:https://serverfault.com/questions/1018928