日志流向:
kafka-->logstash-->Elasticsearch-->Kibana
或者
filebeat-->Elasticsearch-->Kibana
Logstash配置:kafka-->logstash-->Elasticsearch
官网配置:https://www.elastic.co/guide/en/logstash/current/config-setting-files.html
可以配置接入多种log渠道,现在我配置的只是接入kafka渠道。
要配置的是如下两个参数体:
input:数据来源。
output:数据存储到哪里。
input {
kafka {
zk_connect => "127.0.0.1:2181"
topic_id => "mylog_topic"
}
}
filter {
#Only matched data are send to output.
}
output {
#stdout{}
# For detail config for elasticsearch as output,
# See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
index => "my_logs" #The index to write data to.
}
}
如果是filebeat-->logstash-->Elasticsearch,则配置如下:
filebeat安装到产生日志的服务器,配置:
output.logstash:
# The Logstash hosts #配多个logstash使用负载均衡机制
hosts: ["192.168.110.130:5044","192.168.110.131:5044","192.168.110.132:5044","192.168.110.133:5044"]
loadbalance: true #使用了负载均衡
logstash配置,并输出到es
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://192.168.110.130:9200"] #这里可以配置多个
index => "query-%{yyyyMMdd}"
}
}
Elasticsearch配置
配置文件在\elasticsearch-2.3.3\config目录下的elasticsearch.yml,可以配置允许访问的IP地址,端口等。
Kibana配置
配置文件在\kibana-4.5.4-windows\config目录下的kibana.yml,可以配置允许访问的IP地址,端口等。
这里有一个需要注意的配置,就是指定访问elasticsearch的地址。
kibana.yml配置:
server.host: "192.168.80.32"
elasticsearch.url: "http://192.168.80.32:9200"
日志和kafka、和logstash、elasticsearch、kibana直接的关系
ELK,kafka、aop之间的关系
1、AOP收集日志,然后通过kafka发送出去,发送的时候,指定了topic(在spring配置文件中配置为 topic="mylog_topic")
2、logstash指定接收topic为 mylog_topic的kafka消息(在config目录下的配置文件中,有一个input的配置)
3、然后logstash还定义了将接收到的kafka消息,写入到索引为my_logs的库中(output中有定义)
4、再在kibana配置中,指定要连接那个elasticsearch(kibana.yml中有配置,默认为本机)
5、最后是访问kibana,在kibana的控制台中,设置要访问elasticsearch中的哪个index。
Filebeat简介
Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。
Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。
filebeat必须安装到日志服务器上,因为不能采集远程日志文件.
参考官网:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html