架構圖:
備註:圖片由於格式都沒有顯示,自己是都有的,這裏的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
以上部分爲設備的基礎配置,接下來咱們開始安裝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源apache
elasticsearch-6.8.1-1.noarch
刪除源npm
從新安裝
rpm -ivh elasticsearch-6.8.1.rpm
查看rpm把elasticsearch安裝到了哪裏
注:通常/etc/elasticsearch的是配置文件, /opt/elasticsearch是剛纔上傳的rpm包,/usr/share/elasticsearch纔是安裝的目錄.bootstrap
創建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}
修改相關權限
chown -R es:es /usr/share/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
4.啓動elasticsearch服務
ERROR: bootstrap checks failed
接着報:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改幾個參數:
在末尾追加如下內容(es爲啓動用戶,固然也能夠指定爲*) * soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096 * soft memlock unlimited * hard memlock unlimited
繼續再修改一個參數
將裏面的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
檢驗: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編譯
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