# Install Elasticsearch on CentOS 7
[toc]
---
> {%hackmd BJrTq20hE %}
## 環境
CentOS 7
Elasticsearch 7.2.1
**準備安裝包**
至 [elasticsearch downloads](https://www.elastic.co/downloads/elasticsearch) 選最新版本或是到 [elasticsearch past releases](https://www.elastic.co/downloads/past-releases#elasticsearch) 選特定版本,然後複製該 rpm 包連結執行下面指令 (以 7.2.1 為例)
```bash
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-x86_64.rpm
```
---
**安裝流程**
安裝 java
下載 RPM 檔
`rpm` 安裝
修改 `/etc/elasticsearch/elasticsearch.yml`
修改 `/etc/elasticsearch/jvm.options`
修改系統設定
設定防火牆
開啟 elasticsearch 服務
---
```bash
yum update
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
java -version ## 確認 java 安裝成功
rpm -ivh elasticsearch-7.5.0-x86_64.rpm
```
`vi /etc/elasticsearch/elasticsearch.yml` ## 設定 yml 檔
```yaml
cluster.name: mario-cluster
node.name: mario-node1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: _site_
http.port: 1859
transport.host: 0.0.0.0
transport.port: 9300
cluster.initial_master_nodes: ["mario-node1"]
discovery.seed_hosts: ["192.168.0.121"]
```
```bash
vi /etc/elasticsearch/jvm.options
### 假設硬體為 4 core 8G,JVM_memory就吃一半的記憶體為4G
-Xms4g
-Xmx4g
###
```
```bash
systemctl edit elasticsearch
###
[Service]
LimitMEMLOCK=infinity
###
vi /etc/security/limits.conf
###
elasticsearch - nproc 4096
elasticsearch - nofile 65536
###
systemctl daemon-reload
firewall-cmd --add-port=1859/tcp --permanent
firewall-cmd --reload
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
systemctl status elasticsearch
curl -XGET http://192.168.0.121:1859 ## 確認搭建成功
tail -f /var/log/elasticsearch/elasticsearch.log ## troubleshooting 用途
```
###### tags: `Elasticsearch` Edit by Mario