国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了分布式ELK 企業(yè)級(jí)日志分析系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、ELK的相關(guān)知識(shí)

1.ELK簡(jiǎn)介

ELK平臺(tái)是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個(gè)開(kāi)源工具配合使用, 完成更強(qiáng)大的用戶對(duì)日志的查詢、排序、統(tǒng)計(jì)需求。

  • ElasticSearch:是基于Lucene(一個(gè)全文檢索引擎的架構(gòu))開(kāi)發(fā)的分布式存儲(chǔ)檢索引擎,用來(lái)存儲(chǔ)各類(lèi)日志。Elasticsearch 是用 Java 開(kāi)發(fā)的,可通過(guò) RESTful Web 接口,讓用戶可以通過(guò)瀏覽器與 Elasticsearch 通信。Elasticsearch是一個(gè)實(shí)時(shí)的、分布式的可擴(kuò)展的搜索引擎,允許進(jìn)行全文、結(jié)構(gòu)化搜索,它通常用于索引和搜索大容量的日志數(shù)據(jù),也可用于搜索許多不同類(lèi)型的文檔。
  • Kiabana:Kibana 通常與 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一個(gè)功能強(qiáng)大的數(shù)據(jù)可視化 Dashboard,Kibana 提供圖形化的 web 界面來(lái)瀏覽 Elasticsearch 日志數(shù)據(jù),可以用來(lái)匯總、分析和搜索重要數(shù)據(jù)。
  • Logstash:作為數(shù)據(jù)收集引擎。它支持動(dòng)態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過(guò)濾、分析、豐富、統(tǒng)一格式等操作,然后存儲(chǔ)到用戶指定的位置,一般會(huì)發(fā)送給 Elasticsearch。
  • Logstash 由 Ruby 語(yǔ)言編寫(xiě),運(yùn)行在 Java 虛擬機(jī)(JVM)上,是一款強(qiáng)大的數(shù)據(jù)處理工具, 可以實(shí)現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出。Logstash 具有強(qiáng)大的插件功能,常用于日志處理。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

可以添加的其它組件:

Filebeat:輕量級(jí)的開(kāi)源日志文件數(shù)據(jù)搜集器。通常在需要采集數(shù)據(jù)的客戶端安裝 Filebeat,并指定目錄與日志格式,F(xiàn)ilebeat 就能快速收集數(shù)據(jù),并發(fā)送給 logstash 進(jìn)行解析,或是直接發(fā)給 Elasticsearch 存儲(chǔ),性能上相比運(yùn)行于 JVM 上的 logstash 優(yōu)勢(shì)明顯,是對(duì)它的替代。常應(yīng)用于 EFLK 架構(gòu)當(dāng)中。

?filebeat 結(jié)合 logstash 帶來(lái)好處:

1)通過(guò) Logstash 具有基于磁盤(pán)的自適應(yīng)緩沖系統(tǒng),該系統(tǒng)將吸收傳入的吞吐量,從而減輕 Elasticsearch 持續(xù)寫(xiě)入數(shù)據(jù)的壓力
2)從其他數(shù)據(jù)源(例如數(shù)據(jù)庫(kù),S3對(duì)象存儲(chǔ)或消息傳遞隊(duì)列)中提取
3)將數(shù)據(jù)發(fā)送到多個(gè)目的地,例如S3,HDFS(Hadoop分布式文件系統(tǒng))或?qū)懭胛募?4)使用條件數(shù)據(jù)流邏輯組成更復(fù)雜的處理管道
  • 緩存/消息隊(duì)列(redis、kafka、RabbitMQ等):可以對(duì)高并發(fā)日志數(shù)據(jù)進(jìn)行流量削峰和緩沖,這樣的緩沖可以一定程度的保護(hù)數(shù)據(jù)不丟失,還可以對(duì)整個(gè)架構(gòu)進(jìn)行應(yīng)用解耦。
  • ?Fluentd:是一個(gè)流行的開(kāi)源數(shù)據(jù)收集器。由于 logstash 太重量級(jí)的缺點(diǎn),Logstash 性能低、資源消耗比較多等問(wèn)題,隨后就有 Fluentd 的出現(xiàn)。相比較 logstash,F(xiàn)luentd 更易用、資源消耗更少、性能更高,在數(shù)據(jù)處理上更高效可靠,受到企業(yè)歡迎,成為 logstash 的一種替代方案,常應(yīng)用于 EFK 架構(gòu)當(dāng)中。在 Kubernetes 集群中也常使用 EFK 作為日志數(shù)據(jù)收集的方案。
  • 在 Kubernetes 集群中一般是通過(guò) DaemonSet 來(lái)運(yùn)行 Fluentd,以便它在每個(gè) Kubernetes 工作節(jié)點(diǎn)上都可以運(yùn)行一個(gè) Pod。 它通過(guò)獲取容器日志文件、過(guò)濾和轉(zhuǎn)換日志數(shù)據(jù),然后將數(shù)據(jù)傳遞到 Elasticsearch 集群,在該集群中對(duì)其進(jìn)行索引和存儲(chǔ)。

