【ES三周年】 docker搭建elk初体验

2023-02-23 15:43:49 浏览数 (1)

docker搭建elk初体验

前言:在平日的开发生活中,沉浸与MySQL或Redis之类,关系型数据库或者非关系型数据库时,常会思考像商城项目中的检索,都是用什么数据库实现的呢,偶尔的机会,基础到了ELK搭建而成的日志系统,细致了解后诞生了与Elasticsearch的一见钟情。

这篇文章将着重于我对ELK的搭建初体验,基于部署和安装的方便,也为了巩固Docker相关的知识点的学习和熟练运行,尝试在使用Docker来搭建整个ELK系统。

1、安装ES

1.1、从docker仓库中拉取es镜像文件
代码语言:shell复制
docker pull elasticsearch:7.7.1
1.2、创建本地文件夹并授权。

这里注意,在使用容器外部挂载文件时,一定要给当前文件授予相关的权限,否则启动容器会报错,无法访问文件。

代码语言:shell复制
mkdir -p /wuming/elk/es/{config, data, logs}

chown -R 1000:1000 /wuming/elk/es
1.3、创建elasticsearch.yml并编写配置
代码语言:shell复制
cd /wuming/elk/es/config

touch elasticsearch.yml

# 配置内容

cluster.name: "my-es"

network.host: 0.0.0.0

http.port: 9200
1.4、启动es容器
代码语言:shell复制
docker run -it -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -e "discovery.type=single-node" --restart=always 

-v /wuming/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 

-v /wuming/elk/es/data:/usr/share/elasticsearch/data 

-v /wuming/elk/es/logs:/usr/share/elasticsearch/logs 

elasticsearch:7.7.1

这样启动后,执行docker命令查看容器的状态。容器为运行状态则表示es容器创建成功。

2、安装kibana

kibana是操作es的一个可视化工具,在elk作为日志系统时,通过kibana来检索和查看日志系统中的日志信息

2.1、拉取kibana镜像
代码语言:shell复制
docker pull kibana:7.7.1
2.2、获取es的虚拟ip
代码语言:shell复制
# 获取es的ip 172.17.0.3

docker inspect --format '{{ .NetworkSettings.IPAddress }}' es
2.3、创建配置文件
代码语言:shell复制
mkdir -p /wuming/elk/kibana/

vi /wuming/elk/kibana/kibana.yml

# Default Kibana configuration for docker target

server.name: kibana

server.host: "0"

elasticsearch.hosts: ["http://172.17.0.3:9200"]

xpack.monitoring.ui.container.elasticsearch.enabled: true
2.4、创建容器
代码语言:shell复制
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 /wuming/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.1

3、安装logstash

logstash用于项目日志信息的获取并保存到ES中。

3.1、拉取容器
代码语言:shell复制
# 拉取镜像

docker pull logstash:7.7.1
3.2、创建配置文件
代码语言:shell复制
# 创建配置文件

mkdir /wuming/elk/logstash/conf.d

cd /wuming/elk/logstash

# 编辑文件信息

vi logstash.yml

path.config: /usr/share/logstash/conf.d/*.conf

path.logs: /var/log/logstash
3.3、编辑配置文件
代码语言:shell复制
cd /wuming/elk/logstash/conf.d

vi test.conf



# 收录springboot项目日志配置 test.conf

input {

    tcp {

        port => 5044

    }

}



output {

    elasticsearch {

        hosts => ["172.17.0.3:9200"]

    }

    stdout {}

}

# 以下为filebeat的配置

input {

    beats {

        port => 5044

        codec => "json"

    }

}

# 保存日志到es中

output {

    elasticsearch { hosts => ["172.17.0.3:9200"] }

    stdout { codec => rubydebug }

}
3.4、安装logstash
代码语言:shell复制
docker run -it -d -p 5044:5044 -p 5045:5045 -p 5046:5046 --name logstash 

-v /wuming/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml 

-v /wuming/elk/logstash/conf.d/:/usr/share/logstash/conf.d/ 

logstash:7.7.1

这样,只需要在项目的日志文件中配置日志输出的服务器地址后,就可以在ELK上查看日志信息啦。

以上elk平台全docker搭建完成,后续跟进filebeat

0 人点赞