基于Docker安装部署ELK版本7.17.3

Elasticsearch安装

  1. 下载Elasticsearch7.17.3的docker镜像
docker pull elasticsearch:7.17.3
  1. 修改虚拟内存区域大小,否则会因为过小而无法启动:
sysctl -w vm.max_map_count=262144
  1. 创建Elasticsearch 相关挂载目录
mkdir -p /data/elasticsearch/config
mkdir -p /data/elasticsearch/data
mkdir -p /data/elasticsearch/plugins
  1. 创建文件
vi /data/elasticsearch/config/elasticsearch.yml
  1. elasticsearch.yml如下内容:
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
  1. 设置目录权限,否则会报错
cd /data/elasticsearch/
chmod +x config/elasticsearch.yml
  1. 使用如下命令启动Elasticsearch服务,内存小的服务器可以通过ES_JAVA_OPTS来设置占用内存大小:
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-v /etc/localtime:/etc/localtime \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
--restart=always \
-d elasticsearch:7.17.3
  1. 启动时如果发现/usr/share/elasticsearch/data目录没有访问权限,只需要修改/data/elasticsearch/data目录的权限,再重新启动即可;
chmod 777 /data/elasticsearch/data/
  1. 安装中文分词器IKAnalyzer,注意下载与Elasticsearch对应的版本,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
    在这里插入图片描述
  2. 创建存放目录:
cd /data/elasticsearch/plugins
mkdir elasticsearch-analysis-ik
  1. 下载完成后解压到Elasticsearch的/data/elasticsearch/plugins/elasticsearch-analysis-ik目录下;
    在这里插入图片描述

  2. 重新启动服务:

docker restart elasticsearch
  1. 进入运行elasticsearch的docker容器:
docker exec -it elasticsearch  /bin/bash
  1. 配置访问es密码步骤
./bin/elasticsearch-setup-passwords interactive
  1. 开启防火墙:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload

Logstash安装

  1. 下载Logstash7.17.3的docker镜像:
docker pull logstash:7.17.3
  1. 创建Logstash 相关挂载目录:
mkdir /data/logstash
  1. 创建Logstash的配置文件logstash.conf
cd /data/logstash
touch logstash.conf
vim logstash.conf
  1. 放入一下内容:配置文件logstash.conf中output节点下的Elasticsearch连接地址为es:9200
	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 => "%{project}-%{service}"
		user => "elastic"
		password => "**********"
	  }
	}

5.创建创建Logstash的配置文件logstash.yml.

cd /data/logstash
touch logstash.yml
vim logstash.yml

6.logstash.yml文件内容:

http.host: "0.0.0.0"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: *****
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]

在logstash.yml中配置用户名和密码
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: *****
账号密码为es初始化中设置的密码

  1. 启动logstash :
docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \
--link elasticsearch:es \
-v /etc/localtime:/etc/localtime \
-v /data/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /data/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
--restart=always \
-d logstash:7.17.3
  1. 进入容器内部,安装json_lines插件。
docker exec -it logstash /bin/bash
logstash-plugin install logstash-codec-json_lines

在这里插入图片描述

Kibana安装

  1. 下载Kibana7.17.3的docker镜像:
docker pull kibana:7.17.3
  1. 创建kibana挂载的相关目录:
mkdir -p /data/kibana
  1. 创建kibana的配置文件kibana.yml
cd /data/kibana
touch kibana.yml
vim kibana.yml
  1. kibana.yml文件内容:
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
elasticsearch.username: "elastic"
elasticsearch.password: "*****"
i18n.locale: "zh-CN"

在kibana.yml中配置用户名和密码
elasticsearch.username: “elastic”
elasticsearch.password: “*****”
账号密码为es初始化中设置的密码
重启kibana
输入http://ip:5601打开登录页面,使用elastic账号登录.

  1. 使用如下命令启动Kibana服务:
docker run --name kibana -p 5601:5601 \
--link elasticsearch:es \
-e "elasticsearch.hosts=http://es:9200" \
-v /etc/localtime:/etc/localtime \
-v /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--restart=always \
-d kibana:7.17.3
  1. 开启防火墙:
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload

访问地址进行测试:http://ip:5601

Analytics-->Discover-->mall-suite*
### 使用Docker部署ELK 7.17版本 #### 准备工作 为了准备环境,需进入指定的工作目录并创建必要的文件夹。例如,在`/usr/local/docker/`路径下操作: ```bash cd /usr/local/docker/ mkdir logstash cd logstash/ ``` 此部分有助于组织项目结构,便于后续管理各个组件的配置文件和其他资源[^4]。 #### 导入镜像 通过特定命令加载预先下载好的Elasticsearch, Kibana以及Logstash的Docker镜像至本地环境中: ```bash docker load -i elasticsearch_7.17.10.tar docker load -i kibana_7.17.10.tar docker load -i logstash_7.17.10.tar ``` 这些指令会将压缩包中的数据解压到Docker守护进程中,使之成为可用状态[^1]。 #### 验证镜像存在 确认所需版本的镜像已成功加载,可通过查看当前系统的镜像列表来验证: ```bash docker images ``` 预期应能看到类似于如下条目: - `elasticsearch:7.17.5` - `kibana:7.17.5` 这一步骤对于确保接下来的服务启动顺利至关重要[^2]。 #### 编写Docker Compose 文件 在一个名为`docker-compose.yml`的新文件里定义服务组合及其参数设置。该文件通常位于项目的根目录内,并且应该包含有关如何运行每个容器的具体说明。虽然具体细节未在此提供,但一般而言,这个YAML文档应当指明所使用的镜像名称、暴露端口以及其他必要选项以便正确初始化整个堆栈[^3]。 #### 启动服务 一旦完成了上述所有准备工作,则可以在终端中输入以下命令以异步方式启动全部关联的服务实例: ```bash docker-compose up -d ``` 这条语句将会依据之前编写的compose文件自动拉取缺失依赖项(如果有的话),然后依次建立并开启相应的进程。完成后,用户可以通过访问http://localhost:5601地址测试Kibana界面是否正常响应,从而间接证明整体架构已经搭建完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值