第二章 ELKstack部署及配置

一:elasticsearch部署:

1.1:環境初始化

最小化安裝 Centos 7.2 x86_64操做系統的虛擬機vcpu 2內存4G更多,操做系統盤50G主機名設置規則linux-hostX.exmaple.com,其中host1host2elasticsearch服務器,保證效果特額外添加一塊單獨的數據磁盤大小50G格式化掛載/datahtml

 

1.1.1:主機名和磁盤掛載:

[root@localhost ~]# hostnamectl  set-hostname linux-hostx.exmaple.com && reboot #服務器配置本身的主機名並重啓java

[root@localhost ~]# hostnamectl  set-hostname linux-host2.exmaple.com && rebootnode

[root@linux-host1 ~]# mkdir  /elklinux

[root@linux-host1 ~]# mount /dev/sdb  /elk/git

[root@linux-host1 ~]# echo  " /dev/sdb /elk/  xfs  defaults    0 0" >> /etc/fstabgithub

hostX 。。。。web

 

1.1.2:防火牆selinux

關閉全部服務器的火牆selinux包括web服務器redislogstash服務器的防火牆selinux所有關閉,此步驟爲了不出現由於防火牆策略或selinux安全權限引發的各類未知問題,如下只顯示了host1host2命令可是其餘服務器都要執行redis

[root@linux-host1 ~]# systemctl  disable  firewallddocker

[root@linux-host1 ~]# systemctl  disable  NetworkManagernpm

