前言
目前 github 上有很多集成好的 ELK 开源项目,但是我们本次搭建还是按照最基础的 docker 部署,对于我来说,我本次做的是教学和记笔记的意义,我无需使用 github 上的开源项目来搭建 ELK 环境
开始搭建
创建 Docker Network
1 | docker network create elasticsearch |
这一步是让后续的容器可以选择在同一局域网下,为了后续 Kibana 在连接 ElasticSearch 的时候,能够直接通过容器名访问
ElasticSearch 搭建
1 | docker run -d --name elasticsearch \ |
注释
9200
:用于 HTTP 通信9300
:用于节点之间的通信-e "discovery.type=single-node"
:设置 Elasticsearch 以单节点模式运行-e "ES_JAVA_OPTS=-Xms512m -Xmx2g"
:设置 JVM 的内存,因为我的实验机子内存较小,所以压缩一下 ES 的性能,本身也只是教学目的-e "xpack.security.enabled=false"
:关闭安全访问开关,防止通过 HTTP 访问时被拒绝,只能通过 HTTPS 访问-e "xpack.security.http.ssl.enabled=false"
:关闭 SSL 验证,防止通过 HTTP 访问时被拒绝,只能通过 HTTPS 访问
Kibana 搭建
1 | docker run -d --name kibana \ |
注释
5601
:用于 HTTP 访问 Kibana-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200""
:用于 Kibana 访问 ElasticSearch 实例,由于是同一个 Docker Network 下,直接使用容器名 + 端口的形式即可访问-e "I18N_LOCALE=zh-CN"
:将 Kibana 的语言设置为中文
检查
检查容器运行情况
1 | docker ps -a |
如下图,则表示容器运行正常:
检查服务是否可访问
- 检查 ElasticSearch 服务情况
1
curl localhost:9200
结果如图,则表示运行正常:
- 检查 Kibana 服务情况
1
curl localhost:5601
结果如图,则表示运行正常:
配置 Nginx 反向代理(非必须)
由于我的实验机子,仅开启了必要端口访问,所以我还需要配置 Nginx 进行反向代理访问我的服务,如果你的机子开启了 8200
和 5601
端口访问,则可忽略此步骤
- 增加 Nginx 代理 ElasticSearch 服务的配置文件
1
vim /etc/nginx/conf.d/elasticsearch.conf
写入如下内容:
1 | server { |
- 增加 Nginx 代理 Kibana 服务的配置文件
1
vim /etc/nginx/conf.d/kibana.conf
写入如下内容:
1 | server { |
重载配置文件
1
2
3
4
5检查配置文件语法是否正确
nginx -t
重载配置文件
nginx -s reload浏览器访问
结语
到此,EFK 中的 EK 部分已经搭建完毕