# file: Dockerfile
# 搭建 elasticsearch + kibana 的环境镜像
# Version: 0.0.1
# 基于 elasticsearch-6.2.3, kibana-6.2.3
# 基于centos镜像
FROM centos:latest
# 创建镜像的用户
LABEL maintainer="timking.nf@foxmail.com"
# 指定环境变量
ENV REFRESHED_AT 2018-04-12
ENV LANG en_US.UTF-8
ENV ELASTICSEARCH_PATH /opt/elasticsearch
ENV KIBANA_PATH /opt/kibana
ENV JAVA_HOME /opt/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$ELASTICSEARCH_PATH/bin:$KIBANA_PATH/bin:$PATH
# 修改root密码
RUN echo "root:txzing@1234" | chpasswd
# 创建用户
RUN adduser unix
# 添加密码
RUN echo "unix:txzing@1234" | chpasswd
# 添加wget命令
RUN yum install -y wget
# 添加netstat, ifconfig 等网络命令
RUN yum install -y net-tools
# 添加vim
RUN yum install -y vim
# 下载JDK
RUN wget -P/opt --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" <http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz>
# 下载elk
RUN wget -P/opt <https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz>
# 下载kibana
RUN wget -P/opt <https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz>
# 解压文件
RUN tar zxvf /opt/jdk-8u161-linux-x64.tar.gz -C /opt
RUN tar zxvf /opt/elasticsearch-6.2.3.tar.gz -C /opt
RUN tar zxvf /opt/kibana-6.2.3-linux-x86_64.tar.gz -C /opt
# 创建软连接
RUN ln -s /opt/elasticsearch-6.2.3 /opt/elasticsearch
RUN ln -s /opt/kibana-6.2.3-darwin-x86_64 /opt/kibana
# 修改文件权限
RUN chown -R unix /opt/*
# 修改配置文件, 允许elasticsearch 和 kibana 被其他机器访问
RUN echo "network.host: 0.0.0.0" >> /opt/elasticsearch/config/elasticsearch.yml
RUN echo 'server.host: "0.0.0.0"' >> /opt/kibana/config/kibana.yml
# 开放端口
EXPOSE 9200
EXPOSE 5601
EXPOSE 9300
执行命令创建镜像 docker build -t"txz/elk:latest"
创建完成之后使用命令创建容器
docker run -itd --privileged=true -p 9300:9300 -p 9200:9200 -p 5601:5601 --name elk <image_id> /usr/sbin/init
创建完成之后进入容器 docker exec -it elk /bin/bash
进入容器之后安装x-pack插件
elasticsearch-plugin install x-pack
kibana-plugin install x-pack
完成之后启动elasticsearch $ELASTICSEARCH_PATH/bin/elasticsearch
设置密码, 注意需要密码保存起来
$ELASTICSEARCH_PATH/bin/x-pack/setup-passwords auto
修改kibana目录下config/kibana.yml
elasticsearch.username: "kibana"
elasticsearch.password: "<pwd>" 填入上一步获取到的kibana账户的密码
启动kibana $KIBANA_PATH/bin/kibana
开启成功之后测试命令,注意开启了x-pack之后需要设置Authorization. Basic 后的内容为
base64(kibana:wQCiFkNKxrIKyhNWDC1v) 的内容
curl -XGET "[<http://localhost:9200/_count?pretty>](<http://localhost:9200/_count?pretty>)" -H"Content-Type: application/json Authorization: Basic ZWxhc3RpYzpyb290dHh6" -d'{"query":{"match_all":{}}}'
如果正确返回,说明安装成功
通过访问 http://localhost:5601/ 访问kibana