ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
一、前言
1、ELK簡(jiǎn)介
ELK是Elasticsearch+Logstash+Kibana的簡(jiǎn)稱
-
ElasticSearch是一個(gè)基于Lucene的分布式全文搜索引擎,提供 RESTful API進(jìn)行數(shù)據(jù)讀寫
-
Logstash是一個(gè)收集,處理和轉(zhuǎn)發(fā)事件和日志消息的工具
- Kibana是Elasticsearch的開源數(shù)據(jù)可視化插件,為查看存儲(chǔ)在ElasticSearch提供了友好的Web界面,并提供了條形圖,線條和散點(diǎn)圖,餅圖和地圖等分析工具
總的來(lái)說(shuō),ElasticSearch負(fù)責(zé)存儲(chǔ)數(shù)據(jù),Logstash負(fù)責(zé)收集日志,并將日志格式化后寫入ElasticSearch,Kibana提供可視化訪問ElasticSearch數(shù)據(jù)的功能。
2、ELK工作流
應(yīng)用將日志按照約定的Key寫入Redis,Logstash從Redis中讀取日志信息寫入ElasticSearch集群。Kibana讀取ElasticSearch中的日志,并在Web頁(yè)面中以表格/圖表的形式展示。
二、準(zhǔn)備工作
1、服務(wù)器&軟件環(huán)境說(shuō)明
- 服務(wù)器
一共準(zhǔn)備3臺(tái)CentOS7 Server
| es1 | 192.168.1.31 | 部署ElasticSearch主節(jié)點(diǎn) |
| es2 | 192.168.1.32 | 部署ElasticSearch從節(jié)點(diǎn) |
| elk | 192.168.1.21 | 部署Logstash + Kibana + Redis |
這里為了節(jié)省,只部署2臺(tái)Elasticsearch,并將Logstash + Kibana + Redis部署在了一臺(tái)機(jī)器上。
如果在生產(chǎn)環(huán)境部署,可以按照自己的需求調(diào)整。
- 軟件環(huán)境
| Linux Server | CentOS 7 |
| Elasticsearch | 6.0.0 |
| Logstash | 6.0.0 |
| Kibana | 6.0.0 |
| Redis | 4.0 |
| JDK | 1.8 |
2、ELK環(huán)境準(zhǔn)備
由于Elasticsearch、Logstash、Kibana均不能以root賬號(hào)運(yùn)行。
但是Linux對(duì)非root賬號(hào)可并發(fā)操作的文件、線程都有限制。
所以,部署ELK相關(guān)的機(jī)器都要調(diào)整:
- 修改文件限制
- 調(diào)整進(jìn)程數(shù)
- 調(diào)整虛擬內(nèi)存&最大并發(fā)連接
以上操作重啟系統(tǒng)后生效
reboot- JDK8安裝
CentO安裝JDK8:https://ken.io/note/centos-java-setup
- 創(chuàng)建ELK專用用戶
- 創(chuàng)建ELK相關(guān)目錄并賦權(quán)
- 下載ELK包并解壓
https://www.elastic.co/downloads
三、Elasticsearch 部署
本次一共要部署兩個(gè)Elasticsearch節(jié)點(diǎn),所有文中沒有指定機(jī)器的操作都表示每個(gè)Elasticsearch機(jī)器都要執(zhí)行該操作
1、準(zhǔn)備工作
- 移動(dòng)Elasticsearch到統(tǒng)一目錄
- 開放端口
- 切換賬號(hào)
- 數(shù)據(jù)&日志目錄
2、Elasticsearch節(jié)點(diǎn)配置
- 修改配置
- 主節(jié)點(diǎn)配置(192.168.1.31)
- 從節(jié)點(diǎn)配置(192.168.1.32)
- 配置項(xiàng)說(shuō)明
| cluster.name | 集群名 |
| node.name | 節(jié)點(diǎn)名 |
| path.data | 數(shù)據(jù)保存目錄 |
| path.logs | 日志保存目錄 |
| network.host | 節(jié)點(diǎn)host/ip |
| http.port | HTTP訪問端口 |
| transport.tcp.port | TCP傳輸端口 |
| node.master | 是否允許作為主節(jié)點(diǎn) |
| node.data | 是否保存數(shù)據(jù) |
| discovery.zen.ping.unicast.hosts | 集群中的主節(jié)點(diǎn)的初始列表,當(dāng)節(jié)點(diǎn)(主節(jié)點(diǎn)或者數(shù)據(jù)節(jié)點(diǎn))啟動(dòng)時(shí)使用這個(gè)列表進(jìn)行探測(cè) |
| discovery.zen.minimum_master_nodes | 主節(jié)點(diǎn)個(gè)數(shù) |
3、Elasticsearch啟動(dòng)&健康檢查
- 啟動(dòng)
- 查看健康狀態(tài)
如果返回status=green表示正常
{"cluster_name": "esc","status": "green","timed_out": false, "number_of_nodes": 2, "number_of_data_nodes": 2, "active_primary_shards": 0, "active_shards": 0, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 0, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 100.0 }四、Logstash 部署
1、準(zhǔn)備工作
- 部署Redis
Redis4 安裝與配置:https://ken.io/note/centos7-redis4-setup
由于本次核心是ELK搭建,所以ken.io偷懶,Redis沒有部署集群,采用的單節(jié)點(diǎn)。
- 移動(dòng)Logstash到統(tǒng)一目錄
- 切換賬號(hào)
- 數(shù)據(jù)&日志目錄
2、Logstash配置
- 配置數(shù)據(jù)&日志目錄
- 配置Redis&Elasticsearch
該配置就是從redis中讀取數(shù)據(jù),然后寫入指定的elasticsearch
Redis核心配置項(xiàng)說(shuō)明:
| data_type => “l(fā)ist” | 數(shù)據(jù)類型為list |
| key => “l(fā)ogstash” | 緩存key為:logstash |
| codec => “json” | 數(shù)據(jù)格式為:json |
- 啟動(dòng)
啟動(dòng)成功后,在啟動(dòng)輸出的最后一行會(huì)看到如下信息:
[INFO ][logstash.pipeline ] Pipeline started {"pipeline.id"=>"main"} [INFO ][logstash.agent ] Pipelines running {:count=>1, :pipelines=>["main"]}五、Kibana 部署
1、準(zhǔn)備工作
- 移動(dòng)Kibana到統(tǒng)一目錄
- 開放端口
- 切換賬號(hào)
3、Kibana配置與訪問測(cè)試
- 修改配置
- 啟動(dòng)
- 訪問
瀏覽器訪問: 192.168.1.21:5601
警告提示:No default index pattern. You must select or create one to continue.
錯(cuò)誤提示:Unable to fetch mapping. do you have indices matching the pattern?
不用擔(dān)心,這是因?yàn)檫€沒有寫入日志
六、測(cè)試
1、日志寫入
日歷寫入的話,寫入到logstash監(jiān)聽的redis即可。
數(shù)據(jù)類型之前在/usr/elk/logstash-6.0.0/config/input-uput.conf中有配置
- redis命令方式
- Java代碼批量寫入(引入Jedis)
2、Kibana使用
瀏覽器訪問:192.168.1.21:5601
此時(shí)會(huì)提示:?Configure an index pattern
直接點(diǎn)擊create即可
瀏覽器訪問:192.168.1.21:5601/app/kibana#/discover 即可查看日志
大功告成!
七、備注
1、Kibana使用教程
- https://segmentfault.com/a/1190000002972420
2、 ELK開機(jī)啟動(dòng)
ELK開機(jī)啟動(dòng),需要學(xué)習(xí)下以下知識(shí)
- nohup命令使用:https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html
- 自定義系統(tǒng)服務(wù),可以參考Redis的開機(jī)啟動(dòng):https://ken.io/note/centos7-redis4-setup
轉(zhuǎn)載于:https://www.cnblogs.com/mylovelulu/p/10530002.html
總結(jié)
以上是生活随笔為你收集整理的ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串:你看的懂的KMP算法(带验证)
- 下一篇: 判断浏览器是pc端还是移动端