kibana+elasticsearch+logstash+Kafka+filebeat集羣安裝文檔

架構圖:
kibana+elasticsearch+logstash+Kafka+filebeat集羣安裝文檔
備註:圖片由於格式都沒有顯示,自己是都有的,這裏的IP 是隨便寫了個10.168.0.0代替全部須要用的IP
參考文檔
https://blog.csdn.net/weixin_41047933/article/details/82699823
https://www.cnblogs.com/chenjw-note/articles/10880637.html
http://www.javashuo.com/article/p-mctklpdd-ck.html
https://blog.csdn.net/weixin_41047933/article/details/82699823
https://blog.csdn.net/miss1181248983/article/details/89384990#commentBoxhtml

一:安裝JDK(server,client)(jdk版本在1.8.0_131及以上版本)java

  1. 將提早下載好的jdk-8u151-linux-x64.rpm 上傳到/usr/local
  2. 配置JAVA環境變量 # vi + /etc/profile
    JAVA_HOME=/usr/java/jdk1.8.0_141
    JRE_HOME=/usr/java/jdk1.8.0_141/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    當即生效環境變量:
    source /etc/profile
    驗證:
    echo $JAVA_HOME
    /usr/java/jdk1.8.0_141

以上部分爲設備的基礎配置,接下來咱們開始安裝ELK各個部件node

注意:安裝組件版本要一致!!!
二:先安裝elasticsearch6.8.1,5臺Centos7.2服務器。
1.下載elasticsearch6.8.1,並分別上傳到5臺服務器上。
個人版本爲elasticsearch6.8.1,並放在 /opt 目錄下。root用戶個es用戶添加操做訪問elasticsearch的權限
chown -R es:es elasticsearch-6.8.1.rpmlinux

2.我用的rpm包安裝的,其餘的安裝方法各不相同(好比編譯安裝或者yum安裝,由於每一個安裝裏面的配置相關路徑不一樣)
rpm -ivh elasticsearch-6.8.1.rpmgit

CentOS 7 rpm -i 時 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解決方法
這是因爲yum安裝了舊版本的GPG keys形成的,解決辦法就是 運行下面命令便可github

rpm --import /etc/pki/rpm-gpg/RPM*

查詢已安裝的rpm源apache

rpm -qa | grep elasticsearch

elasticsearch-6.8.1-1.noarch
刪除源npm

rpm -e elasticsearch

從新安裝
rpm -ivh elasticsearch-6.8.1.rpm
查看rpm把elasticsearch安裝到了哪裏
注:通常/etc/elasticsearch的是配置文件, /opt/elasticsearch是剛纔上傳的rpm包,/usr/share/elasticsearch纔是安裝的目錄.bootstrap

  1. 創建elasticsearch帳號由於root不能啓動elasticsearch服務。
    我創建的帳號爲es,輸入命令:
    useradd -r -m es
    默認家目錄是/home/es 。用戶的切換命令爲:su[空格]es 從root切換到普通用戶esvim

    我把elasticsearch的數據目錄和日誌目錄都放在 /data/es 目錄下。在 /data/es 目錄下創建data 文件夾和 log文件夾。(這裏是自定義的根據你的配置文件能夠修改)
    修改vi /etc/sudoers 添加es

    建立相關目錄
    mkdir -pv /data/es/{data,log}

  2. 核心步驟,編輯 vi /etc/elasticsearch/elasticsearch.yml 文件,一共要修改5處地方。
    1. 查找 「cluster.name」,把註釋去掉。這是集羣的名稱,自定義一個便可,以個人爲例,我將其定爲 「es-cluster」。注意的是5臺機的集羣名稱必須相同。
    2. 查找 「node.name」,把註釋去掉。這是節點名,也是自定義便可,以個人爲例,節點1爲「es-1」,節點2爲「es-2」, 節點3爲「es-3」 N多個節點依此操做。
  3. 查找 「path.data」 和 「path.log」。把註釋去掉。這是定義數據目錄和日誌目錄。把上面創建的數據目錄路徑和日誌目錄路徑寫上便可。
  4. 查找 「discovery.zen.ping.unicast.hosts」。把註釋去掉。這是填寫在這個集羣內各個機器的ip或別名。個人由於在hosts已經配置了別名,因此我填寫的是別名。
  5. 查找 「discovery.zen.minimum_master_nodes」。把註釋去掉。這是定義有幾臺master機器,我本身是定義有3臺機器做爲master。
    注意:每個配置項,冒號後邊必定要留個空格!
    cluster.name: es-cluster #集羣名稱,只有es-cluster相同時,節點才能加入集羣。請設置爲具備描述性的名字。不建議在不一樣環境中使用相同的集羣名。
    node.name: es-1 #節點描述名稱,默認狀況下,Elasticsearch將使用隨機生成的UUID的前7個字符做爲節點id。設爲服務器的主機名 node.name: ${HOSTNAME}
    node.attr.rack: r1 #指定節點的部落屬性,機架位置,比集羣範圍更大。
    path.data: /var/lib/elasticsearch #Elasticsearch的數據文件存放目錄 若是是默認位置,在將Elasticsearch升級到新版本時,極可能會把數據刪除。(建議修改)
    path.logs: /var/log/elasticsearch #日誌目錄。(建議修改)
    bootstrap.memory_lock: true #啓動後鎖定內存,禁用swap交換,提升ES性能。
    network.host: 10.168.0.0 #指定監聽的地址
    http.port: 9200 #監聽的WEB端口
    discovery.zen.ping.unicast.hosts: ["IP:9300"]: #默認網絡配置中,Elasticsearch將綁定到迴環地址,並掃描9300-9305端口,試圖鏈接同一臺服務器上的其餘節點,能夠自動發現並加入集羣。
    • 10.168.0.0:9300 #此端口爲TCP傳輸端口,用於集羣內節點發現、節點間信息傳輸、ES Java API也是經過此端口傳輸數據,transport.tcp.port定義。9200爲HTTP端口。
    • host1.vtlab.io
      discovery.zen.minimum_master_nodes: 2 #爲防止數據丟失,discovery.zen.minimum_master_nodes設置相當重要,主節點的最小選舉數。避免腦裂,應將此值設爲(master_eligible_nodes / 2) + 1,換言之,若是有3個節點,(3/2)+1 or 2

