防火墙
1、查看防火墙状态
sudo systemctl status ufw
2、开启防火墙
sudo systemctl start ufw
3、关闭防火墙
sudo systemctl stop ufw
4、开机禁止开启防火墙
sudo systemctl disabled ufw
5、开启自启防火墙
sudo systemctl enabled ufw
Elasticsearch
1、安装指定版本 比如 8.2.0
docker pull elasticsearch:8.2.0
2、查看是否拉取成功
docker images
3、选择挂载硬盘创建四个目录,并设置目录权限为可读写。
mkdir es_docker
cd es_docker
mkdir config data logs plugins
chmod -R 777 config data logs plugins
4、先启动一个简单的容器
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.2.0
这里记录一下进入容器的方式
先查看正在运行的容器id。再docker exec -it <container_id>或者<container/name> /bin/bash。输入exit即可退出容器
5、将容器里的config文件夹的东西拷贝到宿主机上。
sudo docker cp elasticsearch:/usr/share/elasticsearch/config /home/niooooo/es_docker
6、删除临时容器
docker stop elasticsearch
docker rm -f elasticsearch
7、修改elasticsearch.yml文件
关闭xpack认证机制(无需账号密码登陆)、关闭SSL认证。
8、构建容器命令
docker run --name es --privileged=true -p 9300:9300 -p 9200:9200 -e ES_JAVA_OPTS="-Xmx512m -Xmx512m" -e "discovery.type=single-node" -v /home/niooooo/es_docker/config:/usr/share/elasticsearch/config -v /home/niooooo/es_docker/data:/usr/share/elasticsearch/data -v /home/niooooo/es_docker/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.2.0
# 分行就是长这样 但需要copy上面到虚拟机中
docker run --name es --privileged=true -p 9300:9300 -p 9200:9200
-e ES_JAVA_OPTS="-Xmx512m -Xmx512m"
-e "discovery.type=single-node"
-v /home/niooooo/es_docker/config:/usr/share/elasticsearch/config
-v /home/niooooo/es_docker/data:/usr/share/elasticsearch/data
-v /home/niooooo/es_docker/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch:8.2.0
9、使用docker ps -a检查es是否正常启动 并且启动es容器,然后使用docker logs来查看该容器的日志。
如果docker ps没有输出内容,而docker ps -a输出内容,表明:
- Elasticsearch 容器没有输出任何日志信息。
- Elasticsearch 容器没有正确启动。
- Elasticsearch 容器的日志输出被重定向到了其他地方。
- 于是需要docker start es启动一下容器
docker ps
docker ps -a
docker start <container_id>
docker ps
下面是关于观看启动日志。
docker logs es
以上是无需账号密码的情况下的Elasticsearch的配置。接下来我就需要做一下关于要账号密码登陆的笔记。首先进入先前创建好的 es_docker/config/elasticsearch.yml中进行修改
改好后需要重启这个容器
docker stop es
docker rm es
docker run --name es --privileged=true -p 9300:9300 -p 9200:9200 -e ES_JAVA_OPTS="-Xmx512m -Xmx512m" -e "discovery.type=single-node" -v /home/niooooo/es_docker/config:/usr/share/elasticsearch/config -v /home/niooooo/es_docker/data:/usr/share/elasticsearch/data -v /home/niooooo/es_docker/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.2.0
进入容器中的bin下设置账号密码
需要注意的时,进去后需要12次密码,其中6次设置6次确认。默认账号是elastic。
参考文献:es设置账号密码及重制密码 --- 2022-07-01 - 简书
./elasticsearch-setup-passwords interactive
10、卸载镜像
docker rmi image <image_id>/<image_name>
最后安装好之后通过IP:PORT即可访问。
Kibana
1、安装指定版本 比如8.2.0
docker pull kibana:8.2.0
2、查看是否拉取成功
docker images
3、选择挂载硬盘创建四个目录,并设置目录权限为可读写。
mkdir kibana_docker
cd kibana_docker
mkdir config
chmod -R 777 config
4、启动临时容器(为了拷贝文件)
docker run --name ki -p 5601:5601 -d kibana:8.2.0
5、拷贝文件
sudo docker cp ki:/usr/share/kibana/config /home/niooooo/kibana_docker
6、删除临时容器
docker stop ki
docker rm -f ki
7、修改拷贝后的yml
IP为安装Elasticsearch的机器地址。
这里如果有设置账号密码。并且由于页面打开都是英文。所以多设置以下三行。
elsaticseach.username: "kibana_system"
elasticseach.password: "..."
i18n.locale: "zh-CN"
8、启动容器
docker run --name kibana --privileged=true -p 5601:5601 -v /home/niooooo/kibana_docker/config:/usr/share/kibana/config -d kibana:8.2.0
# 分行就是长这样 但需要copy上面到虚拟机中
docker run --name kibana --privileged=true \
-p 5601:5601 \
-v /home/niooooo/kibana_docker/config:/usr/share/kibana/config \
-d kibana:8.2.0
9、访问Kibana
http:IP:5601。需要注意的是虽然上面填写的账号是kibana_system。但是登录的话账号是elastic。这是个超级管理员的账号,但是不允许yml中直接配置账号为elastic,否则会报错。
这里如果配置了Elasticsearch的账号密码的话需要验证。后面需要一个六位Code,输入以下命令即可查看。
docker logs <contains_id>或者<contaions_name>
Logstash
1、拉取镜像
docker pull logstash:8.2.0
2、查看是否拉取成功
docker images
3、创建目录 赋予权限
mkdir logstash_docker
chmod 777 -R logstash_docker
4、开启临时容器
docker run --name=logstash -d logstash:8.2.0
5、拷贝文件 并且赋予权限
sudo docker cp logstash:/usr/share/logstash/config /home/niooooo/logstash_docker
sudo docker cp logstash:/usr/share/logstash/pipeline /home/niooooo/logstash_docker
suto chmod -R 777 config pipeline
4、配置config/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.217.128:9200" ]
# 如果有配置Elasticseacher账号密码的情况下还需要下面两条配置语句
xpack.monitoring.elasticsearch.username: "elastic"
xpack.monitoring.elasticsearch.password: "..."
5、配置pipeline/logstash.conf
input {
#beat { port => 5044 } 这样子我是会开启后秒关闭的
file {
#标签
type => "systemlog-localhost"
#采集点
path => "/var/log/messages"
#开始收集点
start_position => "beginning"
#扫描间隔时间,默认是1s,建议5s
stat_interval => "5"
}
}
output {
elasticsearch {
hosts => ["http://192.168.217.128:9200"]
index => "logstash-system-localhost-%{+YYYY.MM.dd}"
# 如果有配置Elasticseacher账号密码的情况下还需要配置下面两条语句
user => "elastic"
password => "..."
}
}
6、启动容器
docker run -it --name=logstash -p 9600:9600 -p 5044:5044 -v /home/niooooo/logstash_docker/config:/usr/share/logstash/config -v /home/niooooo/logstash_docker/pipeline:/usr/share/logstash/pipeline -d logstash:8.2.0
Elasticsearch-Head
注:高版本的Elasticsearch似乎不支持此可视化了。所以8.x以上的版本就不用安装了。亲测8.2.0连接不上此可视化界面。如果你们测试可以的话麻烦评论区探讨一下。
1、拉取镜像
docker pull mobz/elasticsearch-head:5
2、查看镜像是否拉取成功
docker images
3、在使用前还需要修改Es的yml并重启
#开启跨域支持
http.cors.enabled: true
#允许所有人跨域访问
http.cors.allow-origin: "*"
4、 启动容器
docker run -d --name es-header -p 9100:9100 mobz/elasticsearch-head:5
5、访问网址
①未设置Elasticseach密码的情况下直接访问:IP:9100文章来源:https://www.toymoban.com/news/detail-646913.html
②设置密码的情况下访问:IP:9100/?auth_user=elastic&auth_password=密码文章来源地址https://www.toymoban.com/news/detail-646913.html
到了这里,关于【Linux】Docker部署Elasticsearch镜像环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!