关闭虚拟机防火墙
systemctl disable firewalld
chkconfig iptables off
1、先在linux上安装docker,以方便拉取ELK镜像
yum -y install docker
2、启动docker
systemctl start docker
3、查看docker状态
systemctl status docker

4、分别拉取elasticsearch、Kibana、Logstash镜像文件(通过docker
images来查看)
docker pull elasticsearch:7.6.1
docker pull kibana:7.6.1
docker pull logstash:7.6.1
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker network create elk_network
#由于es分词器很垃圾,所以要用插件ik分词器自定义镜像
首先在home文件夹下,新建一个ik文件夹
mkdir ik
进入文件夹后新建文件Dockerfile(严格区分大小写)
从网上下载一个wget的rpm文件,因为构建镜像的时候会用到
下载wget-1.14-18.el7_6.1.x86_64.rpm(自行百度)
一定要放在和Dockerfile文件同目录下
编辑Dcokerfile文件
vim Dockerfile
Dockerfile文件内容:
# Docker image of elasticsearch with ik
tokenizer
# VERSION 7.6.1
# Author: SenWang
#基础镜像使用elasticsearch:7.6.1
FROM elasticsearch:7.6.1
ADD wget-1.14-18.el7_6.1.x86_64.rpm /home/ik/
RUN rpm -ivh
/home/ik/wget-1.14-18.el7_6.1.x86_64.rpm
#作者
MAINTAINER SenWang wangsen961225@163.com
#es插件目录
ENV ES_PLUGINS_PATH
/usr/share/elasticsearch/plugins
#定义存放ik分词器文件的目录
ENV ik_SRC_COMPILE_PATH /opt/ik_build
#创建存放ik分词器文件的目录
RUN mkdir $ik_SRC_COMPILE_PATH && \
#进入编译ik分词器文件的目录
cd $ik_SRC_COMPILE_PATH && \
#下载ik包
wget
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
&& \
#解压zip包
unzip elasticsearch-analysis-ik-7.6.1 -d analysis-ik&& \
#构建成功后,将文件移动到插件目录
mv analysis-ik $ES_PLUGINS_PATH/
然后运行(注意后面有个点)
docker build -t elasticsearch-with-ik:7.6.1 .
(经过漫长的等待后…………….)
这时候查看镜像
docker images

#启动es ,
docker run -d —name elasticsearch —privileged=true —net elk_network
-p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:7.6.1
5、我在docker安装目录下创建了kibana目录,用来存放kibana的所有配置
kibana.yml(文件内容)
i18n.locale: “zh-CN”
elasticsearch.hosts:
[“http://192.168.1.59:9200“]
server.port: 5601
server.host: “0.0.0.0”
6、给配置文件赋权限
chmod 777 kibana.yml
7、启动kibana
记得挂载配置文件目录
docker run -d —name kibana —privileged=true —net elk_network -p
5601:5601 -v /home/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml/
kibana:7.6.1
8、我在docker安装目录下创建了logstash目录,用来存放logstash的所有配置
里面新建两个文件:logstash.yml conf.d(文件夹,里面放一个test.conf)
logstash.yml (文件内容)
path.config:
/usr/share/logstash/conf.d/*.conf
path.logs: /etc/docker/logstash
conf.d/test.conf (文件内容)
input {
tcp {
mode => “server”
host => “0.0.0.0”
port => 5044
codec => json_lines
type=>”TcpLog”
}
}
filter{
date{
match =>[“logDateTime”,”yyyyMMddHHmmss +0000”,”UNIX_MS”]
target =>”@timestamp”
timezone =>”UTC”
}
ruby {
code => “event.set(‘timestamp’, event.get(‘@timestamp’).time.localtime + 8_60_60)”
}
ruby {
code => “event.set(‘@timestamp’,event.get(‘timestamp’))”
}
mutate {
remove_field => [“timestamp”]
}
}
output {
if [level] == “INFO” {
elasticsearch {
hosts => “192.168.1.59:9201”
index => “zhada-saas”
}
}
}
9、给配置文件赋权限chmod 777 文件名
chmod 777 logstash.yml conf.d
10、启动 Logstash
记得挂载上面两个目录
(如果需要端口映射,则加上-p 5055:5055/udp)之类的
docker run -it -d —privileged=true -p
5044:5044 —name logstash —net elk_network -v
/home/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v
/home/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.6.1
11、查看容器状态
docker ps -a

12、登录kibana查看
192.168.1.58:5601
