参考文章: http://www.macrozheng.com/#/deploy/mall_deploy_docker
文章中是Linux,我用的是Ubuntu
Elasticsearch安装
docker pull elasticsearch:7.6.2
# 运行
docker run --restart=always -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:7.6.2
# 给目录权限
chmod 777 /mydata/elasticsearch/data/
# 安装插件中文分词器IKAnalyzer
docker exec -it elasticsearch /bin/bash
#此命令需要在容器中运行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
exit
docker restart elasticsearch
# 开放9200端口
sudo iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
访问 http://192.168.2.109:9200/ 会返回信息,如果没返回,则安装错误
Logstash安装
docker pull logstash:7.6.2
创建/mydata/logstash
目录,并创建配置文件 logstash.conf
mkdir /mydata/logstash
touch logstash.conf
拷贝如下配置到 logstash.conf
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
type => "debug"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4561
codec => json_lines
type => "error"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4562
codec => json_lines
type => "business"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4563
codec => json_lines
type => "record"
}
}
filter{
if [type] == "record" {
mutate {
remove_field => "port"
remove_field => "host"
remove_field => "@version"
}
json {
source => "message"
remove_field => ["message"]
}
}
}
output {
elasticsearch {
hosts => "es:9200"
index => "mall-%{type}-%{+YYYY.MM.dd}"
}
}
启动
docker run --restart=always --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \
--link elasticsearch:es \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:7.6.2
# 安装json_lines插件
docker exec -it logstash /bin/bash
#此命令需要在容器中运行
logstash-plugin install logstash-codec-json_lines
exit
docker restart logstash
Kibana安装
docker pull kibana:7.6.2
# 启动
docker run --restart=always --name kibana -p 5601:5601 \
--link elasticsearch:es \
-e "elasticsearch.hosts=http://es:9200" \
-d kibana:7.6.2
# 开放5601端口
sudo iptables -I INPUT -p tcp --dport 5601 -j ACCEPT
安装完成 http://192.168.3.101:5601 访问