es单节点

先启动容器。将config文件的下目录拷贝出来

docker cp es8:/usr/share/elasticsearch/config ./

拷贝完成后将其映射到容器内。方便后续修改配置

version: '3.8'
networks:
  common:
    name: mynet
services:
  nexus3:
    image: elasticsearch:8.9.2
    container_name: es8
    restart: always
    # 使用该参数,container内的root拥有真正的root权限。
    privileged: true
    networks:
      common:
        ipv4_address: 192.168.0.13
    ports:
      - "6210:9200"
      - "6211:9300"
    volumes:
      # 数据和查询映射
      - ./es-data:/usr/share/elasticsearch/data
      - ./es-plugins:/usr/share/elasticsearch/plugins
      - ./es-config:/usr/share/elasticsearch/config
    environment:
      - ES_JAVA_OPTS=-Xms512m -Xmx1024m
      - discovery.type=single-node
      - ELASTIC_PASSWORD=your_password

这里设置的密码仅仅是elastic超级管理员的密码。而用于kibana等的密码还是需要进入容器单独设置(因为8开始默认xpack.security.enabled: true)

进入容器后,进入当前目录的bin目录(/usr/share/elasticsearch/bin)。执行

./elasticsearch-setup-passwords interactive

开始重置默认账户的密码。

内置六个用户:

   elastic:内置超级用户

apm_system:

   kibana_system:仅可用于kibana用来连接elasticsearch并与之通信, 不能用于kibana登录

   logstash_system:用于Logstash在Elasticsearch中存储监控信息时使用

beats_system:

remote_monitoring_user:

分别重置这六个账户的密码

kibana-es可视化页面

先启动容器。将config文件的下目录拷贝出来

docker cp kibana8:/usr/share/kibana/config ./

拷贝完成后将其映射到容器内。方便后续修改配置

version: '3.8'
networks:
  common:
    name: mynet
services:
  kibana:
    image: kibana:8.9.2
    container_name: kibana8
    restart: "no"
    # 使用该参数,container内的root拥有真正的root权限。
    privileged: true
    networks:
      common:
        ipv4_address: 192.168.0.16
    ports:
      - "6200:5601"
    environment:
      ELASTICSEARCH_HOSTS: http://es8:9200 #设置访问elasticsearch的地址
      I18N_LOCALE: zh-CN
    volumes:
      # 配置和插件映射
      - ./kibana-config:/usr/share/kibana/config
      - ./kibana-plugins:/usr/share/kibana/plugins

修改配置文件

server.host: "192.168.0.16"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://es8:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 这里需要使用kibana_system这个账户,不能使用超级管理员,不然报错
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_password"

# 这些主要是启动的一些告警,配置上不再告警。还有一个session不安全连接的告警,也就是需要配置https连接,先不搞了
xpack.reporting.roles.enabled: false
# 使用32个字符或更长的任何文本字符串作为加密密钥
xpack.security.encryptionKey: "c2LkuJzopb/phY3nva7nnJ/otLnlirI="
# 设置多次重启和kibana的多个实例之间保留相同的密钥
xpack.reporting.encryptionKey: "c2LkuJzopb/phY3nva7nnJ/otLnlirI="
# 注意:参数值至少32位,否则启动会报错提示
xpack.encryptedSavedObjects.encryptionKey: "c2LkuJzopb/phY3nva7nnJ/otLnlirI="

分词器安装

原生分词器对于中文不太支持,需要额外安装支持中文的分词器插件

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases