部署 Graylog 日誌系統 - 每天5分鐘玩轉 Docker 容器技術(92)

2021-12-09 CloudMan

Graylog 是與 ELK 可以相提並論的一款集中式日誌管理方案,支持數據收集、檢索、可視化 Dashboard。本節將實踐用 Graylog 來管理 Docker 日誌。

Graylog 架構

Graylog 架構如下圖所示:

Graylog 負責接收來自各種設備和應用的日誌,並為用戶提供 Web 訪問接口。

Elasticsearch 用於索引和保存 Graylog 接收到的日誌。

MongoDB 負責保存 Graylog 自身的配置信息。

與 ELK 一樣,Graylog 的部署方案很靈活,快速搭建一個 all-in-one 的環境對於學習很有益處;部署一個高可用高伸縮性的集群對於生成環境也是必要的。

接下來我們將在容器環境下搭建 Graylog。

部署 Graylog

Graylog 及其相關組件都將以容器的方式部署。

MongoDB
docker run --name graylog-mongo -d mongo:3

Elasticsearch

docker run --name graylog-elasticsearch -d elasticsearch:2 elasticsearch -Des.cluster.name="graylog"

Graylog

docker run --link graylog-mongo:mongo \
          --link graylog-elasticsearch:elasticsearch \
          -p 9000:9000 \
          -p 12201:12201/udp \
          -e GRAYLOG_WEB_ENDPOINT_URI="http://192.168.56.101:9000/api" \
          -e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
          -e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
          -d graylog2/server

--link 參數讓 Graylog 容器能夠用主機名 mongo 和 elasticsearch 訪問 MongoDB 和 Elasticsearch 的服務。

-p 9000:9000 映射 Graylog 的 Web 服務埠 9000。

-p 12201:12201/udp 映射 Graylog 接收日誌數據的 UDP 埠 12201。

GRAYLOG_WEB_ENDPOINT_URI 指定 Graylog 的 Web 訪問 URI,請注意這裡需要使用 Docker Host 的外部 IP(在實驗環境中為 192.168.56.101)。

GRAYLOG_ROOT_PASSWORD_SHA2 指定 Graylog 管理員用戶密碼的哈希值,在這個例子中密碼為 admin。可以通過如下命令生成自己的密碼哈希,比如:

echo -n yourpassword | shasum -a 256

容器啟動後,在 Web 瀏覽器中訪問 http://[Docker Host IP]:9000

用戶名/密碼 = admin/admin

登錄後顯示 Getting Started 頁面。

配置 Graylog

目前 Graylog 還沒法接收任何日誌,我們需要配置一個 Input,點擊頂部菜單 System -> Inputs。

Graylog 支持多種 Input 類型,與 Graylog 對接的 Docker logging driver 是 gelf,因此這裡我們需要運行一個 GELF UDP 類型的 Input。

點擊 

在 Node 列表中選擇 Graylog 容器。
Title 命名為 docker GELF input。
其他保持默認值,其中 port 12201 即為前面啟動容器時映射到 Host 的埠,用於接收日誌數據。

點擊,Input 成功運行。


Graylog 已經準備就緒,接下來就可以將容器的日誌發送給 Graylog 了,下節繼續。

書籍:

1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html(點擊「閱讀原文」直達)

