1.安装ES
1.1 下载ES镜像
docker pull elasticsearch:7.6.1
1.2 挂载目录
mkdir -p /usr/local/docker/elk/es/data
mkdir -p /usr/local/docker/elk/es/logs
mkdir -p /usr/local/docker/elk/es/config
chmod a+w /usr/local/docker/elk/es/data
chmod a+w /usr/local/docker/elk/es/logs
chmod a+w /usr/local/docker/elk/es/config
在/usr/local/docker/elk/es/config
目录下新建elasticsearch.yml
文件
cluster.name: my-application
network.host: 0.0.0.0
http.port: 9200
# 开启es跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
1.3 运行ES
docker run -d --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-v /usr/local/docker/elk/es/data:/usr/share/elasticsearch/data \
-v /usr/local/docker/elk/es/logs:/usr/share/elasticsearch/logs \
-v /usr/local/docker/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-e "discovery.type=single-node" \
elasticsearch:7.6.1
进入elasticsearch
容器 运行以下命令
进入容器
docker exec -it elasticsearch /bin/bash
设置密码 按y确认后即可设置密码
elasticsearch-setup-passwords interactive
访问ES 输入刚刚设置elastic
用户的密码即可访问
2. 安装Kibana
2.1 下载Kibana
镜像
docker pull kibana:7.6.1
2.2 挂载目录
mkdir -p /usr/local/docker/elk/kibana/config chmod a+w /usr/local/docker/elk/kibana/config
在/usr/local/docker/elk/kibana/config
目录新建 kibana.yml
文件
server.host: 0.0.0.0
server.port: 5601
elasticsearch.hosts: ["http://192.168.0.103:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
# 设置kibana为中文
#i18n.locale: "en"
#i18n.locale: "zh-CN"
2.3 运行Kibana
docker run -d --name kibana \
-p 5601:5601 \
-v /usr/local/docker/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.6.1
访问kibana
使用elastic
用户访问
3.安装Logstash
3.1 下载Logstash
镜像
docker pull logstash:7.6.1
3.2 挂载目录
mkdir -p /usr/local/docker/elk/logstash/config chmod a+w /usr/local/docker/elk/logstash/config
在/usr/local/docker/elk/logstash/config
目录下新建logstash.conf
文件
input {
beats {
port => 5044
}
}
filter {
grok{
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
}
date {
match => ["timestamp","yyyy-MM-dd HH:mm:ss,SSS","ISO8601"]
target => "@timestamp"
}
}
output {
if "ERROR" in [message]{
elasticsearch {
hosts => ["192.168.0.103:9200"]
index => "open-web-error"
template_overwrite => true
}
}else {
elasticsearch {
hosts => ["192.168.0.103:9200"]
index => "open-web"
template_overwrite => true
}
}
}
我这里是使用filebeta
作为logstash
的输入源 根据日志的level
级别 输出到ES
的不同索引当中
在/usr/local/docker/elk/logstash/config
目录下新建logstash.yml
文件
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: "123456"
xpack.monitoring.elasticsearch.hosts: ["http://192.168.0.103:9200"]
3.3 运行logstash
docker run -it -d -p 4560:4560 -p 5044:5044 --name logstash \ -v /usr/local/docker/elk/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \ -v /usr/local/docker/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \ logstash:7.6.1
4. 下载Filebeat
我在本地启动filebeat
用来监听SpringBoot
项目的日志文件 然后发送到logstash
进行解析后 存储到ES
中
Filebeta下载地址
选择对应的产品和版本号进行下载
4.1 配置filebeat.yml
文件
配合监听日志文件的位置
配置logstash
地址
4.2 启动Filebeat
.\filebeat.exe -e -c .\filebeat.yml
启动SpringBoot项目 产生日志文件
5. 进入Kibana
查看日志信息
点击 Management
点击 Index Patterns
然后点击 Create Index Pattern
选择需要查看的索引 点击 Next Step
选择完毕后 点击 Create Index Pattern
查看日志信息 可在搜索栏进行相关字段的搜索
这里的时间格式看不习惯的话 是可以设置的
具体设置可以查看
kibana设置时间格式