簡介
Graylog 是一個用于集中式日志管理的開源平臺。在現代數據驅動的環(huán)境中,我們需要處理來自各種設備、應用程序和操作系統(tǒng)的大量數據。Graylog提供了一種方法來聚合、組織和理解所有這些數據。它的核心功能包括流式標記、實時搜索、儀表板可視化、告警觸發(fā)、內容包快速配置、索引設置、日志發(fā)射器管理和處理管道。
-
流(Streams):流作為對傳入消息進行標記的方法。它可以實時將消息路由到不同的類別,并使用規(guī)則指示Graylog將消息路由到適當的流中。
-
搜索(Search):Graylog提供了一個搜索頁面,可以直接搜索日志。使用類似于Lucene的簡化語法,用戶可以從下拉菜單中配置相對或絕對的時間范圍。搜索結果可以保存,也可以作為儀表板小部件進行可視化,從搜索界面直接添加到儀表板中。
-
儀表板(Dashboards):儀表板是對日志事件中包含的信息進行可視化或摘要的方式。每個儀表板由一個或多個小部件組成,通過使用字段值生成數據來可視化或摘要事件日志數據,如計數、平均值或總數。用戶可以創(chuàng)建指標、圖表、圖形和地圖來更直觀地呈現數據。
-
告警(Alerts):通過事件定義和條件創(chuàng)建告警。當特定條件滿足時,將其存儲為事件,并觸發(fā)通知。
-
內容包(Content Packs):內容包可以加速特定數據源的設置過程。它可以包含輸入/提取器、流、儀表板、告警和處理管道。例如,用戶可以為支持安全用例創(chuàng)建自定義輸入、流、儀表板和告警。然后,將內容包導出,并在新安裝的Graylog實例上導入,以便節(jié)省配置時間和工作量。
-
索引(Indexes):索引是OpenSearch和Elasticsearch中存儲數據的基本單位。索引集提供了保留、分片和復制等存儲數據的配置選項。通過在每個索引上設置值,如保留和輪換策略,可以對不同的數據應用不同的處理規(guī)則。
-
Graylog Sidecar:Graylog Sidecar是一種管理日志發(fā)射器(如Beats或NXLog)的代理工具。這些日志發(fā)射器用于收集Linux和Windows服務器的操作系統(tǒng)日志。日志發(fā)射器讀取本地日志文件,然后將其發(fā)送到集中式日志管理解決方案。Graylog支持管理任何日志發(fā)射器作為后端。
-
處理管道(Processing Pipelines):Graylog的處理管道允許用戶對特定類型的事件運行規(guī)則或一系列規(guī)則。通過與流關聯,管道可實現消息的路由、拒絕列表、修改和豐富,提高數據處理的靈活性。
通過這些核心功能,Graylog提供了強大而靈活的工具來幫助用戶收集、解析和分析日志數據,從而發(fā)現問題并做出相應決策。無論是小型企業(yè)還是大型組織,Graylog都為日志管理提供了全面可靠的解決方案。
Graylog最簡架構
Graylog基于把日志存儲在數據節(jié)點、使用Elasticsearch或OpenSearch作為搜索引擎來提供強大的日志管理和分析功能。
- Graylog服務器
Graylog服務器是Graylog架構中的核心組件,它通過與數據節(jié)點交互,為用戶提供一個簡化的數據訪問和搜索接口。用戶可以通過Graylog服務器提交搜索查詢,而無需直接與數據節(jié)點進行交互,從而極大地簡化了數據的訪問和處理過程。 - 數據節(jié)點
日志數據存儲在數據節(jié)點中,其中可以使用Elasticsearch或OpenSearch作為存儲引擎。這兩個開源搜索引擎具備強大的索引和搜索能力,使用戶能夠高效地查詢和分析大量的日志數據。Graylog 5.1僅支持Elasticsearch的7.10.2版本
!我們建議您使用OpenSearch 2.5
作為數據節(jié)點以支持Graylog 5.1。 - MongoDB
MongoDB用于存儲元數據,如用戶信息和流配置。這些數據并不包含實際的日志數據,因此對系統(tǒng)性能影響較小。MongoDB運行在Graylog服務器進程旁邊,占用的磁盤空間很小。
之前的文章中【Graylog之最小化部署安裝(Ubuntu 22.04)】有介紹如何在Ubuntu 22.04上最小化安裝Graylog,這次我們換成在Docker中最小化來部署Garylog,同時我們也將原來的Elasticsearch換成了OpenSearch。
部署
主機設置
在啟動 OpenSearch 之前,您應該查看一些重要的系統(tǒng)設置,這些設置可以影響服務的性能。
- 關閉主機上的內存分頁和交換以提高性能。
sudo swapoff -a
- 增加 OpenSearch 可用的內存映射數量。
# 檢查 sysctl.conf 文件中是否已經存在 vm.max_map_count 設置
if grep -q "vm.max_map_count" /etc/sysctl.conf; then
# 如果已存在設置,則使用 sed 命令將其修改為 262144
sudo sed -i 's/vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf
else
# 如果不存在設置,則在文件末尾添加新的設置
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
fi
# 重新加載內核參數
sudo sysctl -p
# 通過檢查值來驗證更改是否已應用
cat /proc/sys/vm/max_map_count
拉取如下三個鏡像
docker pull mongo
docker pull opensearchproject/opensearch:latest
docker pull graylog/graylog:5.1
編輯Docker Compose文件并啟動
version: '3'
services:
mongo:
image: mongo
restart: always
volumes:
- mongo_data:/data/db
networks:
- graylog-net
opensearch:
image: opensearchproject/opensearch:latest
restart: always
environment:
- cluster.name=graylog
- node.name=opensearch
- discovery.type=single-node
- network.host=0.0.0.0
- action.auto_create_index=false
- plugins.security.disabled=true
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch_data:/usr/share/opensearch/data
networks:
- graylog-net
graylog:
image: graylog/graylog:5.1
restart: always
environment:
- GRAYLOG_PASSWORD_SECRET=GrayLog@12345678
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
- GRAYLOG_TRANSPORT_EMAIL_ENABLED=true
- GRAYLOG_TRANSPORT_EMAIL_HOSTNAME=smtp.tech.com
- GRAYLOG_TRANSPORT_EMAIL_PORT=25
- GRAYLOG_TRANSPORT_EMAIL_USE_AUTH=false
- GRAYLOG_TRANSPORT_EMAIL_USE_TLS=false
- GRAYLOG_TRANSPORT_EMAIL_USE_SSL=false
- GRAYLOG_ELASTICSEARCH_HOSTS=http://opensearch:9200
- GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
networks:
- graylog-net
depends_on:
- mongo
- opensearch
ports:
- 9000:9000
- 1514:1514
- 1514:1514/udp
- 2055:2055
volumes:
- graylog_data:/usr/share/graylog/data
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
volumes:
mongo_data:
driver: local
opensearch_data:
driver: local
graylog_data:
driver: local
networks:
graylog-net:
以上主要定義了三個服務:MongoDB、OpenSearch和Graylog,并設置了它們的相關配置。
MongoDB服務使用mongo
鏡像,設置了持續(xù)重啟(restart: always
)。它將/data/db
目錄掛載為mongo_data
卷,并與graylog-net
網絡關聯。
OpenSearch服務使用opensearchproject/opensearch:latest
鏡像,同樣設置了持續(xù)重啟。它定義了一系列環(huán)境變量用于配置OpenSearch,包括集群名稱、節(jié)點名稱、發(fā)現類型、網絡主機、禁用安全插件等等。此外,還設置了內存鎖定和文件打開限制等系統(tǒng)限制。/usr/share/opensearch/data
目錄被掛載為opensearch_data
卷,并與graylog-net
網絡關聯。
Graylog服務使用graylog/graylog:5.1
鏡像,同樣設置了持續(xù)重啟。它定義了一系列環(huán)境變量來配置Graylog,包括密碼密鑰、根密碼哈希、HTTP外部URI、電子郵件傳輸配置、OpenSearch主機等等。入口點是/usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh
,它在啟動Graylog之前將等待OpenSearch服務就緒。Graylog服務與graylog-net
網絡關聯,并依賴于MongoDB和OpenSearch服務。端口映射包括9000用于Web界面、1514和2055用于接收日志數據。關于Graylog的一系列環(huán)境變量都可以通過環(huán)境變量進行設置。只需將參數名稱以GRAYLOG_為前綴,并全部使用大寫字母。具體配置參考【service.conf】。
另外,該docker-compose.yml
文件定義了三個卷:mongo_data
、opensearch_data
和graylog_data
,它們分別用于持久化存儲MongoDB、OpenSearch和Graylog的數據。
最后,定義了一個名為graylog-net
的網絡,用于連接MongoDB、OpenSearch和Graylog服務。
請注意,您需要根據您自己的配置和需求進行適當的更改,例如更改密碼、主機名、網絡配置等。保存并命名為docker-compose.yml
文件,然后在包含該文件的目錄中運行以下命令啟動這三個服務:
docker-compose up -d
這將啟動MongoDB、OpenSearch和Graylog服務,并您可以通過訪問http://hostip:9000/
來訪問Graylog的Web界面。以上YML文件中定義的默認用戶名密碼為 admin
/admin
文章來源:http://www.zghlxwxcb.cn/news/detail-652891.html
Reference:
[1] https://opensearch.org/docs/latest/install-and-configure/install-opensearch/docker/
[2] https://go2docs.graylog.org/5-0/setting_up_graylog/server.conf.html
[3] https://www.joda.org/joda-time/timezones.html
[4] https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/docker_installation.htm
[5] https://hub.docker.com/r/graylog/graylog
[6] https://hub.docker.com/r/opensearchproject/opensearch
[7] https://hub.docker.com/_/mongo文章來源地址http://www.zghlxwxcb.cn/news/detail-652891.html
到了這里,關于【Ubuntu】簡潔高效企業(yè)級日志平臺后起之秀Graylog的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!