我正在为生产环境构建日志分析器。我的场景是,我需要在一台要使用 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 的。
Apache 服务器,即应用服务器,在此配置中无法与 ElasticSearch 对话。因此,用于设置索引、模板和仪表板的 beats 命令将无法从那里工作。但是,您的架构并未设置为假设 Beats!它假设 Logstash 是向 ElasticSearch 发送事件的那个。Kibana 可以处理得很好。
如果您进入 Kibana 的管理,然后索引模式,它将显示您当前索引的列表。有了你对 logstash 配置的节拍,你应该有一些。为要搜索的索引设置通配符。