物理机(推荐配置):(3,5,7)在多拆业务多搭几套
cpu:e5 2640 v3 *2
内存:64 推荐最大30G(官方)、一般内存的1/2
磁盘:I/O 足够 空间够大 raid 10 推荐 10K
elasticsearch 在7.x 之前,都需要安装JDK环境
elasticsearch在7.x开始,单独提供内置的JDK的安装包,如果下载的是NO JDK 的安装包,则需要安装JDK 环境
我这里因为测试,没有改最大和最小内存,默认最大最小都是1G
如果要修改,则执行下面的
[root@linux-host1 ~]# vim /etc/elasticsearch/jvm.options
22 -Xms2g
23 -Xmx2g #
最小和最大内存限制,为什么最小和最大设置一样大?
https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
[root@ansible-11 es]# tree
.
├── conf
│ ├── elasticsearch.service
│ ├── elasticsearch.yml
│ └── hosts
├── es1.yaml
├── es2.yaml
├── es3.yaml
├── es_class.yaml
├── es.yaml
├── hosts
├── install_es.sh
└── pkg
└── elasticsearch-7.6.2-x86_64.rpm
[root@ansible-11 es]# cat install_es.sh
#!/bin/bash
ansible-playbook -i hosts es.yaml
ansible-playbook -i hosts es1.yaml
ansible-playbook -i hosts es2.yaml
ansible-playbook -i hosts es3.yaml
ansible-playbook -i hosts es_class.yaml
[root@ansible-11 es]# cat es.yaml
---
- hosts: es
vars:
remote_user: root
gather_facts: false
tasks:
- name: 分发es rpm 包
copy: src=pkg/elasticsearch-7.6.2-x86_64.rpm dest=/root
- name: 安装es
yum: name=elasticsearch-7.6.2-x86_64.rpm
- name: 创建es 的数据目录
file: dest=/data/elkdata state=directory
- name: 分发配置文件
copy: src=conf/elasticsearch.yml dest=/etc/elasticsearch/elasticsearch.yml
- name: 替换hosts 解析
copy: src=conf/hosts dest=/etc/hosts
[root@ansible-11 es]# cat es1.yaml
---
- hosts: es1
vars:
remote_user: root
gather_facts: false
tasks:
- name: 修改配置文件node名字
shell: sed -i 's/node-1/node-1-120/' /etc/elasticsearch/elasticsearch.yml
- name: 修改ip
shell: sed -i 's#192.168.0.1#10.1.234.120#' /etc/elasticsearch/elasticsearch.yml
[root@ansible-11 es]# cat es2.yaml
---
- hosts: es2
vars:
remote_user: root
gather_facts: false
tasks:
- name: 修改配置文件node名字
shell: sed -i 's#node-1#node-2-121#' /etc/elasticsearch/elasticsearch.yml
- name: 修改ip
shell: sed -i 's#192.168.0.1#10.1.234.121#' /etc/elasticsearch/elasticsearch.yml
[root@ansible-11 es]# cat es3.yaml
---
- hosts: es3
vars:
remote_user: root
gather_facts: false
tasks:
- name: 修改配置文件node名字
shell: sed -i 's#node-1#node-3-122#' /etc/elasticsearch/elasticsearch.yml
- name: 修改ip
shell: sed -i 's#192.168.0.1#10.1.234.122#' /etc/elasticsearch/elasticsearch.yml
[root@ansible-11 es]# cat es_class.yaml
---
- hosts: es
vars:
remote_user: root
gather_facts: false
tasks:
- name: 给创建的目录划分到组
shell: chown -R elasticsearch.elasticsearch /data/elkdata
- name: 修改启动内存,为无限制
copy: src=conf/elasticsearch.service dest=/usr/lib/systemd/system/elasticsearch.service
- name: reload
shell: systemctl daemon-reload
- name: 启动服务并设置开机自启
systemd: name=elasticsearch state=restarted enabled=yes
- name: sleep 5
shell: sleep 5
- name: 查看状态并将结果注入到elasticsearch变量
shell: ss -nutlp |grep 9200
register: elasticsearch
- name: 将结果输出到控制台
debug: var=elasticsearch.stdout_lines
监控:
curl -sXGET http://10.1.234.120:9200/_cluster/health?pretty=true | grep 'green' |wc -l