ELK之源碼安裝Elasticsearch以及報錯彙總
1、服務器環境
[root@elk ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@elk ~]# uname -r
3.10.0-327.4.5.el7.x86_64
[root@elk ~]# free -m
total used free shared buff/cache available
Mem: 3791 1435 324 8 2031 2133
Swap: 999 0 999
2、源碼安裝JDK
[root@elk ~]# mkdir /usr/local/java/
[root@elk ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/java/
3、配置環境變量
[root@elk ~]# cat /etc/profile
...
JAVA_HOME=/usr/local/java/jdk1.8.0_201
JRE_HOME=/usr/local/java/jdk1.8.0_201/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
[root@elk ~]# source /etc/profile
4、查看版本
[root@elk ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
5、下載 Elasticsearch源碼包【Linux: elasticsearch-7.6.2-linux-x86_64.tar.gz】
[root@elk ~]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
官網地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-install.html
6、解壓源碼包【注意:不能解壓在/root目錄下,否則權限不足不能啓動】
[root@elk ~]# tar xf /root/elasticsearch-7.6.2-linux-x86_64.tar.gz -C /home
7、配置Elasticsearch
[root@elk ~]# vim /home/elasticsearch-7.6.2/config/elasticsearch.yml
cluster.name: elk
# Elasticsearch集羣名
node.name: elk
# 該主機節點名
path.data: /mnt/elasticsearch/data
# 數據存儲目錄路徑
path.logs: /mnt/elasticsearch/logs
# 日誌存儲目錄路徑
network.host: 0.0.0.0
# 監聽所有地址
http.port: 9200
# 監聽的主機端口,用於接收客戶端HTTP請求的端口
discovery.seed_hosts: ["elk"]
# 集羣內發現發送主機列表
8、創建數據存儲和日誌存儲目錄
[root@elk ~]# mkdir -p /mnt/elasticsearch/data
[root@elk ~]# mkdir -p /mnt/elasticsearch/logs
9、創建用戶,並授權相關目錄【注意:Elasticsearch 默認不能以root身份啓動】
[root@elk ~]# useradd -M elk
[root@elk ~]# chown -R elk.elk /mnt/elasticsearch/
[root@elk ~]# chown -R elk.elk /home/elasticsearch-7.6.2/
10、系統配置【關鍵】
[root@elk ~]# vim /etc/security/limits.conf
...
#添加以下兩行
* hard nofile 65536
* soft nofile 65536
[root@elk ~]# vim /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
[root@elk ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
#mmap計數由於系統限制值太低了,可能會導致ES出現內存不足而不能啓動,我們需要將其值設大
[root@elk ~]# sysctl -p
#由於要修改用戶服務可開啓的最大進程數,配置完後需要重啓服務器
[root@elk ~]# init 6
11、以非root身份啓動Elasticsearch【注意:Elasticsearch 默認不能以root身份啓動】
[root@elk ~]# sudo -u elk /home/elasticsearch-7.6.2/bin/elasticsearch -d
[root@elk ~]# tailf /mnt/elasticsearch/logs/elk.log
[root@elk ~]# ss -antulp | grep 9200
tcp LISTEN 0 128 :::9200 :::* users:(("java",pid=2451,fd=235))
12、訪問驗證 http://192.168.66.72:9200
PS: 安裝過程遇到的坑
1)坑一:原因是以root身份啓動 解決辦法:以非root身份,如筆者以elk啓動
2)坑二:原因是源碼包加壓在了/root目錄下,權限不足
解決辦法:加壓至非root家目錄,筆者加壓至/home目錄下
3)坑三:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解決辦法:/etc/security/limits.conf下面添加如下兩行
[root@elk ~]# vim /etc/security/limits.conf
...
* hard nofile 65536
* soft nofile 65536