ELK官网地址:https://www.elastic.co/cn/elastic-stack
搭建环境:windows、docker
为了本地方便启动使用docker应用来搭建
1、下载elasticsearch
docker search elasticsearch
docker pull elasticsearch:7.6.0
docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.0
下载7.6.0的版本,然后启动es镜像
可以使用chrome插件elasticsearch HEAD来查看es中的内容
2、下载kibana
docker pull docker.elastic.co/kibana/kibana:7.6.0
docker run --name kibana7.6.0 -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.6.0
下载7.6.0的版本,然后启动kibana镜像
进入kibana修改es地址
docker exec -i -t ********* /bin/bash
vi config/kibana.yml
kibana.yml
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://10.0.75.1:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
修改后保存,重启kibana
注意使用es和kibana的版本要保持一致
3、安装logstash
介绍请参考官网:https://www.elastic.co/cn/logstash
logstash官网介绍是一款输入、过滤器和输出的组件
输入:
https://www.elastic.co/guide/en/logstash/current/input-plugins.html
过滤器:
我们收集到的日志非常的复杂,logstash帮我们实现了数据过滤、转换的功能,收集我们真实需要的数据。本例中fileBeate收集了所有的数据通过logstash进行了过滤
filter {
mutate {
add_field => [ "[fields][path]", "%{[path]}"]
add_field => [ "[message]", "%{[message]}"]
}
}
输出:
[https://www.elastic.co/guide/en/logstash/current/output-plugins.html]
修改logstash.conf
#输入数据来源于beats的5044端口,输出到9200端口的es中,会在es中创建一个名为test的索引
input {
beats {
port => 5044
}
}
filter {
mutate {
add_field => [ "[fields][path]", "%{[path]}"]
add_field => [ "[message]", "%{[message]}"]
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "test"
#user => "***"
#password => "***"
}
}
进入bin目录启动
.\logstash -f logstash.conf
4、安装Beats
介绍请参考官网:https://www.elastic.co/cn/beats/
使用FileBeats来收集项目下的log日志(https://www.elastic.co/cn/beats/filebeat
)
修改配置文件 filebeat.yml
#收集配置
type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- C:\data\logs\*.log
fields:
application: user
#- c:\programdata\elasticsearch\logs\*
#输出配置
# ---------------------------- Elasticsearch Output ----------------------------
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
# ------------------------------ Logstash Output -------------------------------
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
启动fileBeats
.\filebeat -e -c filebeat.yml
5、在kibana中配置需要查看的es数据
访问:http://127.0.0.1:5601/app/kibana
进入到management中,选择
选择已经创建好的索引
日志展示
到目前为止我们ELK的收集、部署、展示已经完成了。