Ansible部署Roles.tasks文件【请根据实际情况修改完善】:
基础优化tasks:
- name: 修改配置文件 limits.conf
lineinfile:
dest: '/etc/security/limits.conf'
line: '* {{ item.value }}'
regexp: '.*{{ item.value }}.*'
state: present
with_items:
- { value: 'soft nofile 65536' }
- { value: 'hard nofile 65536' }
- { value: 'soft nproc 2048' }
- { value: 'hard nproc 4096' }
- name: 修改配置文件 sysctl.conf
lineinfile:
dest: '/etc/sysctl.conf'
line: '{{ item.value }}'
regexp: '^{{ item.value }}.*'
state: present
with_items:
- { value: 'vm.max_map_count = 655360' }
- { value: 'vm.swappiness = 1' }
- name: 让内核参数立即生效
shell: 'sysctl -p'
ignore_errors: yes
Elasticsearch部署tasks:
- name: Installed OpenJDK-1.8.0
yum:
name: java-1.8.0-openjdk
state: present
- name: Installed Java-devel
yum:
name: java-devel
state: present
- name: Installed Elasticsearch
yum:
name: https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-x86_64.rpm
state: present
- name: Configure Elasticsearch Server
lineinfile:
dest: '/etc/elasticsearch/elasticsearch.yml'
line: '{{ item.key }}: {{ item.value }}'
regexp: '^{{ item.key }}.*'
state: present
with_items:
- { key: "cluster.name", value: "{{ cluster_name }}" }
- { key: "node.name", value: "{{ inventory_hostname }}" }
- { key: "network.host", value: "{{ inventory_hostname }}" }
- { key: "http.port", value: "9200" }
- { key: "http.cors.enabled", value: "true" }
- { key: "http.cors.allow-origin", value: "'*'" }
- { key: "discovery.seed_hosts", value: "['192.168.169.88', '192.168.169.90']" }
- { key: "cluster.initial_master_nodes", value: "['192.168.169.88', '192.168.169.90']" }
- { key: "discovery.zen.minimum_master_nodes", value: "1" }
- { key: "indices.memory.index_buffer_size", value: "20%" }
- { key: "indices.query.bool.max_clause_count", value: "100000000" }
- { key: "path.data", value: "/home/elasticsearch/data" }
- { key: "path.logs", value: "/home/elasticsearch/logs" }
- name: Configure jvm.options
lineinfile:
dest: '/etc/elasticsearch/jvm.options'
regexp: "{{ item.old }}"
line: "{{ item.new }}"
with_items:
- {old: '-Xms',new: '-Xms1g' }
- {old: '-Xmx',new: '-Xmx1g' }
#Elasticsearch要求Xms和Xmx大小需要一致
- name: Chown /etc/elasticsearch/
file: path=/etc/elasticsearch owner=elasticsearch group=elasticsearch
- name: Chown /usr/share/elasticsearch/
file: path=/usr/share/elasticsearch/ owner=elasticsearch group=elasticsearch
- name: Mkdir /home/elasticsearch/
file: path=/home/elasticsearch state=directory
- name: Chown /home/elasticsearch/
file: path=/home/elasticsearch owner=elasticsearch group=elasticsearch
- name: Start Elasticsearch Server
systemd: name=elasticsearch state=started enabled=yes
Kibana部署tasks:
- name: Installed Kibana
yum:
name: https://mirrors.huaweicloud.com/kibana/7.8.0/kibana-7.8.0-x86_64.rpm
state: present
- name: Configure Kibana Server
lineinfile:
path: /etc/kibana/kibana.yml
regexp: "{{ item.old }}"
line: "{{ item.new }}"
with_items:
- {old: 'server.port',new: ' server.port: 5601' }
- {old: 'server.host',new: ' server.host: "0.0.0.0"' }
- {old: 'elasticsearch.hosts',new: ' elasticsearch.hosts: ["http://{{ inventory_hostname }}:9200"]' }
- {old: 'kibana.index',new: ' kibana.index: ".kibana"' }
- {old: 'kibana.defaultAppId',new: ' kibana.defaultAppId: "discover"' }
- {old: 'elasticsearch.pingTimeout',new: ' elasticsearch.pingTimeout: 1500' }
- {old: 'elasticsearch.requestTimeout',new: ' elasticsearch.requestTimeout: 30000' }
- {old: 'elasticsearch.startupTimeout',new: ' elasticsearch.startupTimeout: 5000' }
- {old: 'i18n.locale',new: ' i18n.locale: "zh-CN"' }
- name: Start Kibana Server
systemd: name=kibana state=started enabled=yes
手动部署教程:
服务器基础优化:
vim /etc/security/limits.conf
soft nofile 65536
hard nofile 65536
soft nproc 2048
hard nproc 4096
vim /etc/sysctl.conf
vm.max_map_count = 655360
vm.swappiness = 1
sysctl -p
安装JDK环境
yum install -y java-1.8.0-openjdk
## 还可以使用Oracle JDK
#https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
Elasticsearch安装部署
yum install -y https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-x86_64.rpm
直接使用RPM包安装省事,华为云镜像站国内访问快。
配置Elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elasticsearch #设置集群名字
index.number_of_shards: 3 #设置es索引分片数量,分布式存储,提高查询效率等
index.number_of_replicas: 1 #设置分片副本数量,提供数据高可用
node.name: 192.168.168.7 #设置本节点名字
path.data: /data/es_data #设置es索引数据存放位置
network.host: 192.168.168.7 #设置此节点绑定IP
discovery.zen.ping.unicast.hosts: ["192.168.168.7", "192.168.168.8", "192.168.168.9"] #设置集群节点成员
配置jvm.options
vim /etc/elasticsearch/jvm.options
目录授权
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
chown -R elasticsearch:elasticsearch /etc/elasticsearch/
启动Elasticsearch
systemctl enable elasticsearch && systemctl start elasticsearch
可以网页访问http://IP地址:9200/
查看是否启动成功
部署Kibana,并配置
#安装Kibana
yum install -y https://mirrors.huaweicloud.com/kibana/7.8.0/kibana-7.8.0-x86_64.rpm
#配置Kibana
vim /etc/kibana/kibana.yml
server.port: 5601'
server.host: "0.0.0.0"'
elasticsearch.hosts: ["http://192.168.169.88:9200"]'
i18n.locale: "zh-CN"'
#启动Kibana
systemctl enable kibana && systemctl start kibana
稍等几分钟,网页访问http://IP地址:5601/
查看是否启动成功