?2.為什么要使用 ELK?

日志主要包括系統(tǒng)日志、應(yīng)用程序日志和安全日志。系統(tǒng)運(yùn)維和開(kāi)發(fā)人員可以通過(guò)日志了解服務(wù)器軟硬件信息、檢查配置過(guò)程中的錯(cuò)誤及錯(cuò)誤發(fā)生的原因。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷,性能安全性,從而及時(shí)采取措施糾正錯(cuò)誤。
往往單臺(tái)機(jī)器的日志我們使用grep、awk等工具就能基本實(shí)現(xiàn)簡(jiǎn)單分析,但是當(dāng)日志被分散的儲(chǔ)存不同的設(shè)備上。如果你管理數(shù)十上百臺(tái)服務(wù)器,你還在使用依次登錄每臺(tái)機(jī)器的傳統(tǒng)方法查閱日志。這樣是不是感覺(jué)很繁瑣和效率低下。當(dāng)務(wù)之急我們使用集中化的日志管理,例如:開(kāi)源的syslog,將所有服務(wù)器上的日志收集匯總。集中化管理日志后,日志的統(tǒng)計(jì)和檢索又成為一件比較麻煩的事情,一般我們使用 grep、awk和wc等Linux命令能實(shí)現(xiàn)檢索和統(tǒng)計(jì),但是對(duì)于要求更高的查詢、排序和統(tǒng)計(jì)等要求和龐大的機(jī)器數(shù)量依然使用這樣的方法難免有點(diǎn)力不從心。
一般大型系統(tǒng)是一個(gè)分布式部署的架構(gòu),不同的服務(wù)模塊部署在不同的服務(wù)器上,問(wèn)題出現(xiàn)時(shí),大部分情況需要根據(jù)問(wèn)題暴露的關(guān)鍵信息,定位到具體的服務(wù)器和服務(wù)模塊,構(gòu)建一套集中式日志系統(tǒng),可以提高定位問(wèn)題的效率。
?

3.完整日志系統(tǒng)基本特征?

收集:能夠采集多種來(lái)源的日志數(shù)據(jù)
傳輸:能夠穩(wěn)定的把日志數(shù)據(jù)解析過(guò)濾并傳輸?shù)酱鎯?chǔ)系統(tǒng)
存儲(chǔ):存儲(chǔ)日志數(shù)據(jù)
分析:支持 UI 分析
警告:能夠提供錯(cuò)誤報(bào)告,監(jiān)控機(jī)制

?

4.?ELK 的工作原理:

(1)在所有需要收集日志的服務(wù)器上部署Logstash;或者先將日志進(jìn)行集中化管理在日志服務(wù)器上,在日志服務(wù)器上部署 Logstash。
(2)Logstash 收集日志,將日志格式化并輸出到 Elasticsearch 群集中。
(3)Elasticsearch 對(duì)格式化后的數(shù)據(jù)進(jìn)行索引和存儲(chǔ)。
(4)Kibana 從 ES 群集中查詢數(shù)據(jù)生成圖表,并進(jìn)行前端數(shù)據(jù)的展示。

?總結(jié):logstash作為日志搜集器,從數(shù)據(jù)源采集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,格式化處理,然后交由Elasticsearch存儲(chǔ),kibana對(duì)日志進(jìn)行可視化處理。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

二、ELK Elasticsearch 集群部署(在Node1、Node2節(jié)點(diǎn)上操作)

實(shí)驗(yàn)設(shè)計(jì)

node1節(jié)點(diǎn)(2C/4G):node1/192.168.190.10				Elasticsearch
node2節(jié)點(diǎn)(2C/4G):node2/192.168.190.20				Elasticsearch
Apache節(jié)點(diǎn):apache/192.168.190.30					Logstash  Kibana  Apache

systemctl stop firewalld
setenforce 0

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?1.環(huán)境準(zhǔn)備

設(shè)置Java環(huán)境

java -version		#如果沒(méi)有安裝,yum -y install java
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?2.部署 Elasticsearch 軟件

1)安裝elasticsearch—rpm包

上傳elasticsearch-6.7.2.rpm到/opt目錄下
cd /opt
rpm -ivh elasticsearch-6.7.2.rpm

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

