114網(wǎng)站做推廣怎么樣做網(wǎng)店自己怎么去推廣
文章目錄
- 一、ELK日志分析系統(tǒng)
- 1、ELK簡(jiǎn)介
- 1.2 ElasticSearch
- 1.3 Logstash
- 1.4 Kibana(展示數(shù)據(jù)可視化界面)
- 1.5 Filebeat
- 2、使用ELK的原因
- 3、完整日志系統(tǒng)的基本特征
- 4、ELK的工作原理
- 二、部署ELK日志分析系統(tǒng)
- 1、服務(wù)器配置
- 2、關(guān)閉防火墻
- 3、ELK ElasticSearch集群部署(在node1、node2節(jié)點(diǎn)上操作)
- 3.1 環(huán)境準(zhǔn)備(更改主機(jī)名、配置域名解析、查看Java環(huán)境)
- 3.2 部署ElasticSearch軟件
- 3.2.1 安裝elasticsearch-rpm包
- 3.2.2 加載系統(tǒng)服務(wù)
- 3.2.3 修改elasticsearch主配置文件
- 3.2.4 創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)
- 3.2.5 啟動(dòng)elasticsearch
- 3.2.6 查看節(jié)點(diǎn)信息
- 3.3 安裝Elasticsearch-head插件
- 3.3.1 編譯安裝node
- 3.3.2 安裝phantomjs
- 3.3.3 安裝Elasticsearch-head數(shù)據(jù)可視化工具
- 3.3.4 修改Elasticsearch主配置文件
- 3.3.5 啟動(dòng)elasticsearch-head服務(wù)
- 3.3.6 通過(guò)Elasticsearch-head查看ES信息
- 3.3.7 插入索引
- 3.3.8 瀏覽器查看索引信息
- 4、ELK-Logstash部署(在Apache節(jié)點(diǎn)上操作)
- 4.1 更改主機(jī)名
- 4.2 安裝Apache服務(wù)(httpd)
- 4.3 安裝Java環(huán)境
- 4.4 安裝logstash
- 4.5 測(cè)試Logstash
- 4.5.1 Logstash命令常用選項(xiàng)
- 4.5.2 定義輸入和輸出
- 4.5.2.1 標(biāo)準(zhǔn)輸入、輸出
- 4.5.2.2 rubydebug輸出
- 4.5.2.3 輸出到ES
- 4.6 定義logstash配置文件
- 4.7 訪問(wèn)測(cè)試
- 5、ELK-Kibana部署(在node1節(jié)點(diǎn)上操作)
- 5.1 安裝Kibana
- 5.2 設(shè)置Kibana的主配置文件
- 5.3 啟動(dòng)kibana服務(wù)
- 5.4 驗(yàn)證kibana
- 5.5 將Apache服務(wù)器的日志(訪問(wèn)的、錯(cuò)誤的)添加到ES并通過(guò)kibana顯示
- 5.6 瀏覽器訪問(wèn)
- 三、ELFK(Filebeat+ELK)
- 1、Filebeat的作用
- 2、ELFK工作流程
- 3、ELFK的部署
- 3.1 服務(wù)器配置
- 3.2 服務(wù)器環(huán)境
- 3.3 安裝filebeat
- 3.4 修改filebeat主配置文件
- 3.5 在logstash組件所在節(jié)點(diǎn)(apache節(jié)點(diǎn))上新建一個(gè)logstash配置文件
- 3.6 瀏覽器驗(yàn)證
一、ELK日志分析系統(tǒng)
1、ELK簡(jiǎn)介
- ELK平臺(tái)是一套完整的日志集中處理解決方案,將ElasticSearch、Logstash和Kibana三個(gè)開(kāi)源工具配合使用,完成更強(qiáng)大的用戶對(duì)日志的查詢、排序、統(tǒng)計(jì)需求。
- 提高安全性
- 集中存放日志(集中存放時(shí)對(duì)日志處理困難)
1.2 ElasticSearch
- ES是基于Lucene(一個(gè)全文檢索引擎的架構(gòu))開(kāi)發(fā)的分布式存儲(chǔ)檢索引擎,用來(lái)存儲(chǔ)各類日志。
- ES是用JAVA開(kāi)發(fā)的,可通過(guò)RESTful Web接口,讓用戶可以通過(guò)瀏覽器與ES通信。
- ES是個(gè)分布式搜索和分析引擎,優(yōu)點(diǎn)是能對(duì)大容量的數(shù)據(jù)進(jìn)行接近實(shí)時(shí)的存儲(chǔ)、搜索和分析操作。
1.3 Logstash
- Logstash作為數(shù)據(jù)收集引擎。它支持動(dòng)態(tài)的從各種數(shù)據(jù)源搜索數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過(guò)濾、分析、豐富、統(tǒng)一格式等操作,然后存儲(chǔ)到用戶指定的位置,一般會(huì)發(fā)送給ES。
- Logstash由JRuby語(yǔ)言編寫(xiě),運(yùn)行在JAVA虛擬機(jī)(JVM)上,是一款強(qiáng)大的數(shù)據(jù)處理工具,可以實(shí)現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出。Logstash具有強(qiáng)大的插件功能,常用于日志處理。
- 三個(gè)組件:input(數(shù)據(jù)采集)、filter(數(shù)據(jù)過(guò)濾)、 output(數(shù)據(jù)輸出)
1.4 Kibana(展示數(shù)據(jù)可視化界面)
- Kibana是基于Node.js開(kāi)發(fā)的展示工具,可以為L(zhǎng)ogstash和ES提供圖形化的日志分析Web界面展示,可以匯總、分析和搜索重要數(shù)據(jù)日志。
1.5 Filebeat
- Filebeat是一款輕量級(jí)的開(kāi)源日志文件數(shù)據(jù)搜索器。通常在需要采集數(shù)據(jù)的客戶端安裝Filebeat,并指定目錄與日志格式,Filebeat就能快速收集數(shù)據(jù),并發(fā)送給logstash進(jìn)行解析,或是直接發(fā)給ES存儲(chǔ),性能上相比運(yùn)行于JVM上的logstash優(yōu)勢(shì)明顯,是對(duì)它的替代。
2、使用ELK的原因
- 日志主要包括日志、應(yīng)用程序日志和安全日志。系統(tǒng)運(yùn)維和開(kāi)發(fā)人員可以通過(guò)日志了解服務(wù)器軟硬件信息、檢查配置過(guò)程中的錯(cuò)誤及錯(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)方法查閱匯總。集中化管理日志后,日志的統(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的工作原理
- 在所有需要收集日志的服務(wù)器上部署Logstash;或者先將日志進(jìn)行集中化管理在日志服務(wù)器上,在日志服務(wù)器上部署Logstash。
- Logstash收集日志,將日志格式化并輸出到es群集中。
- ES對(duì)格式化后的數(shù)據(jù)進(jìn)行索引和存儲(chǔ)。
- Kibana從ES群集中查詢數(shù)據(jù)生成圖表,并進(jìn)行前端數(shù)據(jù)的顯示。
二、部署ELK日志分析系統(tǒng)
1、服務(wù)器配置
服務(wù)器 | 配置 | 主機(jī)名 | ip地址 | 主要軟件部署 |
---|---|---|---|---|
node1節(jié)點(diǎn) | 2C/4G | node1 | 192.168.10.12 | ElasticSearch、Kibana |
node2節(jié)點(diǎn) | 2C/4G | node2 | 192.168.10.13 | ElasticSearch |
apache節(jié)點(diǎn) | - | apache | 192.168.10.14 | Logstash、Apache |
2、關(guān)閉防火墻
systemctl stop firewalld
setenforce 0
#關(guān)閉防火墻和核心防護(hù)
3、ELK ElasticSearch集群部署(在node1、node2節(jié)點(diǎn)上操作)
3.1 環(huán)境準(zhǔn)備(更改主機(jī)名、配置域名解析、查看Java環(huán)境)
hostnamectl set-hostname node1(或者node2)
su
#修改主機(jī)名echo "192.168.10.12 node1" >> /etc/hosts
echo "192.168.10.13 node2" >> /etc/hosts
#主機(jī)名追加到/etc/hosts文件的末尾(可以通過(guò)node主機(jī)名來(lái)訪問(wèn)IP地址)java -version
#查看Java版本信息
#如果沒(méi)有安裝,可使用“yum install -y java”進(jìn)行安裝
- node1
- node2
3.2 部署ElasticSearch軟件
3.2.1 安裝elasticsearch-rpm包
cd /opt
#切換目錄#上傳elasticsearch-5.5.0.rpm到/opt目錄下rpm -ivh elasticsearch-5.5.0.rpm
#安裝
- node1
- node2
3.2.2 加載系統(tǒng)服務(wù)
systemctl daemon-reload
#重新加載systemctl enable elasticsearch.service
#開(kāi)機(jī)自啟
- node1
- node2
3.2.3 修改elasticsearch主配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
#備份配置文件#修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
#17行,取消注釋,指定群集名稱
node.name: node節(jié)點(diǎn)
#23行,取消注釋,指定節(jié)點(diǎn)名稱(node1節(jié)點(diǎn)為node1,node2節(jié)點(diǎn)為node2)
path.data: /data/elk_data
#33行,取消注釋,指定數(shù)據(jù)存放路徑
path.logs: /var/log/elasticsearch/
#37行,取消注釋,指定日志存放路徑
bootstrap.memory_lock: false
#43行,取消注釋,改為在啟動(dòng)的時(shí)候不鎖定內(nèi)存,開(kāi)啟為true
network.host: 0.0.0.0
#55行,取消注釋,設(shè)置監(jiān)聽(tīng)地址,0.0.0.0代表所有地址
http.port: 9200
#59行,取消注釋,ES服務(wù)的默認(rèn)監(jiān)聽(tīng)端口為9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
#68行,取消注釋,集群發(fā)現(xiàn)通過(guò)單播實(shí)現(xiàn),指定要發(fā)現(xiàn)的節(jié)點(diǎn)node1、node2grep -v "^#" /etc/elasticsearch/elasticsearch.yml
#過(guò)濾查看修改的配置文件
- node1
- node2
3.2.4 創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)
mkdir -p /data/elk_data
#創(chuàng)建目錄chown elasticsearch:elasticsearch /data/elk_data/
#修改屬主、屬組
- node1
- node2
3.2.5 啟動(dòng)elasticsearch
systemctl start elasticsearch.service
#開(kāi)啟es服務(wù)ss -natp | grep 9200
#查看進(jìn)程
- node1
- node2
3.2.6 查看節(jié)點(diǎn)信息
- 瀏覽器訪問(wèn)http://192.168.10.12:9200、http://192.168.10.13:9200查看節(jié)點(diǎn)node1、node2的信息
- 瀏覽器訪問(wèn)http://192.168.10.12:9200/_cluster/health?pretty、http://192.168.10.13:9200/_cluster/health?pretty查看群集的健康情況,可以看到status值為green(綠色),表示節(jié)點(diǎn)健康運(yùn)行,數(shù)據(jù)和副本全都沒(méi)有問(wèn)題(紅色:表示數(shù)據(jù)都不完整、黃色:表示數(shù)據(jù)完整,但副本有問(wèn)題)
- 瀏覽器訪問(wèn)http://192.168.10.12:9200/_cluster/state?pretty檢查群集狀態(tài)信息
使用上述方式查看群集的狀態(tài)對(duì)用戶并不友好,可以通過(guò)安裝Elasticsearch-head插件,更方便的對(duì)群集進(jìn)行管理。
3.3 安裝Elasticsearch-head插件
- ES在5.0版本后,插件需要作為獨(dú)立服務(wù)進(jìn)行安裝,需要使用npm工具(NodeJS的包管理工具)安裝。安裝Elasticsarch-head需要提前安裝好依賴軟件node和phantomjs。
node
- 是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境
phantomjs
- 是一個(gè)基于webkit的JavaScriptAPI,可以理解為一個(gè)隱形的瀏覽器,任何基于webkit瀏覽器做的事情,它都可以做到。
3.3.1 編譯安裝node
cd /opt
#切換目錄#上傳軟件包node-v8.2.1.tar.gz(編譯工具)到/opt目錄yum install -y gcc gcc-c++ make
#安裝依賴環(huán)境tar xf node-v8.2.1.tar.gz
#解壓cd node-v8.2.1/
#切換目錄./configure
#執(zhí)行,進(jìn)行配置make -j4 && make install
#編譯及安裝(安裝時(shí)間會(huì)久一點(diǎn))
- node1
- node2
3.3.2 安裝phantomjs
cd /opt
#切換目錄#上傳軟件包phantomjs-2.1.1-linux-x86_64.tar.bz2到/opt目錄tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
#解壓到指定目錄cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
#切換目錄cp phantomjs /usr/local/bin
#復(fù)制
- node1
- node2
3.3.3 安裝Elasticsearch-head數(shù)據(jù)可視化工具
cd /opt
#切換目錄#上傳軟件包elasticsearch-head.tar.gz到/opt目錄tar xf elasticsearch-head.tar.gz -C /usr/local/src/
#解壓到指定目錄/usr/local/src/cd /usr/local/src/elasticsearch-head/
#切換目錄npm install
#安裝
- node1
- node2
3.3.4 修改Elasticsearch主配置文件
#修改配置文件,末行添加以下內(nèi)容
vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
#開(kāi)啟跨域訪問(wèn)支持,默認(rèn)為false
http.cors.allow-origin: "*"
#指定跨域訪問(wèn)允許的域名地址為所有systemctl restart elasticsearch.service
#重啟服務(wù)
- node1
- node2
3.3.5 啟動(dòng)elasticsearch-head服務(wù)
cd /usr/local/src/elasticsearch-head/
#切換目錄npm run start &
#后臺(tái)開(kāi)啟ss -natp | grep 9100
#查看進(jìn)程#注:必須在解壓后的elasticsearch-head目錄下啟動(dòng)服務(wù),進(jìn)程會(huì)讀取該目錄下的gruntfile.js文件,否則可能啟動(dòng)失敗。
- node1
- node2
3.3.6 通過(guò)Elasticsearch-head查看ES信息
-
通過(guò)瀏覽器訪問(wèn)http://192.168.10.12:9100地址并連接群集。如果看到群集健康值為green,代表群集很健康。
-
node1
- node2
3.3.7 插入索引
- 通過(guò)命令插入一個(gè)測(cè)試索引,索引為index-demo,類型為test
curl -X PUT 'localhost:9200/index-demo1/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
#發(fā)送http請(qǐng)求,向運(yùn)行在localhost:9200的Elasticsearch服務(wù)器的index-demo索引的test類型中,更新或創(chuàng)建一個(gè)ID為1的文檔,文檔的內(nèi)容是{"user":"zhangsan","mesg":"hello world"}#-X指定HTTP請(qǐng)求方法為PUT
#-H表示定義類型
#-d表示指定內(nèi)容
- node1
- node2
3.3.8 瀏覽器查看索引信息
- 瀏覽器訪問(wèn)http://129.168.10.13:9100查看索引信息,可以看見(jiàn)索引默認(rèn)被分片為5個(gè),并且有一個(gè)副本。
點(diǎn)擊“數(shù)據(jù)瀏覽”,會(huì)發(fā)現(xiàn)在node1上創(chuàng)建的索引為index-demo,類型為test的相關(guān)信息。顯示詳細(xì)數(shù)據(jù)
4、ELK-Logstash部署(在Apache節(jié)點(diǎn)上操作)
- Logstash一般部署在需要監(jiān)控其日志的服務(wù)器。在本案例中,Logstash部署在Apache服務(wù)器上,用于收集Apache的日志信息并發(fā)送到Elasticsearch。
4.1 更改主機(jī)名
- ip:192.168.10.14
hostnamectl set-hostname apache
su
#修改主機(jī)名systemctl stop firewalld
setenforce 0
#關(guān)閉防火墻和防護(hù)中心
4.2 安裝Apache服務(wù)(httpd)
yum install -y httpd
#安裝httpdsystemctl start httpd
#開(kāi)啟服務(wù)
4.3 安裝Java環(huán)境
yum install -y java
#安裝Javajava -version
#查看Java版本
4.4 安裝logstash
cd /opt
#切換目錄#上傳軟件包logstash-5.5.1.rpm到/opt目錄下rpm -ivh logstash-5.5.1.rpm
#安裝systemctl start logstash.service
#開(kāi)機(jī)自啟ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#做軟連接
4.5 測(cè)試Logstash
4.5.1 Logstash命令常用選項(xiàng)
常用選項(xiàng) | 說(shuō)明 |
---|---|
-f | 通過(guò)這個(gè)選項(xiàng)可以指定Logstash的配置文件,根據(jù)配置文件配置Logstash的輸入和輸出流 |
-e | 從命令行中獲取,輸入、輸出后面跟著字符串,該字符串可以被當(dāng)做Logstash的配置(如果是空,則默認(rèn)使用stdin作為輸入,stdout作為輸出) |
-t | 測(cè)試配置文件是否正確,然后退出 |
4.5.2 定義輸入和輸出
4.5.2.1 標(biāo)準(zhǔn)輸入、輸出
- 輸入采用標(biāo)準(zhǔn)輸入,輸出采用標(biāo)準(zhǔn)輸出(類似管道)
logstash -e 'input { stdin{} } output { stdout{} }'
#定義輸入和輸出www.baidu.com
#鍵入內(nèi)容(標(biāo)準(zhǔn)輸入)
2024-04-10T11:23:53.306Z apache www.baidu.com#輸入結(jié)果(標(biāo)準(zhǔn)輸出)
4.5.2.2 rubydebug輸出
- 使用rubydebug輸出詳細(xì)格式顯示,codec為一種編解碼器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
##定義輸入和輸出www.baidu.com
#鍵入內(nèi)容(標(biāo)準(zhǔn)輸入){"@timestamp" => 2024-04-10T11:25:58.794Z,"@version" => "1","host" => "apache","message" => "www.baidu.com"
}
#顯示輸出結(jié)果(處理后的結(jié)果)
4.5.2.3 輸出到ES
- 使用logstash將寫(xiě)入到ES中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.10.12:9200"] } }'
#將logstash輸出結(jié)果寫(xiě)入到es中www.baidu.com
#鍵入內(nèi)容(標(biāo)準(zhǔn)輸出)#結(jié)果不在標(biāo)準(zhǔn)輸出顯示,而是發(fā)送至ES,可瀏覽器訪問(wèn)http://192.168.10.12:9100查看索引和數(shù)據(jù)
4.6 定義logstash配置文件
- logstash配置文件基本由三部分組成:input輸入、output輸出以及filter過(guò)濾(可選,根據(jù)需要選擇使用)。
格式如下:
input {...}
output {...}filter {...}
- 在每個(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,并將其輸出到ES中。
chmod +r /var/log/messages
#賦予讀的權(quán)限,讓Logstash可以獲取到該文件的內(nèi)容vim /etc/logstash/conf.d/system.conf
#該文件需自行創(chuàng)建,文件名可自定義
input {file{path =>"/var/log/messages"#指定要收集的日志的位置type =>"system"#自定義日志類型標(biāo)識(shí)start_position =>"beginning"#表示從開(kāi)始處收集}
}
output {elasticsearch{#輸出到EShosts =>["192.168.10.12:9200", "192.168.10.13:9200"]#指定ES服務(wù)器的地址和端口,為避免單機(jī)故障,建議寫(xiě)全index =>"system-%{+YYYY.MM.dd}"#指定輸出到ES的索引格式}
}systemctl restart logstash.service
#重啟服務(wù)
4.7 訪問(wèn)測(cè)試
- 瀏覽器訪問(wèn)http://192.168.10.12:9100查看索引信息
5、ELK-Kibana部署(在node1節(jié)點(diǎn)上操作)
5.1 安裝Kibana
cd /opt
#切換目錄#上傳軟件包kibana-5.5.1-x86_64.rpm到/opt目錄rpm -ivh kibana-5.5.1-x86_64.rpm
#安裝
5.2 設(shè)置Kibana的主配置文件
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
#備份配置文件#編輯配置文件
vim /etc/kibana/kibana.yml
server.port: 5601
#2行,取消注釋,kibana服務(wù)的默認(rèn)監(jiān)聽(tīng)端口為5601
server.host: "0.0.0.0"
#7行,取消注釋,設(shè)置kibana的監(jiān)聽(tīng)地址,0.0.0.0代表所有地址
elasticsearch.url: "http://192.168.10.12:9200"
#21行,取消注釋,設(shè)置和ES建立連接的地址和端口
kibana.index: ".kibana"
#30行,取消注釋,設(shè)置在ES中添加.kibana索引
5.3 啟動(dòng)kibana服務(wù)
systemctl start kibana.service
#開(kāi)啟服務(wù)systemctl enable kibana.service
#開(kāi)啟自啟ss -natp | grep 5601
#查看進(jìn)程
5.4 驗(yàn)證kibana
- 瀏覽器訪問(wèn)http://192.168.10.12:5601
- 第一次登錄需要添加一個(gè)ES索引輸入system-*
- 索引添加完成后,點(diǎn)擊“Discover”按鈕可查看圖表信息及日志信息
- 數(shù)據(jù)展示可以分類顯示,例如:在“Available Fileds”中add添加“_type”查看
5.5 將Apache服務(wù)器的日志(訪問(wèn)的、錯(cuò)誤的)添加到ES并通過(guò)kibana顯示
- apache服務(wù)器
#apache服務(wù)器添加配置,將日志(訪問(wèn)的、錯(cuò)誤的)添加到ES并通過(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.10.12:9200", "192.168.10.13:9200"]index => "apache_access-%{+YYYY.MM.dd}"}}if [type] == "error" {elasticsearch {hosts => ["192.168.10.12:9200", "192.168.10.13:9200"]index => "apache_error-%{+YYYY.MM.dd}"}}
}cd /etc/logstash/conf.d/
#切換目錄/usr/share/logstash/bin/logstash -f apache_log.conf
#啟動(dòng) Logstash 服務(wù)并讀取指定的配置文件
5.6 瀏覽器訪問(wèn)
- 瀏覽器訪問(wèn)apache服務(wù)
- 瀏覽器訪問(wèn)http://192.168.10.12:9100查看索引是否創(chuàng)建
- 瀏覽器訪問(wèn)http://192.168.10.12:5601登錄kibana,添加“apache_access、”和“apache_error”索引,查看日志信息。
三、ELFK(Filebeat+ELK)
1、Filebeat的作用
-
由于logstash會(huì)大量占用系統(tǒng)的內(nèi)存資源,一般我們會(huì)使用filebeat替換logstash收集日志的功能,組成ELFK架構(gòu)。
-
或用fluentd替代logstash組成EFK(elasticsearch/fluentd/kibana),由于fluentd是由Go語(yǔ)言開(kāi)發(fā)的,一般在K8S環(huán)境中使用較多。
2、ELFK工作流程
- filebeat將日志收集后交由logstash處理
- logstash進(jìn)行過(guò)濾、格式化等操作,滿足過(guò)濾條件的數(shù)據(jù)將發(fā)送給ES
- ES對(duì)數(shù)據(jù)進(jìn)行分片存儲(chǔ),并提供索引功能
- kibana對(duì)數(shù)據(jù)進(jìn)行圖形化的web展示,并提供索引接口
3、ELFK的部署
3.1 服務(wù)器配置
服務(wù)器 | 配置 | 主機(jī)名 | ip地址 | 主要軟件部署 |
---|---|---|---|---|
node1節(jié)點(diǎn) | 2C/4G | node1 | 192.168.10.12 | ElasticSearch、Kibana |
node2節(jié)點(diǎn) | 2C/4G | node2 | 192.168.10.13 | ElasticSearch |
apache節(jié)點(diǎn) | - | apache | 192.168.10.14 | Logstash、Apache |
filebeat節(jié)點(diǎn) | filebeat | 192.168.10.15 | Filebeat |
- 在ELK的基礎(chǔ)上,增加一臺(tái)filebeat服務(wù)器,因此只需再前述ELK部署的前提下進(jìn)一步操作。
3.2 服務(wù)器環(huán)境
- filebeat節(jié)點(diǎn)
hostnamectl set-hostname filebeat
su
#修改主機(jī)名systemctl stop firewalld
setenforce 0
#關(guān)閉防火墻和核心防護(hù)
3.3 安裝filebeat
- filebeat節(jié)點(diǎn)
cd /opt
#切換目錄#上傳filebeat-6.6.1-x86_64.rpm安裝包rpm -ivh filebeat-6.6.1-x86_64.rpm
#安裝systemctl daemon-reload
#重新加載systemctl enable elasticsearch.service
#開(kāi)機(jī)自啟
3.4 修改filebeat主配置文件
- filebeat節(jié)點(diǎn)
cd /etc/filebeat/
#切換目錄cp filebeat.yml filebeat.yml.bak
#備份配置文件#編輯配置文件
vim filebeat.yml
filebeat.inputs:
- type: log
#21行,指定log類型,從日志文件中讀取消息enabled: true#24行,開(kāi)啟日志收集功能,默認(rèn)為false- /var/log/*.log#28行,指定監(jiān)控的日志文件- /var/log/messages#29行,添加收集/var/log/messagesfields: #31行,添加以下內(nèi)容,注意格式service_name: filebeatlog_type: logservice_id: 192.168.10.15#-------------------------- Elasticsearch output ------------------------------#該區(qū)域內(nèi)容全部注釋(152行、154行)#----------------------------- Logstash output --------------------------------output.logstash:#165行,取消注釋hosts: ["192.168.10.14:5044"]#167行,取消注釋,指定logstash的IP和端口號(hào)systemctl start filebeat.service
#開(kāi)啟服務(wù)systemctl status filebeat.service
#查看狀態(tài)
3.5 在logstash組件所在節(jié)點(diǎn)(apache節(jié)點(diǎn))上新建一個(gè)logstash配置文件
cd /etc/logstash/conf.d/
#切換目錄#修改配置文件
vim logstash.conf
input {beats {port => "5044"}
}
output {elasticsearch {hosts => ["192.168.10.12:9200", "192.168.10.13:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
}/usr/share/logstash/bin/logstash -f apache_log.conf
#啟動(dòng) Logstash 服務(wù)并讀取指定的配置文件(注意此處讀取的配置文件還是apache_log.conf,只能指定使用一個(gè)配置的數(shù)據(jù)目錄,否則會(huì)報(bào)錯(cuò))#若是新建索引filebeat不顯示,重啟logstash服務(wù),然后重新啟動(dòng)logstash并讀取配置文件再次查看
3.6 瀏覽器驗(yàn)證
- 瀏覽器訪問(wèn)http://192.168.10.12:9100
- 瀏覽器訪問(wèn)http://192.168.10.12:5601登錄kibana,
添加“filebeat-*”索引后在“Discover”中查看filebeat日志收集情況。