使用 beats 将日志从应用服务器发送到 ELK 服务器

使用 beats 将日志从应用服务器发送到 ELK 服务器

我正在为生产环境构建日志分析器。我的场景是,我需要在一台将使用 ELK 服务器的 centos7 服务器上设置 elasticsearch、Logstash 和 kibana,另一台是 apache 服务器(远程服务器)。

我已经配置如下

(i)ELK 服务器 - elasticsearch、kibana、logstash 和 nginx 代理

(二)应用服务器(apache 服务器)- 在 apache 服务器上安装 beats

(一)ELK服务器配置

Elasticsearch 配置

六、/etc/elasticsearch/elasticsearch.yml

网络.主机:本地主机

http端口: 9200

Kibana 仪表板配置

六、/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 发送日志。

Filebeat 配置:

猫/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。

我迫切希望有人能给出解决方案。

谢谢

库马尔

答案1

首先,看看事件是如何从源服务器进入 ElasticSearch 的。

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

在此配置中,Apache 服务器(应用服务器)无法与 ElasticSearch 通信。因此,设置索引、模板和仪表板的 beats 命令将无法正常工作。但是,您的架构并未设置为假设 Beats!它假设 Logstash 是将事件发送到 ElasticSearch 的那个。Kibana 可以很好地处理这一点。

如果你进入 Kibana 的管理进而索引模式,它将显示您当前索引的列表。有了 beats 到 logstash 的配置,您应该有一些。为要搜索的索引设置通配符。

答案2

尝试运行:filebeat -e 而不是:filebeat setup

相关内容