2)?修改elasticsearch主配置文件

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
--17--取消注釋?zhuān)付好?cluster.name: my-elk-cluster
--23--取消注釋?zhuān)付ü?jié)點(diǎn)名字:Node1節(jié)點(diǎn)為node1,Node2節(jié)點(diǎn)為node2
node.name: node1
node.master: true		#是否master節(jié)點(diǎn),false為否
node.data: true			#是否數(shù)據(jù)節(jié)點(diǎn),false為否
--33--取消注釋?zhuān)付〝?shù)據(jù)存放路徑
path.data: /var/lib/elasticsearch
--37--取消注釋?zhuān)付ㄈ罩敬娣怕窂?path.logs: /var/log/elasticsearch
--43--取消注釋?zhuān)苊鈋s使用swap交換分區(qū)
bootstrap.memory_lock: true
--55--取消注釋?zhuān)O(shè)置監(jiān)聽(tīng)地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注釋?zhuān)珽S 服務(wù)的默認(rèn)監(jiān)聽(tīng)端口為9200
http.port: 9200					#指定es集群提供外部訪問(wèn)的接口
transport.tcp.port: 9300		#指定es集群內(nèi)部通信接口
--68--取消注釋?zhuān)喊l(fā)現(xiàn)通過(guò)單播實(shí)現(xiàn),指定要發(fā)現(xiàn)的節(jié)點(diǎn)
discovery.zen.ping.unicast.hosts: ["192.168.190.10:9300", "192.168.190.20:9300"]

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?3)es 性能調(diào)優(yōu)參數(shù)

優(yōu)化最大內(nèi)存大小和最大文件描述符的數(shù)量
vim /etc/security/limits.conf
......
*  soft    nofile          65536
*  hard    nofile          65536
*  soft    nproc           32000
*  hard    nproc           32000
*  soft    memlock         unlimited
*  hard    memlock         unlimited

vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

需重啟生效

?分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?優(yōu)化elasticsearch用戶擁有的內(nèi)存權(quán)限

由于ES構(gòu)建基于lucene, 而lucene設(shè)計(jì)強(qiáng)大之處在于lucene能夠很好的利用操作系統(tǒng)內(nèi)存來(lái)緩存索引數(shù)據(jù),以提供快速的查詢性能。lucene的索引文件segements是存儲(chǔ)在單文件中的,并且不可變,對(duì)于OS來(lái)說(shuō),能夠很友好地將索引文件保持在cache中,以便快速訪問(wèn);因此,我們很有必要將一半的物理內(nèi)存留給lucene ; 另一半的物理內(nèi)存留給ES(JVM heap )。所以, 在ES內(nèi)存設(shè)置方面,可以遵循以下原則:
1.當(dāng)機(jī)器內(nèi)存小于64G時(shí),遵循通用的原則,50%給ES,50%留給操作系統(tǒng),供lucene使用
2.當(dāng)機(jī)器內(nèi)存大于64G時(shí),遵循原則:建議分配給ES分配 4~32G 的內(nèi)存即可,其它內(nèi)存留給操作系統(tǒng),供lucene使用

im /etc/sysctl.conf
#一個(gè)進(jìn)程可以擁有的最大內(nèi)存映射區(qū)域數(shù),參考數(shù)據(jù)(分配 2g/262144,4g/4194304,8g/8388608)
vm.max_map_count=262144

sysctl -p
sysctl -a | grep vm.max_map_count

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

4)啟動(dòng)elasticsearch是否成功開(kāi)啟

systemctl start elasticsearch.service
systemctl enable elasticsearch.service
netstat -antp | grep 9200

5)查看節(jié)點(diǎn)信息

瀏覽器訪問(wèn)  http://192.168.190.10:9200  、 http://192.168.190.20:9200 查看節(jié)點(diǎn) Node1、Node2 的信息。

瀏覽器訪問(wèn) http://192.168.190.10:9200/_cluster/health?pretty  、 http://192.168.190.20:9200/_cluster/health?pretty查看群集的健康情況,可以看到 status 值為 green(綠色), 表示節(jié)點(diǎn)健康運(yùn)行。

瀏覽器訪問(wèn) http://192.168.190.10:9200/_cluster/state?pretty  檢查群集狀態(tài)信息。

使用上述方式查看群集的狀態(tài)對(duì)用戶并不友好,可以通過(guò)安裝 Elasticsearch-head 插件,可以更方便地管理群集。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