2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關焦點

  • 如何用 Graylog 管理日誌? - 每天5分鐘玩轉 Docker 容器技術(93)
    上一節已經部署好了 Graylog,現在學習如何用它來管理日誌。首先啟動測試容器。
  • 初探 ELK - 每天5分鐘玩轉 Docker 容器技術(89)
    用戶可以創建 Dashboard 來監控系統的日誌。本節將討論如何用 ELK 這組黃金搭檔來監控 Docker 容器的日誌。日誌處理流程下圖展示了 Docker 部署環境下典型的 ELK 日誌處理流程:Logstash 負責從各個 Docker 容器中提取日誌,Logstash將日誌轉發到 Elasticsearch 進行索引和保存,Kibana 分析和可視化數據。下面開始實踐這套流程。
  • ELK 完整部署和使用 - 每天5分鐘玩轉 Docker 容器技術(90)
    上一節我們已經部署了容器化的 ELK,本節討論如何將日誌導入 ELK 並進行圖形化展示。
  • 安裝 Graylog 日誌系統
    這節學習Graylog,它是一款可以和ELK 相提並論的集中式日誌管理系統,它能支持數據收集、檢索、可視化一整套流程。本節學習實驗用 Graylog 來管理容器Docker 日誌。Graylog 架構我們先看下Graylog 的架構圖:Graylog:接收多種設備和應用的日誌,並提供 Web 接口。
  • - 每天5分鐘玩轉 Docker 容器技術(112)
    定義好了 stack YAML 文件,就可以通過 docker stack deploy 命令部署應用。
  • 如何用 Graylog 管理容器K8S日誌
    上一節我們介紹了graylog,它是一款可以和ELK 相提並論的集中式日誌管理系統,它能支持數據收集、檢索、可視化一整套流程,並且我們上一節學習了它的安裝
  • - 每天5分鐘玩轉 Docker 容器技術(111)
    在回答這個問題之前我們先回憶一下前面部署 WordPress 應用的過程:首先創建 secret。然後創建 MySQL service,這是 WordPress 依賴的服務。最後創建 WordPress service。
  • Kubernetes Dashboard - 每天5分鐘玩轉 Docker 容器技術(173)
    為了提供更豐富的用戶體驗,Kubernetes 還開發了一個基於 Web 的 Dashboard,用戶可以用 Kubernetes Dashboard 部署容器化的應用、監控應用的狀態、執行故障排查任務以及管理 Kubernetes 各種資源。
  • 數據收集利器 cAdvisor - 每天5分鐘玩轉 Docker 容器技術(82)
    在 host 中運行 cAdvisor 容器。docker run \  --volume=/:/rootfs:ro \  --volume=/var/run:/var/run:rw \  --volume=/sys:/sys:ro \  --volume=/var/lib/docker/:/var/lib/docker:ro \  --publish=
  • 監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)
  • 企業級日誌平臺後起之秀 Graylog!
    服務日誌收集工具 Filebeat介紹可參考:ELK + Filebeat 搭建日誌系統Graylog 服務介紹Graylog - 日誌監控系統Graylog 是一個開源的日誌聚合、分析、審計、展現和預警工具。
  • docker managed volume - 每天5分鐘玩轉 Docker 容器技術(40)
    docker managed volume 與 bind mount 在使用上的最大區別是不需要指定 mount 源,指明 mount point 就行了。docker inspect 的輸出很多,我們感興趣的是 Mounts 這部分,這裡會顯示容器當前使用的所有 data volume,包括 bind mount 和 docker managed volume。Source 就是該 volume 在 host 上的目錄。
  • 如何使用Graylog來收集日誌?
    而對於,對於 MAC 或者 Win 系統來說,請查看解壓文件中相關文件,其中都有涉及。下面展示了 Filebeat 工具的主配置文件,注釋信息中都對其各個欄位含義進行了詳細的解釋,我這裡就不再贅述了。需要注意的是,我們將日誌的輸入來源統統定義去讀取 inputs.d 目錄下的所有 yml 配置。所以,我們可以更加不用的服務(測試、正式服務)來定義不同的配置文件,根據物理機部署的實際情況具體配置。
  • 配置 VirtualBox backend - 每天5分鐘玩轉 Docker 容器技術(74)
    在 VirtualBox 宿主機,即我的筆記本上啟動 vboxwebsrv 服務:vboxwebsrv -H 0.0.0.0執行如下命令關閉 VirtualBox 的登錄認證:VBoxManage setproperty websrvauthlibrary null在關機狀態下修改虛擬機 docker1 和 docker2
  • 部署Prometheus Operator - 每天5分鐘玩轉 Docker 容器技術(179)
    由於項目開發迭代速度很快,部署方法可能會更新,必要時請參考官方文檔。下載最新源碼git clone https://github.com/coreos/prometheus-operator.gitcd prometheus-operator為方便管理,創建一個單獨的 Namespace monitoring,Prometheus Operator 相關的組件都會部署到這個 Namespace
  • 企業級日誌平臺新秀Graylog,比ELK輕量多了~
    部署 graylog 最簡單的架構就是單機部署,複雜的也是部署集群模式,架構圖示如下所示。我們可以看到其中包含了三個組件,分別是 Elasticsearch、MongoDb 和 Graylog。編號組件名稱功能介紹主要特點1Dashboards數據面板固定展示主要是用來保存特定搜索條件的數據面板2Searching日誌信息條件搜索關鍵字搜索、時間搜索、搜索保存、創建面板、分組查詢、結果導出、查詢高亮顯示、自定義時間3Alert設置告警提示方式支持郵件告警、HTTP 回調和自定義腳本觸發4Inputs日誌數據抓取接收部署 Sidercar 主動抓取或使用其他服務被動上報5Extractors
  • 企業級日誌平臺新秀Graylog,比ELK輕量多了
    部署 graylog 最簡單的架構就是單機部署,複雜的也是部署集群模式,架構圖示如下所示。我們可以看到其中包含了三個組件,分別是 Elasticsearch、MongoDb 和 Graylog。編號組件名稱功能介紹主要特點1Dashboards數據面板固定展示主要是用來保存特定搜索條件的數據面板2Searching日誌信息條件搜索關鍵字搜索、時間搜索、搜索保存、創建面板、分組查詢、結果導出、查詢高亮顯示、自定義時間3Alert設置告警提示方式支持郵件告警、HTTP 回調和自定義腳本觸發4Inputs日誌數據抓取接收部署 Sidercar 主動抓取或使用其他服務被動上報5Extractors
  • 一分鐘玩轉Docker容器化部署
    隨著以Docker為代表的容器化技術的普及,目前Devops實踐大多會採用容器(如Docker、K8s)這樣的方式來作為微服務應用部署運行的載體,並通過容器的彈性擴展來實現快速擴容和縮容,從而更快地響應業務、更好地利用資源。
  • 安裝 Docker Machine - 每天5分鐘玩轉 Docker 容器技術(45)
    >
  • Spring Boot 使用 Graylog 收集日誌
    1.Graylog介紹Graylog是一個生產級別的日誌收集系統,集成Mongo和Elasticsearch進行日誌收集。其中Mongo用於存儲Graylog的元數據信息和配置信息,ElasticSearch用於存儲數據。