成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于Docker的日志分析平臺(三) 快速入門

afishhhhh / 3389人閱讀

摘要:是一個日志收集器,支持非常多的輸入源和輸出源。這個庫支持展開文件路徑,而且會記錄一個叫的數(shù)據(jù)庫文件來跟蹤被監(jiān)聽的日志文件的當(dāng)前讀取位置。

1.Zookeeper

對于Zookeeper我們用一條簡單的命令來測試一下:

echo ruok|nc localhost 2181

你應(yīng)該可以看到:

imok
2.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:2181
2. 發(fā)送消息

Kafka 默認(rèn)有提供了一個命令行的工具用來發(fā)送消息,一行是一條消息,運(yùn)行 Producer 然后輸入一些信息:

kafka-console-producer.sh --broker-list localhost:9092 --topic test 
3. 消費(fèi)消息

Kafka 也提供了一個消費(fèi)消息的命令行工具,將存儲的信息輸出出來。

kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic test --from-beginning
3. 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. Logstash

Logstash 是一個日志收集器,支持非常多的輸入源和輸出源。我們簡單的整合一下 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 logstash
5. 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

相關(guān)文章

  • 寫這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...

    JerryWangSAP 評論0 收藏0
  • 基于Docker日志分析平臺(四)平臺整合

    摘要:會直接把日志發(fā)送給,再由進(jìn)行展示。因為因為會同步把日志傳輸?shù)?,一旦掛掉?shù)據(jù)就有可能會丟失。于是,我們考慮利用作為緩沖區(qū),讓不受的影響,第一步就是讓把日志發(fā)送到,這里相當(dāng)于。至此,我們就成功把加入到日志分析平臺的架構(gòu)中。 在上一篇中我們基本上完成了 ELK 和 Kafka 環(huán)境的安裝,并且也通過幾個簡單的例子入門?,F(xiàn)在我們就把搭建好的架構(gòu)中加入 Kakfa 作為緩沖區(qū)。再來說一下,首先 ...

    wthee 評論0 收藏0
  • 容器化 — 基于Docker技術(shù)容器云

    摘要:導(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ǔ)平臺成為廣大...

    wapeyang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<