1 简介
ELK(Elasticsearch, Logstash, Kibana)是一个目前主流的开源日志监控平台。由三个主要组件组成的:
Elasticsearch:是一个开源的分布式搜索和分析引擎,可以用于全文检索、结构化检索和分析,它构建在Lucene搜索引擎库之上,是当前使用较为广泛的开源搜索引擎之一。
Logstash:一个用于收集、处理和转发日志数据的数据处理管道。Logstash可以从不同的日志源(如文件、应用程序日志、数据库等)中收集日志数据,并对其进行过滤、解析和转换,然后将其发送到Elasticsearch中进行存储和索引。
Kibana:一个用于可视化和分析存储在Elasticsearch中的日志数据的用户界面。Kibana提供了一个直观且功能强大的仪表盘,可以根据特定需求创建各种图表、表格和地图,并进行实时数据可视化和监控。
官网地址:Elastic — The Search AI Company | Elastic。
2 Elasticsearch 安装
2.1 创建配置文件
D:\docker\elk\elasticsearch\config\elasticsearch.yml
cluster.name: "docker-es-cluster"
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: false
2.2 启动elasticsearch
# 下载
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.3
# window下启动(不能换行)
docker run -it -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e ES_JAVA_OPTS="-Xms512m -Xmx1024m" -e "discovery.type=single-node" --restart=always -v D:/docker/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/docker/elk/elasticsearch/data:/usr/share/elasticsearch/data -v D:/docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs docker.elastic.co/elasticsearch/elasticsearch:8.14.3
访问:curl 127.0.0.1:9200
3 Kibana 安装
3.1 创建配置文件
D:\docker\elk\kibana\kibana.yml
#Default Kibana configuration for docker target
server.name: kibana
server.host: 0.0.0.0
elasticsearch.hosts: ["http://192.168.31.155:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
3.2 启动kibana
# 下载
docker pull kibana:7.8.0
# window下启动(不能换行)
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v D:/docker/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.8.0
4 Logstash
访问:http://127.0.0.1:5601
4 Logstash 安装
4.1 创建配置文件
# 配置logstash.yml
D:\docker\elk\logstash\config\logstash.yml
config:
reload:
automatic: true
interval: 3s
xpack:
management.enabled: false
monitoring.enabled: false
# 配置logstash.conf
D:\docker\elk\logstash\config\logstash.conf
input {
file {
path => "/usr/share/logstash/provider1-demo.log"
start_position => "beginning"
stat_interval => "3"
type => "provider1-demo"
}
}
output {
if [type] == "provider1-demo" {
elasticsearch {
hosts => ["http://192.168.31.155:9200"]
index => "provider1-demo-%{+YYYY.MM.dd}"
}
}
}
4.2 启动Logstash
# 下载
docker pull docker.elastic.co/logstash/logstash:8.14.3
# window下启动(不能换行)
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 --name logstash -v D:/docker/elk/logstash/data/:/usr/share/logstash/data -v D:/workspace/springcloud-demo/logs/provider1-demo.log:/usr/share/logstash/provider1-demo.log -v D:/docker/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v D:/docker/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf docker.elastic.co/logstash/logstash:8.14.3
注意这里挂载的日志路径:
-v D:/workspace/springcloud-demo/logs/provider1-demo.log:/usr/share/logstash/provider1-demo.log
5 见证奇迹
请求业务,输出日志信息: