摘要:是一個日志收集器,支持非常多的輸入源和輸出源。這個庫支持展開文件路徑,而且會記錄一個叫的數(shù)據(jù)庫文件來跟蹤被監(jiān)聽的日志文件的當(dāng)前讀取位置。
1.Zookeeper
對于Zookeeper我們用一條簡單的命令來測試一下:
echo ruok|nc localhost 2181
你應(yīng)該可以看到:
imok2.Kafka
Kafka 是由 Linked 開發(fā)并且開源的一套分布式的流平臺,它類似于一個消息隊列。 Kafka 的優(yōu)勢就是適合構(gòu)建實時的流數(shù)據(jù)管道,并且可靠地獲取系統(tǒng)和應(yīng)用程序之間的數(shù)據(jù), 還可以實時的對數(shù)據(jù)流進(jìn)行轉(zhuǎn)換。Kafka 的使用場景很多, 特別是在需要高吞吐量的系統(tǒng)上。首先來理解一下 Kafka 的幾個基本的概念:
Topic, Kafka 將消息進(jìn)行分類,每一類的消息稱之為一個主題(Topic).
Producer, 發(fā)布消息的對象稱之為主題生產(chǎn)者(Producer)
Consumer, 訂閱消息并處理消息的對象稱之為主題消費(fèi)者(Consumers)
Broker, 已發(fā)布的消息保存在一組服務(wù)器中,稱之為Kafka集群。集群中的每一個服務(wù)器都是一個代理(Broker)。 消費(fèi)者可以訂閱一個或多個主題(topic),并從Broker拉數(shù)據(jù),從而消費(fèi)這些已發(fā)布的消息。
1. 創(chuàng)建一個主題我們可以登錄到 Kafka 容器中,做一些簡單的小測試,登錄到容器中的命令:
docker-compose exec kafka bash
首先來創(chuàng)建一個名為test的 Topic ,只有一個分區(qū)和一個備份:
kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test
創(chuàng)建好之后,可以通過運(yùn)行以下命令,查看topic信息:
kafka-topics.sh --list --zookeeper zookeeper:21812. 發(fā)送消息
Kafka 默認(rèn)有提供了一個命令行的工具用來發(fā)送消息,一行是一條消息,運(yùn)行 Producer 然后輸入一些信息:
kafka-console-producer.sh --broker-list localhost:9092 --topic test3. 消費(fèi)消息
Kafka 也提供了一個消費(fèi)消息的命令行工具,將存儲的信息輸出出來。
kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic test --from-beginning3. Elasticsearch
ElasticStack技術(shù)棧包括的三個軟件,而且一開始就是5.0的大版本,主要目的是為了讓其他的軟件版本號一致,方便各個軟件的對應(yīng)。不過到現(xiàn)在已經(jīng)發(fā)展到了6.0的版本了,我們這次就是用這個版本。具體的更新詳細(xì)可以查看這里Elasticsearch,這里只說說基本的概念。
Elasticsearch之所以可以方便的進(jìn)行查詢過濾排序是因為和 MongoDB 一樣存儲的是整個文檔,然后還會根據(jù)文檔的內(nèi)容進(jìn)行索引,而且文檔的格式用的還是很友好的 JSON,比如一個簡單的用戶對象可以這么表示:
{ "name": "Xiao Ming", "phone": "10086", "age": "25", "info": { "site" : "https://sunnyshift.com" "likes": ["games", "music"] } }
在 Elasticsearch 中有四個名詞,索引(idnex)、類型(type)、文檔(document)、字段(field),這四個字段類似于數(shù)據(jù)庫中的數(shù)據(jù)庫(database), 表(table), 行(row), 列(column), Elasticsearch 可以包含多個索引,每個索引可以包含多個類型,每個類型可以包含多個文檔,每個文檔可以包含多個字段,把他想成數(shù)據(jù)庫就行了。
我們來簡單操作一下,先來創(chuàng)建一個索引,并且插入幾條數(shù)據(jù):
PUT /banji/xuesheng/1 { "name": "Xiao Ming", "age": "12" } PUT /banji/xuesheng/2 { "name": "Xiao Hong", "age": "16" }
具體操作可以使用 Kibana 上面的 Dev Tools 來運(yùn)行命令:
有了數(shù)據(jù)之后就可以來簡單的檢索一下:
這里只是介紹了一下簡單的入門使用,之后可以像一些其他的操作比如過濾、組合、全文、啥的都不在話下,甚至還可以高亮搜索結(jié)果。
4. LogstashLogstash 是一個日志收集器,支持非常多的輸入源和輸出源。我們簡單的整合一下 ElasticStack 這個技術(shù)棧,這里用 Nginx 的訪問日志來測試一下。Logstash 最新的是有一個 Beats 的組件來收集數(shù)據(jù),這里先不考慮而是使用傳統(tǒng)的配置文件,我們會直接把配置寫到配置文件中。
Logstash 使用一個名叫 FileWatch 的 Ruby Gem 庫來監(jiān)聽文件變化。這個庫支持 glob 展開文件路徑,而且會記錄一個叫 .sincedb 的數(shù)據(jù)庫文件來跟蹤被監(jiān)聽的日志文件的當(dāng)前讀取位置。
使用 Dcoker 后配置文件路徑在logstash/config下,可以在該目錄下放置多個配置文件,最后 Logstash 會幫我們合并成一個。先來定義一個讀取 Nginx 訪問日志的配置:
input { file { path => [ "/var/log/nginx/access.log"] type => "accesslog" } } output { # 輸出到 elasticsearch,索引名為 access-log elasticsearch { hosts => "localhost:9200" index => "access-log" user => "elastic" password => "changeme" } }
要注意的是這里寫的 Nginx 的路徑是相對于 Logstash 容器的,所以要把該路徑掛載到容器中。然后重啟 Logstash 就可以去 Kibana 中查看日志了, 附上 Logstash 重啟命令。如果一切正常,那么就可以去 Kibana 中日志了。
docker-compose stop logstash docker-compose up -d logstash5. Kibana
Kibana 是一個可視化的 UI 界面,并且可以檢索聚合分詞搜索在 Elasticsearch 中的數(shù)據(jù),并且還可以以非常精美的圖標(biāo)來展示統(tǒng)計數(shù)據(jù)。我們需要在 Management 頁面中告訴 Kibana 我們剛才創(chuàng)建的 access-log 索引。
到這里就完成了收集 Nginx 系統(tǒng)日志并展示出來,對于 Kibana 還有很多用法,就不一一撰述了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27168.html
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
摘要:會直接把日志發(fā)送給,再由進(jìn)行展示。因為因為會同步把日志傳輸?shù)?,一旦掛掉?shù)據(jù)就有可能會丟失。于是,我們考慮利用作為緩沖區(qū),讓不受的影響,第一步就是讓把日志發(fā)送到,這里相當(dāng)于。至此,我們就成功把加入到日志分析平臺的架構(gòu)中。 在上一篇中我們基本上完成了 ELK 和 Kafka 環(huán)境的安裝,并且也通過幾個簡單的例子入門?,F(xiàn)在我們就把搭建好的架構(gòu)中加入 Kakfa 作為緩沖區(qū)。再來說一下,首先 ...
摘要:導(dǎo)讀本文介紹了基于技術(shù)的企業(yè)級應(yīng)用容器平臺,從云的定義云服務(wù)分類,到用友云基礎(chǔ)平臺平臺總體架構(gòu)架構(gòu)預(yù)覽部署架構(gòu)平臺核心價值和核心競爭力,闡述基礎(chǔ)平臺成為廣大傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型的一把尖刀。 導(dǎo)讀:本文介紹了基于Docker技術(shù)的企業(yè)級應(yīng)用容器平臺,從云的定義、云服務(wù)分類,到用友云PaaS基礎(chǔ)平臺、平臺總體架構(gòu)、架構(gòu)預(yù)覽、部署架構(gòu)、平臺核心價值和核心競爭力,闡述PaaS基礎(chǔ)平臺成為廣大...
閱讀 2855·2023-04-25 17:59
閱讀 685·2023-04-25 15:05
閱讀 675·2021-11-25 09:43
閱讀 3037·2021-10-12 10:13
閱讀 3544·2021-09-27 13:59
閱讀 3589·2021-09-23 11:21
閱讀 3888·2021-09-08 09:35
閱讀 571·2019-08-29 17:12