Elasticsearch集群和Logstash、Kibana部署

1、 Elasticsearch集群部署

  • 服務器

安裝軟件主機名IP地址系統版本配置
ElasticsearchElk10.3.145.14centos7.5.18042核4G
ElasticsearchEs110.3.145.56centos7.5.18042核3G
ElasticsearchEs210.3.145.57centos7.5.18042核3G
  • 軟件版本:elasticsearch-7.13.2.tar.gz

  • 示例節點:10.3.145.14

1、安裝配置jdk

可以自行安裝,es安裝包中自帶了jdk

2、安裝配置ES

(1)創建運行ES的普通用戶

[root@elk ~]# useradd es
[root@elk ~]# echo "******" | passwd --stdin "es"

(2)安裝配置ES

[root@elk ~]# tar zxvf /usr/local/package/elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/
[root@elk ~]# mv /usr/local/elasticsearch-7.13.2 /usr/local/es
[root@elk ~]# vim /usr/local/es/config/elasticsearch.yml
cluster.name: bjbpe01-elk
cluster.initial_master_nodes: ["192.168.1.101","192.168.1.102","192.168.1.103"] # 單節點模式這里的地址只填寫本機地址
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
# 單節點模式下,將discovery開頭的行注釋
discovery.seed_hosts: ["192.168.1.102","192.168.1.103"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"配置項含義
cluster.name    集群名稱,各節點配成相同的集群名稱。
cluster.initial_master_nodes 集群ip,默認為空,如果為空則加入現有集群,第一次需配置
node.name       節點名稱,各節點配置不同。
node.master     指示某個節點是否符合成為主節點的條件。
node.data       指示節點是否為數據節點。數據節點包含并管理索引的一部分。
path.data       數據存儲目錄。
path.logs       日志存儲目錄。
bootstrap.memory_lock       內存鎖定,是否禁用交換,測試環境建議改為false。
bootstrap.system_call_filter    系統調用過濾器。
network.host    綁定節點IP。
http.port       rest api端口。
discovery.seed_hosts    提供其他 Elasticsearch 服務節點的單點廣播發現功能,這里填寫除了本機的其他ip
discovery.zen.minimum_master_nodes  集群中可工作的具有Master節點資格的最小數量,官方的推薦值是(N/2)+1,其中N是具有master資格的節點的數量。
discovery.zen.ping_timeout      節點在發現過程中的等待時間。
discovery.zen.fd.ping_retries        節點發現重試次數。
http.cors.enabled               是否允許跨源 REST 請求,用于允許head插件訪問ES。
http.cors.allow-origin              允許的源地址。

(3)設置JVM堆大小#7.0默認為4G

[root@elk ~]# sed -i 's/## -Xms4g/-Xms4g/' /usr/local/es/config/jvm.options  
[root@elk ~]# sed -i 's/## -Xmx4g/-Xmx4g/' /usr/local/es/config/jvm.options注:確保堆內存最小值(Xms)與最大值(Xmx)的大小相同,防止程序在運行時改變堆內存大小。
如果系統內存足夠大,將堆內存最大和最小值設置為31G,因為有一個32G性能瓶頸問題。
堆內存大小不要超過系統內存的50%

(4)創建ES數據及日志存儲目錄

[root@elk ~]# mkdir -p /data/elasticsearch/data
[root@elk ~]# mkdir -p /data/elasticsearch/logs 

(5)修改安裝目錄及存儲目錄權限

[root@elk ~]# chown -R es.es /data/elasticsearch
[root@elk ~]# chown -R es.es /usr/local/es
3、系統優化

(1)增加最大文件打開數

[root@elk ~]# echo "* soft nofile 65536" >> /etc/security/limits.conf

(2)增加最大進程數

[root@elk ~]# echo "* soft nproc 65536" >> /etc/security/limits.conf或者
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
更多的參數調整可以直接用這個

(3)增加最大內存映射數

[root@elk ~]# echo "vm.max_map_count=262144" >> /etc/sysctl.conf
[root@elk ~]# sysctl -p

(4)啟動遇到下面問題解決辦法

memory locking requested for elasticsearch process but memory is not locked
elasticsearch.yml文件
bootstrap.memory_lock : false
/etc/sysctl.conf文件
vm.swappiness=0錯誤:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]意思是elasticsearch用戶擁有的客串建文件描述的權限太低,知道需要65536個解決:切換到root用戶下面,[root@elk ~]# vim /etc/security/limits.conf在最后添加
* hard nofile 65536
* hard nproc 65536
重新啟動elasticsearch,還是無效?
必須重新登錄啟動elasticsearch的賬戶才可以,例如我的賬戶名是elasticsearch,退出重新登錄。
另外*也可以換為啟動elasticsearch的賬戶也可以,* 代表所有,其實比較不合適啟動還會遇到另外一個問題,就是
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是:elasticsearch用戶擁有的內存權限太小了,至少需要262114。這個比較簡單,也不需要重啟,直接執行
sysctl -w vm.max_map_count=262144
就可以了
4、啟動ES