3.安裝 Elasticsearch-head 插件

Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作為獨(dú)立服務(wù)進(jìn)行安裝,需要使用npm工具(NodeJS的包管理工具)安裝。
安裝 Elasticsearch-head 需要提前安裝好依賴軟件 node 和 phantomjs。
node:是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。
phantomjs:是一個(gè)基于 webkit 的JavaScriptAPI,可以理解為一個(gè)隱形的瀏覽器,任何基于 webkit 瀏覽器做的事情,它都可以做到。

?1)編譯安裝 node

上傳軟件包 node-v8.2.1.tar.gz 到/opt
yum install gcc gcc-c++ make -y

cd /opt
tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/
./configure
make && make install

2)安裝 phantomjs

上傳軟件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到
cd /opt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd /opt/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

3)?安裝 Elasticsearch-head 數(shù)據(jù)可視化工具

上傳軟件包 elasticsearch-head-master.zip 到/opt
cd /opt
unzip elasticsearch-head-master.zip
cd /opt/elasticsearch-head/
npm install		 //安裝依賴包

4)?修改 Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml
......
--末尾添加以下內(nèi)容--
http.cors.enabled: true				#開(kāi)啟跨域訪問(wèn)支持,默認(rèn)為 false
http.cors.allow-origin: "*"			#指定跨域訪問(wèn)允許的域名地址為所有

systemctl restart elasticsearch

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

5) 啟動(dòng) elasticsearch-head 服務(wù)

必須在解壓后的 elasticsearch-head 目錄下啟動(dòng)服務(wù),進(jìn)程會(huì)讀取該目錄下的 gruntfile.js 文件,否則可能啟動(dòng)失敗。
cd /usr/local/src/elasticsearch-head/
npm run start &

> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

#elasticsearch-head 監(jiān)聽(tīng)的端口是 9100
netstat -natp |grep 9100

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

6)?通過(guò) Elasticsearch-head 查看 Elasticsearch 信息

通過(guò)瀏覽器訪問(wèn) http://192.168.190.10:9100/ 地址并連接群集。如果看到群集健康值為 green 綠色,代表群集很健康。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

7)?插入索引

通過(guò)命令插入一個(gè)測(cè)試索引,索引為 index-demo,類(lèi)型為 test。
curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
//輸出結(jié)果如下:
{
"_index" : "index-demo",
"_type" : "test",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : true
}

瀏覽器訪問(wèn) http://192.168.190.10:9100/ 查看索引信息,可以看見(jiàn)索引默認(rèn)被分片5個(gè),并且有一個(gè)副本。
點(diǎn)擊“數(shù)據(jù)瀏覽”,會(huì)發(fā)現(xiàn)在node1上創(chuàng)建的索引為 index-demo,類(lèi)型為 test 的相關(guān)信息。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

三、?ELK Logstash 部署(在 Apache 節(jié)點(diǎn)上操作)

Logstash 一般部署在需要監(jiān)控其日志的服務(wù)器。在本案例中,Logstash 部署在 Apache 服務(wù)器上,用于收集 Apache 服務(wù)器的日志信息并發(fā)送到 Elasticsearch。

1.更改主機(jī)名
hostnamectl set-hostname apache

2.安裝Apahce服務(wù)(httpd)
yum -y install httpd
systemctl start httpd

3.安裝Java環(huán)境
yum -y install java
java -version

4.安裝logstash
#上傳軟件包 logstash-6.7.2.rpm 到/opt目錄下
cd /opt
rpm -ivh logstash-6.7.2.rpm                          
systemctl start logstash.service                      
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
5.測(cè)試 Logstash
Logstash 命令常用選項(xiàng):
-f:通過(guò)這個(gè)選項(xiàng)可以指定 Logstash 的配置文件,根據(jù)配置文件配置 Logstash 的輸入和輸出流。
-e:從命令行中獲取,輸入、輸出后面跟著字符串,該字符串可以被當(dāng)作 Logstash 的配置(如果是空,則默認(rèn)使用 stdin 作為輸入,stdout 作為輸出)。
-t:測(cè)試配置文件是否正確,然后退出。

定義輸入和輸出流:
#輸入采用標(biāo)準(zhǔn)輸入,輸出采用標(biāo)準(zhǔn)輸出(類(lèi)似管道),新版本默認(rèn)使用 rubydebug 格式輸出
logstash -e 'input { stdin{} } output { stdout{} }'

#使用 rubydebug 輸出詳細(xì)格式顯示,codec 為一種編解碼器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
......
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/awesome_print-1.7.0/lib/awesome_print/formatters/base_formatter.rb:31: warning: constant ::Fixnum is deprecated
{
    "@timestamp" => 2023-07-11T09:15:23.446Z,
       "message" => "www.baidu.com",
          "host" => "apache",
      "@version" => "1"
}