修改相關權限

chown -R es:es /etc/elasticsearch/

chown -R es:es /usr/share/elasticsearch/

chgrp -R es /etc/elasticsearch/

chgrp -R es /etc/sysconfig/elasticsearch
數據和日誌
chown -R es:es /data/es/
chgrp -R es /data/es/
修改es啓動佔用的內存空間(雲主機通常不須要)
解釋:默認狀況下,es啓動互檢測內存2G,對雲主機內存不足的狀況有所限制,虛擬機更須要修改,須要修改佔用的內存空間
修改es根目錄下config目錄的jvm.options

vi /etc/elasticsearch/jvm.options

4.啓動elasticsearch服務

cd /usr/share/elasticsearch/

./bin/elasticsearch –d

ERROR: bootstrap checks failed
接着報:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改幾個參數:

vi /etc/security/limits.conf

在末尾追加如下內容(es爲啓動用戶,固然也能夠指定爲*)
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited

繼續再修改一個參數

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

將裏面的1024改成2048(ES最少要求爲2048)
*          soft    nproc     2048

ERROR: bootstrap checks failed
memory locking requested for elasticsearch process but memory is not locked
vim /etc/security/limits.conf

  • soft memlock unlimited
  • hard memlock unlimited
    備註:* 表明Linux全部用戶名稱
    保存、退出、從新登陸纔可生效
    臨時取消限制
    ulimit -l unlimited
    報錯解決相關文檔連接
    https://blog.csdn.net/Hey_WonderfulWorld/article/details/73612929
    重啓服務器後從新啓動elasticsearch服務,無報錯。

檢驗:curl http://10.168.0.0:9200

5.查看集羣

查看集羣健康狀態:

查看master

安裝head
由於head插件是用node.js開發的,因此須要此環境。
tar -Jxf node-v10.16.0-linux-x64.tar.xz
mv node-v10.16.0-linux-x64/ /usr/local/node
vim /etc/profile
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
source /etc/profile
檢驗
node -v

安裝head插件:
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip && mv elasticsearch-head-master/ /usr/local/elasticsearch-head
cd /usr/local/elasticsearch-head
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g grunt-cli
cnpm install -g grunt
cnpm install grunt-contrib-clean
cnpm install grunt-contrib-concat
cnpm install grunt-contrib-watch
cnpm install grunt-contrib-connect
cnpm install grunt-contrib-copy
cnpm install grunt-contrib-jasmine #若報錯就再執行一遍
修改head的鏈接地址 elasticsearch-head/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
localhost改成本身的ip
vim /usr/local/elasticsearch-head/Gruntfile.js
#找到下面connect屬性,新增 hostname: '0.0.0.0',

connect: {
                    server: {
                            options: {
                                    hostname: '*',            #不要忘了後面的逗號
                                    port: 9100,
                                    base: '.',
                                    keepalive: true
                            }
                    }
            }

修改服務器的監聽地址elasticsearch-head/Gruntfile.js
connect: {
server: {
options: {
port: 9100,
base: '.',
keepalive: true
}
}
}
options中添加 hostname: '*'
後臺啓動grunt server
cd /usr/local/elasticsearch-head
nohup grunt server &
eval "cd /usr/local/elasticsearch-head/ ; nohup npm run start >/dev/null 2>&1 & "
打開瀏覽器訪問10.168.0.0:9100,能夠看到head頁面

三.安裝kibana
rmp -ivh kibana-6.8.1-x86_64.rpm
vim /etc/kibana/kibana.yml
server.port: 5601
server.host: 10.168.0.0
elasticsearch.url: ["http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200"]
logging.dest: /data/kibana/log/kibana.log
建立日誌文件:
[root@master-node ~]# mkdir /data/kibana/log
[root@master-node ~]# touch /data/kibana/log/kibana.log
啓動kibana服務,並檢查進程和監聽端口:
先到相關目錄裏面