以ES用戶啟動

[root@elk ~]# su - es -c "cd /usr/local/es && nohup bin/elasticsearch &"

測試:瀏覽器訪問http://10.3.145.14:9200

5.安裝配置head監控插件 (只在第一臺es部署)
  • 服務器

安裝軟件主機名IP地址系統版本配置
Elasticsearch-head-master

(1)安裝node

[root@elk ~]# wget https://npm.taobao.org/mirrors/node/latest-v10.x/node-v10.0.0-linux-x64.tar.gz
[root@elk ~]# tar -zxf node-v10.0.0-linux-x64.tar.gz –C /usr/local
[root@elk ~]# echo "
NODE_HOME=/usr/local/node-v10.0.0-linux-x64
PATH=\$NODE_HOME/bin:\$PATH
export NODE_HOME PATH
" >>/etc/profile
[root@elk ~]# source /etc/profile
[root@elk ~]# node --version   #檢查node版本號

(2)下載head插件

[root@elk ~]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
[root@elk ~]# unzip -d /usr/local elasticsearch-head-master.zip

(3)安裝grunt

[root@elk ~]# cd /usr/local/elasticsearch-head-master
[root@elk elasticsearch-head-master]# npm install -g grunt-cli
[root@elk elasticsearch-head-master]# grunt -version  #檢查grunt版本號

(4)修改head源碼

[root@elk ~]# vi /usr/local/elasticsearch-head-master/Gruntfile.js +99

添加hostname,注意在上一行末尾添加逗號,hostname 不需要添加逗號

[root@elk ~]# vim /usr/local/elasticsearch-head-master/_site/app.js +4388

原本是http://localhost:9200,如果head和ES不在同一個節點,注意修改成ES的IP地址

(5)下載head必要的文件

[root@elk ~]# wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@elk ~]# yum -y install bzip2
[root@elk ~]# mkdir /tmp/phantomjs
[root@elk ~]# mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /tmp/phantomjs/
[root@elk ~]# chmod 777 /tmp/phantomjs -R

(6)運行head

[root@elk ~]# cd /usr/local/elasticsearch-head-master/
[root@elk elasticsearch-head-master]# npm install 
[root@elk elasticsearch-head-master]# nohup grunt server &
[root@elk elasticsearch-head-master]# ss -tnlp
nohup grunt server --allow-root &
npm install 執行錯誤解析:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the phantomjs-prebuilt@2.1.16 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-04-21T09_49_34_207Z-debug.log解決:
[root@elk elasticsearch-head-master]# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts  # 具體的版本按照上述報錯修改

(7)測試

訪問http://10.3.145.14:9100

2. Logstash部署

  • 服務器

安裝軟件主機名IP地址系統版本配置
LogstashElk10.3.145.14centos7.5.18042核4G
  • 軟件版本:logstash-7.13.2.tar.gz

1.安裝配置Logstash

Logstash運行同樣依賴jdk,本次為節省資源,故將Logstash安裝在了10.3.145.14節點。

(1)安裝

[root@elk ~]# tar zxf /usr/local/package/logstash-7.13.2.tar.gz -C /usr/local/

(2)測試文件

標準輸入=>標準輸出及es集群

1、啟動logstash

2、啟動后直接在終端輸入數據

3、數據會由logstash處理后返回并存儲到es集群中

input {tcp {port => 8888}
}
filter {grok {match => {"message" => "%{DATA:key} %{NUMBER:value:int}"} }
}
output {stdout {codec => rubydebug}elasticsearch {hosts => ["10.3.145.14","10.3.145.56","10.3.145.57"]index => 'logstash-debug-%{+YYYY-MM-dd}'}
}

(3)啟動

[root@elk ~]# cd /usr/local/logstash-7.13.2
[root@elk ~]# nohup bin/logstash -f etc/conf.d/  --config.reload.automatic &

3、Kibana部署

  • ?服務器

安裝軟件主機名IP地址系統版本配置
KibanaElk10.3.145.14centos7.5.18042核4G
軟件版本:nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz
1. 安裝配置Kibana

(1)安裝