#使用 Logstash 將信息寫(xiě)入 Elasticsearch 中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.190.10:9200"] } }'
			 輸入				輸出			對(duì)接
......
www.baidu.com										#鍵入內(nèi)容(標(biāo)準(zhǔn)輸入)
www.sina.com.cn										#鍵入內(nèi)容(標(biāo)準(zhǔn)輸入)
www.google.com										#鍵入內(nèi)容(標(biāo)準(zhǔn)輸入)

//結(jié)果不在標(biāo)準(zhǔn)輸出顯示,而是發(fā)送至 Elasticsearch 中,可瀏覽器訪問(wèn) http://192.168.190.10:9100/ 查看索引信息和數(shù)據(jù)瀏覽。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

6.定義 logstash配置文件
Logstash 配置文件基本由三部分組成:input、output 以及 filter(可選,根據(jù)需要選擇使用)。
●input:表示從數(shù)據(jù)源采集數(shù)據(jù),常見(jiàn)的數(shù)據(jù)源如Kafka、日志文件等
file   beats   kafka   redis   stdin

●filter:表示數(shù)據(jù)處理層,包括對(duì)數(shù)據(jù)進(jìn)行格式化處理、數(shù)據(jù)類(lèi)型轉(zhuǎn)換、數(shù)據(jù)過(guò)濾等,支持正則表達(dá)式
grok       對(duì)若干個(gè)大文本字段進(jìn)行再分割成一些小字段   (?<字段名>正則表達(dá)式)   字段名: 正則表達(dá)式匹配到的內(nèi)容
date       對(duì)數(shù)據(jù)中的時(shí)間格式進(jìn)行統(tǒng)一和格式化
mutate     對(duì)一些無(wú)用的字段進(jìn)行剔除,或增加字段
mutiline   對(duì)多行數(shù)據(jù)進(jìn)行統(tǒng)一編排,多行合并或拆分

●output:表示將Logstash收集的數(shù)據(jù)經(jīng)由過(guò)濾器處理之后輸出到Elasticsearch。
elasticsearch   stdout 

#格式如下:
input {...}
filter {...}
output {...}

#在每個(gè)部分中,也可以指定多個(gè)訪問(wèn)方式。例如,若要指定兩個(gè)日志來(lái)源文件,則格式如下:
input {
	file { path =>"/var/log/messages" type =>"syslog"}
	file { path =>"/var/log/httpd/access.log" type =>"apache"}
}

#修改 Logstash 配置文件,讓其收集系統(tǒng)日志/var/log/messages,并將其輸出到 elasticsearch 中。
chmod +r /var/log/messages					#讓 Logstash 可以讀取日志

cd /etc/logstash/conf.d/
vim system.conf
input {
    file{
        path =>"/var/log/messages"
        type =>"system"
        start_position =>"beginning"
		# ignore_older => 604800
        sincedb_path => "/etc/logstash/sincedb_path/log_progress"
        add_field => {"log_hostname"=>"${HOSTNAME}"}
    }
}
#path表示要收集的日志的文件位置
#type是輸入ES時(shí)給結(jié)果增加一個(gè)叫type的屬性字段
#start_position可以設(shè)置為beginning或者end,beginning表示從頭開(kāi)始讀取文件,end表示讀取最新的,這個(gè)要和ignore_older一起使用
#ignore_older表示了針對(duì)多久的文件進(jìn)行監(jiān)控,默認(rèn)一天,單位為秒,可以自己定制,比如默認(rèn)只讀取一天內(nèi)被修改的文件
#sincedb_path表示文件讀取進(jìn)度的記錄,每行表示一個(gè)文件,每行有兩個(gè)數(shù)字,第一個(gè)表示文件的inode,第二個(gè)表示文件讀取到的位置(byteoffset)。默認(rèn)為$HOME/.sincedb*
#add_field增加屬性。這里使用了${HOSTNAME},即本機(jī)的環(huán)境變量,如果要使用本機(jī)的環(huán)境變量,那么需要在啟動(dòng)命令上加--alow-env

output {
    elasticsearch {												#輸出到 elasticsearch
        hosts => ["192.168.190.10:9200","192.168.190.20:9200"]	#指定 elasticsearch 服務(wù)器的地址和端口
        index =>"system-%{+YYYY.MM.dd}"							#指定輸出到 elasticsearch 的索引格式
    }
}

mkdir /etc/logstash/sincedb_path/
touch /etc/logstash/sincedb_path/log_progress
chown logstash:logstash /etc/logstash/sincedb_path/log_progress

logstash -f system.conf

瀏覽器訪問(wèn) http://192.168.190.10:9100/ 查看索引信息

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?四、ELK Kiabana 部署(在 Node1 節(jié)點(diǎn)上操作)

