企業運維實戰--ELK日志分析平臺之elasticsearch實戰
- ELK日志分析平臺-簡介
- 安裝elasticsearch
- elasticsearch集群部署
- 為集群添加監控管理
- 監控1
- 監控2
ELK日志分析平臺-簡介
ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成:
1)ElasticSearch是一個基于Lucene的開源分布式搜索服務器,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料源,自動搜索負載等,它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web介面,Elasticsearch是用Java開發的,并作為Apache許可條款下的開放原始碼發布,是第二流行的企業搜索引擎,設計用于云計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便,
在elasticsearch中,所有節點的資料是均等的,
2)Logstash是一個完全開源的工具,它可以對你的日志進行收集、過濾、分析,支持大量的資料獲取方法,并將其存盤供以后使用(如搜索),說到搜索,logstash帶有一個web界面,搜索和展示所有日志,一般作業方式為c/s架構,client端安裝在需要收集日志的主機上,server端負責將收到的各節點日志進行過濾、修改等操作在一并發往elasticsearch上去,
3)Kibana 是一個基于瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要資料日志,
ELK整體解決方案:
Logstash是一個ETL工具,負責從每臺機器抓取日志資料,對資料進行格式轉換和處理后,輸出到Elasticsearch中存盤,
Elasticsearch是一個分布式搜索引擎和分析引擎,用于資料存盤,可提供實時的資料查詢,
Kibana是一個資料可視化服務,根據用戶的操作從Elasticsearch中查詢資料,形成相應的分析結果,以圖表的形式展現給用戶,
在這里還用到redis作為快取使用,通過logstash搜集日志資料存入redis,再通過logstash對資料格式轉化處理后儲存到Elasticsearch中,
安裝elasticsearch
洗掉之前的jdk
rpm -qa |grep jdk
rpm -e jdk1.8-1.8.0_171-fcs.x86_64
which java
安裝rpm包,7.6.1版本后自帶jdk
rpm -ivh elasticsearch-7.6.1-x86_64.rpm

編輯主組態檔
cd /etc/elasticsearch/
vim elasticsearch.yml
cluster.name: my-es # 集群名稱
node.name: server4 # 主機名需要決議
path.data: /var/lib/elasticsearch #資料目錄
path.logs: /var/log/elasticsearch #日志目錄
bootstrap.memory_lock: true #鎖定記憶體分配
network.host: 0.0.0.0 # 監聽埠
http.port: 9200 #httpd服務埠
discovery.seed_hosts: ["server4", "server5", "server6"] #包括集群節點
cluster.initial_master_nodes: ["server4"] #初始化集群節點
啟動服務,發現報錯
systemctl start elasticsearch.service

查看日志
cat /var/log/elasticsearch/my-es.log


修改系統限制
vim /etc/security/limits.conf
tail -n5 /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nofile 65536
elasticsearch - nproc 4096

此檔案設定鎖定記憶體大小
vim jvm.options
-Xms1g
-Xmx1g
Xmx設定不超過物理RAM的50%,以確保有足夠的物理RAM留給內核檔案
系統快取,但不要超過32G,
添加
systemctl status elasticsearch.service
vim /usr/lib/systemd/system/elasticsearch.service
LimitMEMLOCK=infinity

重啟服務
systemctl daemon-reload
systemctl restart elasticsearch.service

查看埠9200
netstat -antlp

網頁訪問172.25.9.4:9200

elasticsearch集群部署
準備兩臺虛擬機,記憶體至少為2G
server5/6 虛擬機,部署操作與master相同,
共同執行的操作有:
rpm -ivh elasticsearch-7.6.1-x86_64.rpm
cd /etc/elasticsearch/
# 此處主組態檔需要修改node.name 為本機決議,其余與master保持一致
vim elasticsearch.yml
# 添加系統限制
vim /etc/security/limits.conf
systemctl status elasticsearch.service
vim /usr/lib/systemd/system/elasticsearch.service
systemctl daemon-reload
啟動服務并開機自啟
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
網頁測驗訪問:
172.25.9.5:9200
172.25.9.6:9200


為集群添加監控管理
監控1
宿主機podman上傳鏡像并拉起容器
podman load -i cerebro.tar
podman images
podman run -d --name cerbro -p 9000:9000 lmenezes/cerebro

網頁訪問:172.25.9.254:9000
輸入需要監控的ip和埠號


監控2
虛擬機需要能夠上網,master端
安裝rpm包
rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm

查看是否能上網
ping www.baidu.com
解壓準備好的master
yum install -y unzip bzip2
unzip master.zip

解壓后進入,更換npm源
cd elasticsearch-head-master/
npm install -g cnpm --registry=https://registry.npm.taobao.org
查看cnpm版本
cnpm -v
安裝
cnpm install

啟動插件
cnpm run start &

編輯主組態檔
cd /etc/elasticsearch/
vim elasticsearch.yml
http.cors.enabled: true # 是否支持跨域
http.cors.allow-origin: "*" # *表示支持所有域名

重啟服務
systemctl restart elasticsearch.service

開放9100埠供監控訪問查看
http://172.25.9.4:9100/

可能遇到的問題:集群無法加入,原因為cluster uuid不同
解決方案:重新給定集群名字,洗掉資料目錄
rm -fr /var/lib/elasticsearch/*
重啟服務
systemctl restart elasticsearch.service
網頁訪問ip:9200 查看各個ip的cluster uuid是否一致
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294162.html
標籤:其他
