docker部署es,kibana

es安装

创建网络【需要部署kibana容器为了互联】

docker network create es-net

拉取镜像

docker pull elasticsearch:7.14.2

创建挂载点目录

mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins

修改权限

chmod 777  /usr/local/es/data
chmod 777  /usr/local/es/config
chmod 777  /usr/local/es/plugins

部署单点es

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:7.14.2

修改es配置文件

//进入容器
docker exec -it es /bin/bash
//找到配置文件
cd config
//追加配置
echo 'xpack.security.enabled: false' >> elasticsearch.yml

 

重启es

docker restart es

验证es启动成功 http://ip:9200

 安装kibana

docker pull kibana:7.14.2

创建挂载点目录

mkdir -p /usr/local/kibana/config /usr/local/kibana/data

修改权限

chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

部署kibana

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:7.14.2

测试kibana安装 http://ip:5601

 

安装分词器

//进入es容器
docker exec -it es /bin/bash
//在线安装ik分词器 版本需与es一致

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.2/elasticsearch-analysis-ik-7.14.2.zip

 

创建索引指定字段使用时候如下

PUT /your_index_name  
{  
  "mappings": {  
    "properties": {  
      "title": {  
        "type": "text",  
        "analyzer": "ik_max_word",  
        "search_analyzer": "ik_smart"  
      }  
    }  
  }  
}

 

 es设置账号密码

docker exec -it es /bin/bash
//修改密码需要 elasticsearch.yaml配置文件改为true并重启es
vi /config/elasticsearch.yaml
//修改xpack.security.enabled: true
exit;
//重启es
docker restart es
//进入es
docker exec -it es /bin/bash
//修改密码 cd /usr/share/elasticsearch/bin 
./elasticsearch-setup-passwords interactive

依次设置用户:elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user共6个用户。
内部用户X-Pack 安全有三个内部用户(_system、_xpack和_xpack_security),负责在 Elasticsearch 集群中进行的操作。

 修改密码1:

curl -XPOST -u elastic "localhost:9200/_security/user/elastic/_password" -H 'Content-Type: application/json' -d'{"password" : "abcd1234"}'

修改密码2:

修改config/elasticsearch.yml;注释掉 xpack.security.enabled: true这一行;
重启ES,查看下索引,发现多了一个.security-7
删除掉.security-7索引并重新设置密码

kibana配置elasticsearch密码

docker exec -it kibana /bin/bash
vi /config/kibana.yml

添加账号密码,这里修改配置文件最好把es地址指定对应的ip地址

elasticsearch.username: "elastic"
elasticsearch.password: "123456"

 

重启kibana 

docker restart kibana

 

 

备用1:重置es超级管理员密码

curl -u test_admin -XPUT  -H 'Content-Type: application/json' 'http://localhost:9200/_xpack/security/user/elastic/_password' -d '{"password" : "新密码"}'

验证密码

curl localhost:9200 -u elastic

 备用2:查看报错日志(-f跟踪日志)

docker logs kibana

 备用3:查看docker虚拟机中es地址

docker inspect elasticsearch |grep IPAddress

 备用4:单机docker-compose.yml

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
    container_name: es
    environment:
      - discovery.type=single-node  # 配置为单机模式
      - xpack.security.enabled=true
      - xpack.security.transport.ssl.enabled=true
      - bootstrap.memory_lock=true
      - indices.query.bool.max_clause_count=8192
      - ELASTIC_PASSWORD=123456
      - "ES_JAVA_OPTS=-Xms8g -Xmx8g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./data:/usr/share/elasticsearch/data
      - ./logs:/usr/share/elasticsearch/logs
      - ./plugins:/usr/share/elasticsearch/plugins
      #- ./config:/usr/share/elasticsearch/config
    ports:
      - 9200:9200
    networks:
      - es-net
    deploy:
      resources:
        limits:
          memory: 16g

  kibana:
    image: docker.elastic.co/kibana/kibana:8.15.0
    container_name: kibana
    environment:
      - ELASTICSEARCH_HOSTS=https://es:9200  # 指向单机节点,使用 https 协议
      - ELASTICSEARCH_USERNAME=elastic
      - ELASTICSEARCH_PASSWORD=123456
      - ELASTICSEARCH_SSL_VERIFICATIONMODE=none
    ports:
      - 5601:5601
    networks:
      - es-net
    depends_on:
      - elasticsearch
    deploy:
      resources:
        limits:
          memory: 1g

networks:
  es-net:
    external: true

 

posted @ 2024-01-23 18:47  白玉神驹  阅读(134)  评论(0)    收藏  举报