1.安裝 Kiabana
#上傳軟件包 kibana-6.7.2-x86_64.rpm 到/opt目錄
cd /opt
rpm -ivh kibana-6.7.2-x86_64.rpm

2.設(shè)置 Kibana 的主配置文件
vim /etc/kibana/kibana.yml
--2--取消注釋?zhuān)琄iabana 服務(wù)的默認(rèn)監(jiān)聽(tīng)端口為5601
server.port: 5601
--7--取消注釋?zhuān)O(shè)置 Kiabana 的監(jiān)聽(tīng)地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--28--取消注釋?zhuān)渲胑s服務(wù)器的ip,如果是集群則配置該集群中master節(jié)點(diǎn)的ip
elasticsearch.url:  ["http://192.168.80.10:9200","http://192.168.80.11:9200"] 
--37--取消注釋?zhuān)O(shè)置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
--96--取消注釋?zhuān)渲胟ibana的日志文件路徑(需手動(dòng)創(chuàng)建),不然默認(rèn)是messages里記錄日志
logging.dest: /var/log/kibana.log
3.創(chuàng)建日志文件,啟動(dòng) Kibana 服務(wù)
touch /var/log/kibana.log
chown kibana:kibana /var/log/kibana.log

systemctl start kibana.service
systemctl enable kibana.service

netstat -natp | grep 5601

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

4.驗(yàn)證 Kibana
瀏覽器訪問(wèn) http://192.168.190.10:5601
第一次登錄需要添加一個(gè) Elasticsearch 索引:
Management -> Index Pattern -> Create index pattern
Index pattern 輸入:system-*	#在索引名中輸入之前配置的 Output 前綴“system”

Next step -> Time Filter field name 選擇 @timestamp -> Create index pattern

單擊 “Discover” 按鈕可查看圖表信息及日志信息。
數(shù)據(jù)展示可以分類(lèi)顯示,在“Available Fields”中的“host”,然后單擊 “add”按鈕,可以看到按照“host”篩選后的結(jié)果

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

