ES 服务部署

本贴最后更新于 1624 天前,其中的信息可能已经斗转星移

服务器设置

编辑 /etc/sysctl.conf vm.max_map_count=262144 vm.swappiness=1
配置生效:sysctl -p

单节点

单节点适用于测试环境,没有做数据持久化。 这里的镜像统一采用 7.8.0,注意 es 的版本与 kibana 的版本保持一致。

前提:安装好docker
docker create --network host --name elasticsearch -e discovery.type=single-node -v /etc/localtime:/etc/localtime --restart always elasticsearch:7.8.0
docker start elasticsearch

多节点

前提:安装好docker,docker-compose 服务器内存:最好16g或者32g,cpu: 4h或者8h 服务器磁盘:不要采用nas,最好是SSD.磁盘大小根据业务量,建议至少1t+,提前做好监控和扩容。
创建文件夹: mkdir /ELASTIC touch docker-compose.yml vi docker-compose.yml
version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - data01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - elastic es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0 container_name: es02 environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - data02:/usr/share/elasticsearch/data networks: - elastic es03: image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0 container_name: es03 environment: - node.name=es03 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - data03:/usr/share/elasticsearch/data networks: - elastic volumes: data01: driver: local data02: driver: local data03: driver: local networks: elastic: driver: bridge
镜像源在国外,所以拉取会比较慢

设置容器日志清理脚本

#!/bin/sh echo "当前容器日志大小" find /var/lib/docker/containers -type f -name "*.log" -exec ls -lh {} \; echo "5s后开始清空,取消请ctrl+c" sleep 5 echo "清空容器日志中" for i in `find /var/lib/docker/containers -type f -name "*.log"`; do cat /dev/null >$i; done sleep 3 echo "清空后容器日志大小" find /var/lib/docker/containers -type f -name "*.log" -exec ls -lh {} \; sleep 3 echo "完成"
chmod +x /data/clearlog.sh echo '0 3 * * * root /data/clearlog.sh' >> /etc/crontab

旧数据索引

删除索引就能删除数据

例 选择删除一个索引: curl -XDELETE "127.0.0.1:9211/zhongtaifluentd-20200723" 查看集群的健康状态: curl 'localhost:9211/_cat/health?v' 查看所有索引: curl 'localhost:9212/_cat/indices?v'

设置只保留近一周的索引

#!/bin/bash # @Author: richard # @Date: 2017-08-11 17:27:49 # @Last Modified by: richard # @Last Modified time: 2017-08-11 18:04:58 time=$(date -d '-7days' +'%Y%m%d') curl -XDELETE http://127.0.0.1:9211/*-${time}
chmod +x /data/deleteins.sh echo '0 3 * * * root /data/deleteins.sh' >> /etc/crontab
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 203 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...