[root@linux-host1 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

[root@linux-host1 ~]# echo "* soft nofile 65536" >> /etc/security/limits.conf

[root@linux-host1 ~]# echo "* hard nofile 65536" >> /etc/security/limits.conf

hostX 。。。。。

 

1.1.3:各服務器配置本地域名解析:

[root@linux-host1 ~]# vim /etc/hosts

192.168.56.11 linux-host1.exmaple.com

192.168.56.12 linux-host2.exmaple.com

192.168.56.13 linux-host3.exmaple.com

192.168.56.14 linux-host4.exmaple.com

192.168.56.15 linux-host5.exmaple.com

192.168.56.16 linux-host6.exmaple.com

 

1.1.4:設置epel安裝基本操做命令同步時間:

[root@linux-host1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@linux-host1 ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump wget ntpdate

[root@linux-host1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

[root@linux-host1 ~]# echo "*/5 * * * *  ntpdate time1.aliyun.com &> /dev/null && hwclock -w" >> /var/spool/cron/root

[root@linux-host1 ~]# systemctl  restart crond

[root@linux-host1 ~]# reboot  #重啓檢查各項配置是否生效,沒有問題的虛擬機快照以方便後期還原

 

1.2host1host2分別安裝elasticsearch

1.2.1在兩臺服務器準備java環境:

  由於elasticsearch服務運行須要java環境,所以兩臺elasticsearch服務器須要安裝java環境,能夠使用如下方式安裝:

方式一:直接使用yum安裝openjdk

[root@linux-host1 ~]# yum install  java-1.8.0*

方式二:本地安裝oracle官網下載rpm安裝包

[root@linux-host1 ~]# yum  localinstall jdk-8u92-linux-x64.rpm

方式三:下載二進制包自定義profile環境變量:

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

[root@linux-host1 ~]# tar xvf jdk-8u121-linux-x64.tar.gz  -C /usr/local/

[root@linux-host1 ~]# ln -sv /usr/local/jdk1.8.0_121 /usr/local/jdk

[root@linux-host1 ~]# vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

[root@linux-host1 ~]# source  /etc/profile

[root@linux-host1 ~]# java -version

java version "1.8.0_121" #確承認以出現當前java版本號

Java(TM) SE Runtime Environment (build 1.8.0_121-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

 

1.3:官網下載elasticsearch並安裝:

下載地址https://www.elastic.co/downloads/elasticsearch當前最新版本5.3.0

1.3.1:兩臺服務器分別安裝elasticsearch:

[root@linux-host1 ~]# yum –y  localinstall elasticsearch-5.3.0.rpm

 

 

1.3.2:編輯各elasticsearch服務的服務配置文件:

[root@linux-host1 ~]# grep "^[a-Z]"   /etc/elasticsearch/elasticsearch.yml

cluster.name: ELK-Cluster #ELK集羣名稱,名稱相同即屬因而同一個集羣

node.name: elk-node1 #本機在集羣內的節點名稱

path.data: /elk/data  #數據保存目錄

path.logs: /elk/logs   #日誌保存

bootstrap.memory_lock: true #服務啓動的時候鎖定足夠的內存,防止數據寫入swap

network.host: 0.0.0.0 #監聽IP

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]

1.3.3修改內存限制並同步配置文件:

[root@linux-host1 ~]# vim /usr/lib/systemd/system/elasticsearch.service #修改內存限制

LimitMEMLOCK=infinity  #去掉註釋

[root@linux-host1 ~]# vim /etc/elasticsearch/jvm.options

22 -Xms2g

23 -Xmx2g #最小和最大內存限制,爲何最小和最大設置同樣大?

https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html

#官方配置文檔最大建議30G之內

 

#將以上配置文件scphost2修改本身node名稱

[root@linux-host1~]#scp /etc/elasticsearch/elasticsearch.yml  192.168.56.12:/etc/elasticsearch/

[root@linux-host2 ~]# grep "^[a-Z]" /etc/elasticsearch/elasticsearch.yml

cluster.name: ELK-Cluster

node.name: elk-node2  #host1不能相同

path.data: /data/elk

path.logs: /data/elk

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

network.host: 0.0.0.0

http.port: 9200

http.cors.enabled: true

http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]

1.3.4:目錄權限更改:

各服務器建立數據和日誌目錄修改目錄權限爲elasticsearch

[root@linux-host1 ~]# mkdir /elk/{data,logs}

[root@linux-host1 ~]# ll /elk/

total 0

drwxr-xr-x 2 root root 6 Apr 18 18:44 data

drwxr-xr-x 2 root root 6 Apr 18 18:44 logs

[root@linux-host1 ~]# chown  elasticsearch.elasticsearch /elk/ -R

[root@linux-host1 ~]# ll /elk/

total 0

drwxr-xr-x 2 elasticsearch elasticsearch 6 Apr 18 18:44 data

drwxr-xr-x 2 elasticsearch elasticsearch 6 Apr 18 18:44 logs

 

vim /etc/security/limits.conf

* soft memlock unlimited

* hard memlock unlimited

* soft nofile 131072

* hard nofile 131072

 

vim /etc/security/limits.d/90-nproc.conf

*          soft    nproc     2048

 

 

1.3.5啓動elasticsearch服務驗證:

[root@linux-host1 ~]# systemctl  restart elasticsearch

[root@linux-host1 ~]# tail -f /elk/logs/ELK-Cluster.log

[root@linux-host1 ~]# tail -f /elk/logs/

1.3.6驗證端口監聽成功:

 

1.3.7經過瀏覽器訪問elasticsearch服務端口:

 

1.4:安裝elasticsearch插件head

插件是爲了完成不一樣的功能,官方提供了一些插件但大部分是收費的,另外也有一些開發愛好者提供的插件,能夠實現對elasticsearch集羣的狀態監控與管理配置等功能。

1.4.1:安裝5.x版本head插件: 

elasticsearch 5.x版本之後再也不支持直接安裝head插件,而是須要經過啓動一個服務方式,git地址:https://github.com/mobz/elasticsearch-head

[root@linux-host1 ~]# yum install -y npm

# NPM的全稱是Node Package Manager,是隨同NodeJS一塊兒安裝的包管理和分發工具,它很方便讓JavaScript開發者下載、安裝、上傳以及管理已經安裝的包。

[root@linux-host1 ~]# cd /usr/local/src/

[root@linux-host1 src]#git clone git://github.com/mobz/elasticsearch-head.git

[root@linux-host1 src]# cd elasticsearch-head/

[root@linux-host1 elasticsearch-head]# yum install npm -y

[root@linux-host1 elasticsearch-head]# npm cache clean -f[root@linux-host1 elasticsearch-head]# npm install -g n[root@linux-host1 elasticsearch-head]# n stable

[root@linux-host1 elasticsearch-head]# npm install grunt -save

[root@linux-host2 elasticsearch-head]# ll node_modules/grunt  #確認生成文件

[root@linux-host1 elasticsearch-head]# npm install #執行安裝

 

[root@linux-host1 elasticsearch-head]# npm run start  &  #後臺啓動服務

1.4.1.1修改elasticsearch服務配置文件

開啓跨域訪問支持而後重啓elasticsearch服務

[root@linux-host1 ~]# vim /etc/elasticsearch/elasticsearch.yml

http.cors.enabled: true #最下方添加

http.cors.allow-origin: "*"

[root@linux-host1 ~]# /etc/init.d/elasticsearch  restart

分片:

curl -XPUT 13.228.119.64:9200/_template/my_template -d'{    "template": "*",    "settings": {        "index": {            "number_of_shards": 6,            "number_of_replicas": 1        }    }}'

 

curl -XPUT 13.250.82.220:9200/_template/my_template -d'{    "template": "*",    "settings": {        "index": {            "number_of_shards": 6,            "number_of_replicas": 1        }    }}'

1.4.1.2docker版本啓動head插件:

[root@linux-host1 ~]# yum install docker -y

[root@linux-host1 ~]# systemctl  start docker && systemctl  enable docker

[root@linux-host1 ~]# docker run -d  -p 9100:9100 mobz/elasticsearch-head:5

 

 

 

1.4.1.3:測試提交數據

 

 

 

 

 

 

1.4.1.6MasterSlave的區別:

Master職責:

統計各node節點狀態信息、集羣狀態信息統計、索引的建立和刪除、索引分配的管理、關閉node節點

Slave的職責:

同步數據、等待機會成爲Master

1.4.1.7:導入本地docker鏡像:

[root@linux-host2 ~]# docker save docker.io/mobz/elasticsearch-head > /opt/elasticsearch-head-docker.tar.gz #導出鏡像

[root@linux-host1 src]# docker load < /opt/elasticsearch-head-docker.tar.gz #導入

[root@linux-host1 src]# docker images#驗證

REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE

docker.io/mobz/elasticsearch-head   5                   b19a5c98e43b        4 months ago        823.9 MB

[root@linux-host1 src]# docker run -d  -p 9100:9100 --name elastic docker.io/mobz/elasticsearch-head:5  #本地docker images 啓動容器

 

1.4.2elasticsearch插件kopf

1.4.2.1kopf

Git地址https://github.com/lmenezes/elasticsearch-kopf可是目前還不支持5.x版本的elasticsearch,可是能夠安裝在elasticsearc 1.x2.x的版本安裝。

相關文章
相關標籤/搜索