5.將 Apache 服務(wù)器的日志(訪問(wèn)的、錯(cuò)誤的)添加到 Elasticsearch 并通過(guò) Kibana 顯示
vim /etc/logstash/conf.d/apache_log.conf
input {
    file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
    }
    file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
    }
}
output {
    if [type] == "access" {
        elasticsearch {
            hosts => ["192.168.190.10:9200","192.168.190.20:9200"]
            index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
	if [type] == "error" {
        elasticsearch {
            hosts => ["192.168.190.10:9200","192.168.190.20:9200"]
            index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}

cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf

瀏覽器訪問(wèn) http://192.168.190.10:9100 查看索引是否創(chuàng)建

瀏覽器訪問(wèn) http://192.168.190.10:5601 登錄 Kibana,單擊“Index Pattern -> Create Index Pattern”按鈕添加索引, 在索引名中輸入之前配置的 Output 前綴 apache_access-*,并單擊“Create”按鈕。在用相同的方法添加 apache_error-*索引。
選擇“Discover”選項(xiàng)卡,在中間下拉列表中選擇剛添加的 apache_access-* 、apache_error-* 索引, 可以查看相應(yīng)的圖表及日志信息。

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

五、 Filebeat+ELK 部署?

實(shí)驗(yàn)設(shè)計(jì)

Node1節(jié)點(diǎn)(2C/4G):node1/192.168.190.10?? ??? ??? ??? ??? ?Elasticsearch
Node2節(jié)點(diǎn)(2C/4G):node2/192.168.190.20? ? ? ? ? ? ? ? ? ? Elasticsearch
Apache節(jié)點(diǎn):apache/192.168.190.30? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Logstash ?Kibana ?Apache
Filebeat節(jié)點(diǎn):filebeat/192.168.190.40? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Filebeat

?

1.安裝filebeat并設(shè)置主配置文件 (在apache服務(wù)器上)

1.安裝 Filebeat
#上傳軟件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目錄
tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeat


2.設(shè)置 filebeat 的主配置文件
cd /usr/local/filebeat

vim filebeat.yml
filebeat.inputs:
- type: log         #指定 log 類(lèi)型,從日志文件中讀取消息
  enabled: true
  paths:
    - /var/log/messages       #指定監(jiān)控的日志文件
    - /var/log/*.log
  tags: ["sys"]		#設(shè)置索引標(biāo)簽
  fields:           #可以使用 fields 配置選項(xiàng)設(shè)置一些參數(shù)字段添加到 output 中
    service_name: filebeat
    log_type: syslog
    from: 192.168.190.40

--------------Elasticsearch output-------------------
(全部注釋掉)

----------------Logstash output---------------------
output.logstash:
  hosts: ["192.168.190.30:5044"]      #指定 logstash 的 IP 和端口

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

2.在 Logstash 組件所在節(jié)點(diǎn)上新建一個(gè) Logstash 配置文件

cd /etc/logstash/conf.d

vim filebeat.conf
input {
    beats {
        port => "5044"
    }
}
#######################################################################
#filebeat發(fā)送給logstash的日志內(nèi)容會(huì)放到message字段里面,logstash使用grok插件正則匹配message字段內(nèi)容進(jìn)行字段分割
#Kibana自帶grok的正則匹配的工具:http://<your kibana IP>:5601/app/kibana#/dev_tools/grokdebugger
# %{IPV6}|%{IPV4} 為 logstash 自帶的 IP 常量
filter {
  grok {
    match => ["message", "(?<remote_addr>%{IPV6}|%{IPV4})[\s\-]+\[(?<logTime>.*)\]\s+\"(?<method>\S+)\s+(?<url_path>.+)\"\s+(?<rev_code>\d+) \d+ \"(?<req_addr>.+)\" \"(?<content>.*)\""]
  }
}
#######################################################################
output {
    elasticsearch {
        hosts => ["192.168.80.10:9200","192.168.80.11:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

3.啟動(dòng) logstash

logstash -f filebeat.conf

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?此時(shí):屏幕輸出的日志以及發(fā)生改變(Logstash的新建配置文件中output模塊中stdout)?

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

?4.測(cè)試索引

瀏覽器訪問(wèn) http://192.168.190.10:5601 登錄 Kibana,單擊“Create Index Pattern”按鈕添加索引“filebeat-*”,單擊 “create” 按鈕創(chuàng)建,單擊 “Discover” 按鈕可查看圖表信息及日志信息。
分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk

分布式ELK 企業(yè)級(jí)日志分析系統(tǒng),elk文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-559816.html

到了這里,關(guān)于分布式ELK 企業(yè)級(jí)日志分析系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ELK企業(yè)級(jí)日志分析系統(tǒng)

    目錄 一、ELK理論 1、日志服務(wù)器 2、ELK日志分析系統(tǒng) 3、日志處理步驟 4、ELK簡(jiǎn)介 5、為什么要使用ELK 6、完整日志系統(tǒng)基本特征 7、ELK的工作原理 8、總結(jié) 二、ELK集群之部署elasticsearch集群部署 1、環(huán)境準(zhǔn)備 2、部署elasticsearch 軟件 2.1?修改elasticsearch 主配置文件 2.3?創(chuàng)建數(shù)據(jù)存放

    2024年02月02日
    瀏覽(28)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng)(一)

    ELK 企業(yè)級(jí)日志分析系統(tǒng)(一)

    服務(wù)器數(shù)量較少時(shí) 使用 rsyslog 或 腳本 收集、分割日志,統(tǒng)一匯總到專(zhuān)門(mén)存放日志的日志服務(wù)器保存管理。 (查看日志可把需要的日志文件傳輸?shù)?windows 主機(jī)上,使用專(zhuān)業(yè)的文本工具打開(kāi)分析日志) 服務(wù)器數(shù)量較多時(shí) 使用 ELK 收集日志,存儲(chǔ)日志,展示日志。 日志主要包括

    2024年02月16日
    瀏覽(28)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng)(二)

    ELK 企業(yè)級(jí)日志分析系統(tǒng)(二)

    目錄 ELK Kiabana 部署(在 Node1 節(jié)點(diǎn)上操作) 1.安裝 Kiabana 2.設(shè)置 Kibana 的主配置文件 ?3.啟動(dòng) Kibana 服務(wù) 4.驗(yàn)證 Kibana ?5.將 Apache 服務(wù)器的日志(訪問(wèn)的、錯(cuò)誤的) ?添加Elasticsearch 并通過(guò) Kibana 顯示 ?Filebeat+ELK 部署 在 filebeat?節(jié)點(diǎn)上操作 2.設(shè)置 filebeat 的主配置文件 ?

    2024年02月14日
    瀏覽(21)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng)(三)

    ELK 企業(yè)級(jí)日志分析系統(tǒng)(三)

    定義: zookeeper是一個(gè)開(kāi)源的分布式的,為分布式框架提供協(xié)調(diào)服務(wù)的Apache項(xiàng)目 工作機(jī)制: zookeeper從設(shè)計(jì)模式角度來(lái)理解:是以一個(gè)基于觀察者模式設(shè)計(jì)的分布式服務(wù)管理框架,它復(fù)習(xí)存儲(chǔ)和管理大家都關(guān)心的數(shù)據(jù),然后接受觀察者的注冊(cè),一旦這些數(shù)據(jù)的狀態(tài)發(fā)生改變,

    2024年02月15日
    瀏覽(25)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng)(四)

    ELK 企業(yè)級(jí)日志分析系統(tǒng)(四)

    1.下載安裝包 官方下載地址:http://kafka.apache.org/downloads.html cd /opt wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2.13-2.7.1.tgz 2.安裝 Kafka cd /opt/ tar zxvf kafka_2.13-2.7.1.tgz mv kafka_2.13-2.7.1 /usr/local/kafka //修改配置文件 cd /usr/local/kafka/config/ cp server.properties{,.bak} vim server.properties br

    2024年02月16日
    瀏覽(23)
  • ELK企業(yè)級(jí)日志分析平臺(tái)(一)

    ELK企業(yè)級(jí)日志分析平臺(tái)(一)

    主機(jī)部署應(yīng)用: 主機(jī) ip 角色 k8s1 192.168.56.171 cerebro server1 192.168.56.11 elasticsearch server2 192.168.56.12 elasticsearch server3 192.168.56.13 elasticsearch server4 192.168.56.14 logstash server5 192.168.56.15 kibana elasticsearch簡(jiǎn)介: Elasticsearch 是一個(gè)開(kāi)源的分布式搜索分析引擎,建立在一個(gè)全文搜索引擎庫(kù)Apac

    2024年02月07日
    瀏覽(24)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng) 簡(jiǎn)單介紹

    ELK 企業(yè)級(jí)日志分析系統(tǒng) 簡(jiǎn)單介紹

    目錄 一? ? ?ELK 簡(jiǎn)介 1,?elk?是什么 2,elk?架構(gòu)圖 3,elk?日志處理步驟 二? ??Elasticsearch?簡(jiǎn)介 1,?Elasticsearch?是什么 2,?Elasticsearch 的核心概念 3,?Elasticsearch?的原理 三? ? ?Logstash 1,?Logstash?是什么 2,Logstash?架構(gòu)圖 四,Logstash?的代替品? 1,F(xiàn)ilebeat 1.1,為什么Logs

    2024年04月13日
    瀏覽(44)
  • ELK 企業(yè)級(jí)日志分析系統(tǒng) ELFK

    ELK 企業(yè)級(jí)日志分析系統(tǒng) ELFK

    ELK平臺(tái)是一套完整的日志集中處理解決方案,將?ElasticSearch、Logstash 和 Kiabana 三個(gè)開(kāi)源工具配合使用, 完成更強(qiáng)大的用戶對(duì)日志的查詢、排序、統(tǒng)計(jì)需求。 使用ELK日志文件系統(tǒng)的原因:日志主要包括系統(tǒng)日志、應(yīng)用程序日志和安全日志。系統(tǒng)運(yùn)維和開(kāi)發(fā)人員可以通過(guò)日志了

    2024年02月07日
    瀏覽(24)
  • 【ELK企業(yè)級(jí)日志分析系統(tǒng)】部署Filebeat+ELK詳解

    【ELK企業(yè)級(jí)日志分析系統(tǒng)】部署Filebeat+ELK詳解

    接上文安裝與部署ELK詳解 (1)在Filebeat節(jié)點(diǎn)上,安裝Apache服務(wù) (2)修改Apache服務(wù)的配置文件 (3)開(kāi)啟Apache服務(wù) (4)瀏覽器訪問(wèn),驗(yàn)證Apache服務(wù) (1) 安裝Filebeat (2)設(shè)置filebeat的主配置文件 (3)啟動(dòng)filebeat (4)在Logstash組件所在節(jié)點(diǎn)上,新建一個(gè)Logstash配置文件(CentOS 7-3) (

    2024年02月16日
    瀏覽(29)
  • 【ELK企業(yè)級(jí)日志分析系統(tǒng)】安裝與部署ELK詳解

    【ELK企業(yè)級(jí)日志分析系統(tǒng)】安裝與部署ELK詳解

    ELK平臺(tái)是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash和kibana三個(gè)開(kāi)源工具配合使用 , 完成更強(qiáng)大的,用戶對(duì)日志的查詢、排序、統(tǒng)計(jì)需求。 ElasticSearch ElasticSearch:是基于Lucene(一個(gè) 全文檢索引擎的架構(gòu) )開(kāi)發(fā)的分布式存儲(chǔ)檢索引擎,用來(lái)存儲(chǔ)各類(lèi)日志。 El

    2024年02月16日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包