關閉須要先查端口以後kill 相關進程(這裏注意不要直接殺node進程,由於es也有用到)

登錄頁面

配置用戶密碼登錄
相關文章:https://blog.51cto.com/10950710/2334528?source=dra

Kibana配置索引

四.安裝logstash

警告問題解決(這個警告以後日誌採集會有用到因此要處理)

安裝完以後,先不要啓動服務,先配置logstash收集syslog日誌:(這裏的配置是查看是否能夠收集日誌,以後須要根據服務相關的日誌格式採集而自定義配置)

基本格式模板
input { # 定義日誌源
syslog {
type => "system-syslog" # 定義類型
port => 10514 # 定義監聽端口
}
}
output { # 定義日誌輸出
stdout {
codec => rubydebug # 將日誌輸出到當前的終端上顯示
}
}

檢測配置文件是否有錯

輸出ok 表明沒有問題
相關文檔連接:http://www.51niux.com/?id=203

五:安裝zookeeper
下載連接:http://archive.apache.org/dist/zookeeper/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
使用tar解壓要安裝的目錄便可
這裏以解壓到/usr/local,實際安裝根據本身的想安裝的目錄修改(注意若是修改,那後邊的命令和配置文件中的路徑都要相應修改)
tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local/
cd /usr/local/ && mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper
添加環境變量:
vi /etc/profile
export ZK_HOME=/usr/local/zookeeper
export PATH=$ZK_HOME/bin:$PATH
source /etc/profile
在主目錄下建立data和logs兩個目錄用於存儲數據和日誌:
mkdir -p /data/zk/{data,logs}
在conf目錄下新建zoo.cfg文件,寫入如下內容保存:
如下分別在每臺配置

vim /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/data/zk/data
dataLogDir=/data/zk/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.168.0.0:2888:3888
server.2=10.168.0.0:2888:3888
server.3=10.168.0.0:2888:3888
server.4=10.168.0.0:2888:3888
server.5=10.168.0.0:2888:3888

echo '1' > /data/zk/data/myid
echo '2' > /data/zk/data/myid
echo '3' > /data/zk/data/myid
echo '4' > /data/zk/data/myid
echo '5' > /data/zk/data/myid

啓動zookeeper

查看狀態

其餘的幾個配置都同樣 以後啓動 (注意zookeeper集羣須要都啓動以後纔會自動去鏈接)
六:安裝Kafka
tar -zxvf kafka_2.12-2.2.0 .tgz && mv kafka_2.12-2.2.0 .tgz /usr/local
mv kafka_2.12-2.2.0 kafka
配置kafka環境變量,首先打開profile文件
vi /etc/profile
export KAFKA_HOME=/usr/local/kafka
export PATH=${KAFKA_HOME}/bin:$PATH
source /etc/profile
修改文件配置
vi /usr/local/kafka/config/server.properties
broker.id=1 (集羣配置不能是同樣的)
listeners=PLAINTEXT://10.168.0.0:9092 (配置本身IP端口)
log.dirs=/data/kafka/logs
zookeeper.connect=10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181 (集羣IP端口)
以後同理修改其餘幾臺機器
啓動
cd /usr/local/kafka/
./bin/kafka-server-start.sh -daemon ./config/server.properties
安裝kafka-manager(用做Kafka頁面管理)
下載源碼
使用Git或者直接從Releases中下載,這裏咱們下載 2.0.0.2 版本:https://github.com/yahoo/kafka-manager/releases

解壓
wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz
tar -zxvf 2.0.0.2.tar.gz –C /opt/
sbt編譯

配置yum

curl https://bintray.com/sbt/rpm/rpm > /etc/yum.repos.d/bintray-sbt-rpm.repo
yum makecache
#安裝sbt
yum -y install sbt
編輯項目(慢)
cd kafka-manager-2.0.0.2
./sbt clean dist
若是編譯錯誤要從新編譯,最好是能找到編譯好的包。
拷貝編譯後的壓縮包並解壓
cp target/universal/kafka-manager-2.0.0.2.zip /opt
unzip kafka-manager-2.0.0.2.zip

vi /usr/local/kafka-manager/conf/application.conf
#kafka-manager.zkhosts="localhost:2181" ##註釋這一行,下面添加一行
kafka-manager.zkhosts="10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181"
添加用戶
basicAuthentication.enabled=true
basicAuthentication.username=admin
basicAuthentication.password=admin123

啓動
nohup /usr/local/kafka-manager/bin/kafka-manager -Dconfig.file=/usr/local/kafka-manager/conf/application.conf -Dhttp.port=8899 >> /data/kafka-manager/main.log 2>&1
相關文檔
https://blog.csdn.net/qq_23160237/article/details/89677647

相關文章
相關標籤/搜索