[root@elk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C /usr/local/

(2)配置

[root@elk ~]# echo '
server.port: 5601
server.host: "192.168.181.128"
elasticsearch.hosts: ["http://192.168.181.128:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
'>>/usr/local/kibana-7.13.2-linux-x86_64/config/kibana.yml含義:
server.port kibana服務端口,默認5601
server.host kibana主機IP地址,默認localhost
elasticsearch.url   用來做查詢的ES節點的URL,默認http://localhost:9200
kibana.index        kibana在Elasticsearch中使用索引來存儲保存的searches, visualizations和dashboards,默認.kibana

(3)啟動

[root@elk ~]# cd /usr/local/kibana-7.13.2-linux-x86_64/
[root@elk ~]# nohup ./bin/kibana &
./bin/kibana --allow-root

4、Filebeat部署

為什么用 Filebeat ,而不用原來的 Logstash 呢?

原因很簡單,資源消耗比較大。

由于 Logstash 是跑在 JVM 上面,資源消耗比較大,后來作者用 GO 寫了一個功能較少但是資源消耗也小的輕量級的 Agent 叫 Logstash-forwarder。

后來作者加入 elastic.co 公司, Logstash-forwarder 的開發工作給公司內部 GO 團隊來搞,最后命名為 Filebeat。

Filebeat 需要部署在每臺應用服務器上,可以通過 Salt 來推送并安裝配置。

  • 服務器

安裝軟件主機名IP地址系統版本配置
filebeatKafka310.3.145.43centos7.5.18041核2G
  • 軟件版本 filebeat-7.13.2-x86_64.rpm

(1)下載
[root@kafka3 ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.2-x86_64.rpm
(2)解壓
[root@kafka3 ~]# yum install -y filebeat-7.13.2-x86_64.rpm
(3)修改配置

修改 Filebeat 配置,支持收集本地目錄日志,并輸出日志到 Kafka 集群中

[root@kafka3 ~]# vim filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/nginx/access.log
output.logstash:hosts: ["10.3.145.14:5000"]output.kafka:   hosts: ["10.3.145.41:9092","10.3.145.42:9092","10.3.145.43:9092"]topic: 'nginx'# 注意,如果需要重新讀取,請刪除/data/registry目錄 
(4)啟動
[root@kafka3 ~]# ./filebeat -e -c filebeat.yml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13934.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13934.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13934.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu18 安裝python3.8

在Ubuntu 18.04上安裝Python 3.8可以通過以下步驟完成: 1.更新包列表和已安裝的包: sudo apt update sudo apt upgrade 2.安裝依賴項: sudo apt install -y software-properties-common 3.添加Python 3.8的PPA(個人包歸檔&am…

【Docker系列】 Docker容器具體信息查詢

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

Python函數進階:四大高階函數、匿名函數、枚舉、拉鏈與遞歸詳解

系列文章目錄 Python數據類型:編程新手的必修課深入探索Python字符串:技巧、方法與實戰Python 函數基礎詳解Python正則表達式詳解:掌握文本匹配的魔法Python文件操作寶典:一步步教你玩轉文件讀寫Python面向對象基礎與魔法方法詳解…

databricks~Unity Catalog

Unity Catalog hierarchy 包含了用戶授權管理信息和元數據信息 workspace with unity catalog hierarchy unity metastore Ref: https://www.youtube.com/playlist?listPLY-V_O-O7h4fwcHcXgkR_zTLvddvE_GfC

[力扣題解] 494. 目標和

題目:494. 目標和 思路 01背包 轉換為01背包問題 難點在于看出可以用背包問題解決本題; 題目字面意思是劃分出一堆再減去另一堆,得到的結果想要等于target,設定一堆為正,記為left,另一堆為負&#xff0…

ChatGPT類大模型應用入門了解與使用

一 前言 ChatGPT大眾熱情逐漸褪去,但在后臺技術人的探索還處于熱火朝天狀態。如果我們生活的世界是一杯清水, 那類似ChatGPT的語言大模型技術的橫空出世就如滴入水杯的一滴墨汁,第一滴很顯眼,但實際上是后續墨汁慢慢擴散滲透才是…

Windows11下使用Qt5.14.2編譯QtXlsx驅動詳細步驟

原有&#xff1a;由于系統需要將QTableWidget表格中的數據導出、在Windows下最開始使用Excel.Application組件實現了導出功能&#xff0c;后面將代碼轉換到Ubuntu20.04下進行編譯&#xff0c;發現項目.pro文件中的QT axcontainer和代碼.h文件中的#include <QAxObject>跟…

基于圖鳥UI的資訊名片模版開發與應用

一、引言 在前端技術日新月異的今天&#xff0c;快速、高效、美觀的UI組件庫和模板成為了開發者們關注的焦點。圖鳥UI作為一款集成了基礎布局元素、配色體系、圖標icon和精選組件的UI框架&#xff0c;為前端開發者提供了極大的便利。本文將以圖鳥UI為基礎&#xff0c;探討基于…

接口測試工具有哪些,哪些比較火

接口測試工具可以幫助開發人員和測試人員更高效地進行接口測試&#xff0c;以下是一些常用的接口測試工具&#xff1a; 1. **Postman** Postman 是一款廣受歡迎的接口測試工具&#xff0c;它提供了豐富的功能和直觀的用戶界面&#xff0c;幫助開發人員和測試人員輕松進行 API…

如何讓外網訪問內網服務?

隨著互聯網的快速發展&#xff0c;越來越多的企業和個人需要將內網服務暴露給外網用戶訪問。由于安全和隱私等因素的考慮&#xff0c;直接將內網服務暴露在外網是非常不安全的做法。如何讓外網用戶安全訪問內網服務成為了一個重要的問題。 在這個問題上&#xff0c;天聯公司提供…

golang rune類型解析,與byte,string對比,以及應用

Golang中的rune類型是一個32位的整數類型(int32)&#xff0c;它是用來表示Unicode碼點的。rune類型的值可以是任何合法的Unicode碼點&#xff0c;它通常用來處理字符串中的單個字符。 在Golang中&#xff0c;字符常量使用單引號來表示&#xff0c;例如 a。使用單引號表示的字符…

rust - 使用 cargo-nextest 替代 cargo test

cargo-nextest 是新一代的rust測試程序&#xff0c;能夠極大提升測試性能&#xff0c;可以完全替代 cargo test 命令。 1. 安裝 cargo install cargo-nextest2. 執行測試 project ├── Cargo.toml ├── LICENSE ├── README.md ├── build.rs ├── core_utils │ …

K-means聚類模型

目錄 1.定義 2.K-means聚類模型的優點 3.K-means聚類模型的缺點 4.K-means聚類模型的應用場景 5.對K-means聚類模型未來的展望 6.小結 1.定義 什么是 K-means 聚類模型&#xff1f;K-means 聚類模型是一種無監督學習算法&#xff0c;用于將數據劃分為不同的組或簇&#…

Lumines推出RGBL彩色混合LED

Luminus Devices傾心打造了一款嶄新的4合1 RGBL&#xff08;紅綠藍綠石灰&#xff09;LED系列&#xff0c;專為舞臺與建筑照明領域量身打造&#xff0c;滿足對高顯色指數&#xff08;CRI&#xff09;與高輸出顏色混合的苛刻需求。這一創新之舉&#xff0c;無疑是照明技術的一次…

使用HiBurn燒錄鴻蒙.bin文件到Hi3861開發板

鴻蒙官方文檔的“Hi3861開發板第一個示例程序”中描述了——如何使用DevEco Device Tool工具燒錄二進制文件到Hi3861開發板&#xff1b; 本文將介紹如何使用HiBurn工具燒錄鴻蒙的.bin文件到Hi3861開發板。 獲取HiBurn工具 通過鴻蒙官方文檔我們知道DevEco Device Tool是一個V…

SAP--ABAP踩坑日志---日期函數的踩坑-----FIMA_DATE_CREATE

當你需要動態生成日期列的時候,出現了奇怪的BUG怎么辦? 用函數循環循環產生獲取下一個日期,結果出現了5.30 直接到6.1了 …我的5.31呢??? 解決方案:用這個,不要瞎用函數啊! day_col day_col 1.

Mybatis 與 MybatisPlus 打印sql日志配置

Mybatis 與 MybatisPlus 打印sql日志配置 方法一&#xff1a; Mybatis 配置&#xff1a; mybatis:configuration: ### 開啟打印sql配置log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ### 開啟駝峰配置 map-underscore-to-camel-case&#xff1a;trueMyb…

docker所在磁盤空間不足 遷移數據

1.查看原始目錄docker info | grep "Docker Root Dir" 一般在/var/lib/docker 2.停止docker service docekr stop 3.移動數據 注意 移動前不要創建docker目錄&#xff01; mv /var/lib/docker /home/docker 4.進入目錄查看是否與原始目錄相同&#xff0c;確認一…

LeetCode 題解:112. 路徑總和,遞歸,JavaScript,詳細注釋

原題鏈接&#xff1a; 112. 路徑總和 解題思路&#xff1a; 如果求根節點到葉子節點的路徑上的節點值之和&#xff0c;假設共有3個節點&#xff0c;那么寫成計算式是val1 val2 val3 sum那么將計算式轉換就可以得到val3 sum - val1 - val2也就是說&#xff0c;問題可以從…

表現層框架設計之表現層設計模式_2.MVP模式

1.MVP模式 MVP&#xff08;Model-View-Presenter&#xff09;模式提供數據&#xff0c;View負責顯示&#xff0c;Controller/Presenter負責邏輯的處理。MVP是從經典的模式MVC演變而來&#xff0c;它們的基本思想有相通的地方&#xff1a;Controller/Presenter負責邏輯的處理&am…