===============================================
2018/9/21_第5次修改 ccb_warlock
更新說明:
2018/9/21:修改了3.1 es獲取rpm包地址錯誤的問題
2017/12/24:補全部署內容;
2017/12/25:修改部署存在的問題,修改描述不合理的內容;
2017/5/7:修改4.2描述錯誤的內容;
===============================================
ELK(elasticsearch、logstash、kibana)可以作為日志收集及分析的一整套系統,通過阿里的普及也有越來越多的公司在使用,使用下來功能還可以,這里整理記錄一個部署手冊。
為了方便,將ELK都部署在一台os里。
一、環境准備
操作系統:centos7(CentOS-7-x86_64-Minimal-1708)
CPU:1核
內存:4G
可以在你的windows上安裝Bitvise SSH Client遠程執行命令行和傳輸文件。
1.1 安裝vim、wget
yum install -y vim wget
二、安裝Java環境
根據官方的描述,
Elasticsearch要求是java8以上。
Logstash要求是Java 8,不支持Java 9。
官網:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
進入后,選擇“Accept License Agreement”, 在自己電腦下載“jdk-8u151-linux-x64.rpm”,通過Bitvise SSH Client上傳到/root目錄下。
# 安裝
cd
rpm -ivh jdk-8u151-linux-x64.rpm
# 可以用下面的命令查看java的環境變量是否生效
java -version
出現下面的內容就說明java的jdk已經部署完成。
2.3 刪除/root下的安裝包(非必要,用於生產環境建議刪除)
rm -rf /root/jdk-8u151-linux-x64.tar.gz
三、部署elasticsearch
3.1 yum安裝elasticsearch
# 獲取rpm包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.rpm
# 安裝
rpm -ivh elasticsearch-6.1.0.rpm
#查找安裝路徑
rpm -ql elasticsearch
一般是裝在/usr/share/elasticsearch/下。
3.2 設置data的目錄
# 創建/data/es-data目錄,用於elasticsearch數據的存放
mkdir -p /data/es-data
# 修改該目錄的擁有者為elasticsearch
chown -R elasticsearch:elasticsearch /data/es-data
3.3 設置log的目錄
# 創建/data/es-log目錄,用於elasticsearch日志的存放
mkdir -p /log/es-log
# 修改該目錄的擁有者為elasticsearch
chown -R elasticsearch:elasticsearch /log/es-log
3.4 修改配置文件elasticsearch.yml
vim /etc/elasticsearch/elasticsearch.yml
根據下面的內容進行修改,wq保存。
#設置data存放的路徑為/data/es-data path.data: /data/es-data #設置logs日志的路徑為/log/es-log path.logs: /log/es-log #設置內存不使用交換分區 bootstrap.memory_lock: false #配置了bootstrap.memory_lock為true時反而會引發9200不會被監聽,原因不明 #設置允許所有ip可以連接該elasticsearch network.host: 0.0.0.0 #開啟監聽的端口為9200 http.port: 9200 #增加新的參數,為了讓elasticsearch-head插件可以訪問es (5.x版本,如果沒有可以自己手動加) http.cors.enabled: true http.cors.allow-origin: "*"
3.5 啟動elasticsearch
# 啟動
systemctl start elasticsearch
# 查看狀態
systemctl status elasticsearch
# 設置開機啟動
systemctl enable elasticsearch
3.6 開啟9200端口
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --reload
3.7 測試安裝是否成功
# 安裝net-tools
yum install -y net-tools
# 檢查9200是否有監聽
netstat -antp |grep 9200
curl http://127.0.0.1:9200
有下面類似的內容才說明elasticsearch正常啟動。
四、部署logstash
4.1 yum安裝logstash
# 獲取rpm包
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.0.rpm
# 安裝
rpm -ivh logstash-6.1.0.rpm
4.2 設置data的目錄
# 創建/data/ls-data目錄,用於logstash數據的存放
mkdir -p /data/ls-data
# 修改該目錄的擁有者為logstash
chown -R logstash:logstash /data/ls-data
4.3 設置log的目錄
# 創建/data/ls-log目錄,用於logstash日志的存放
mkdir -p /log/ls-log
# 修改該目錄的擁有者為logstash
chown -R logstash:logstash /log/ls-log
4.4 修改配置文件logstash.yml
vim /etc/logstash/logstash.yml
根據下面的內容進行修改,wq保存。
# 設置數據的存儲路徑為/data/ls-data path.data: /data/ls-data # 設置管道配置文件路徑為/etc/logstash/conf.d path.config: /etc/logstash/conf.d # 設置日志文件的存儲路徑為/log/ls-log path.logs: /log/ls-log
4.5 啟動logstash
# 啟動
systemctl start logstash
# 查看狀態
systemctl status logstash
# 設置開機啟動
systemctl enable logstash
4.6 測試安裝是否成功
# 查看下logstash的安裝目錄
rpm -ql logstash
# 創建一個軟連接,每次執行命令的時候不用在寫安裝路徑(yum安裝是在/usr/share下)
ln -s /usr/share/logstash/bin/logstash /bin/
# 執行logstash的命令
logstash -e 'input { stdin { } } output { stdout {} }'
等待片刻后出現“The stdin plugin is now waiting for input:”,輸入“abc”回車,有返回的輸出。
ctrl+c退出。
如果標准輸出還有elasticsearch中都需要保留,看下面
# 192.168.12.16是試驗elk的ip
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.12.16:9200"] } stdout { codec => rubydebug }}'
等待片刻后出現“The stdin plugin is now waiting for input:”,輸入“test”回車,返回下面標准的輸出。
五、部署kibana
5.1 yum安裝kibana
# 獲取安裝包
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-x86_64.rpm
# 安裝
rpm -ivh kibana-6.1.0-x86_64.rpm
5.2 修改kibana.yml
# 搜索rpm包
rpm -ql kibana
默認是裝在/usr/share/kibana/下。
# 修改kibana的配置文件
vim /etc/kibana/kibana.yml
# 修改kibana.xml下面的內容,wq保存。
#kibana頁面映射在5601端口
server.port: 5601
#允許所有ip訪問5601端口 server.host: "0.0.0.0" #elasticsearch所在的ip及監聽的地址 elasticsearch.url: "http://localhost:9200" kibana.index: ".kibana"
5.3 啟動kibana
# 啟動
systemctl start kibana
# 查看狀態
systemctl status kibana
# 設置開機啟動
systemctl enable kibana
5.4 開放端口5601
# 設置防火牆
firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload