Docker部署Graylog日志管理系統(tǒng)
前言
Graylog 是一個開源的日志管理平臺,專為實時日志收集、分析和可視化設計。它支持強大的搜索功能,并且與 Elasticsearch 和 MongoDB 集成。通過 Docker 部署 Graylog 可以快速搭建一個完整的日志管理系統(tǒng)。
本文將展示如何使用 Docker 和 Docker Compose 來部署 Graylog、Elasticsearch 和 MongoDB。
一、準備工作
首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。
Linux上進行Docker安裝有兩種方式:
- Docker自動化安裝
- Docker手動安裝
可以根據(jù)該文章的步驟進行安裝:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502
二、Docker Compose 配置
在 Docker Compose 中,我們定義了三個服務:
- MongoDB:用于存儲 Graylog 的元數(shù)據(jù)。
- Elasticsearch:用于存儲和搜索日志數(shù)據(jù)。
- Graylog:日志管理系統(tǒng),提供 Web 界面和 API 進行日志分析和可視化。
創(chuàng)建 docker-compose.yml
文件
首先,在項目目錄下創(chuàng)建一個 docker-compose.yml 文件,并將以下內容粘貼進去:
version: '3' services: mongodb: container_name: mongodb image: mongo:4.4.0 restart: always volumes: - /opt/graylog/mongo_data:/data/db - /etc/localtime:/etc/localtime:ro - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro network_mode: "host" elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2 container_name: elasticsearch restart: always volumes: - /opt/graylog/es_data:/usr/share/elasticsearch/data - /etc/localtime:/etc/localtime:ro - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro environment: - TZ=Asia/Shanghai - http.host=0.0.0.0 - transport.host=localhost - network.host=0.0.0.0 - http.cors.allow-origin=* - http.cors.enabled=true - discovery.type=single-node - 'ES_JAVA_OPTS=-Xms1024m -Xmx1024m' network_mode: "host" graylog: image: graylog/graylog:4.3.6 container_name: graylog restart: always volumes: - /opt/graylog/graylog_data:/usr/share/graylog/data - /etc/localtime:/etc/localtime:ro - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro environment: # CHANGE ME (must be at least 16 characters)! - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # Password: admin - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ - GRAYLOG_MONGODB_URI=mongodb://localhost:27017/graylog - GRAYLOG_ELASTICSEARCH_HOSTS=http://localhost:9200 - TZ=Asia/Shanghai entrypoint: /usr/bin/tini -- wait-for-it localhost:9200 -- /docker-entrypoint.sh depends_on: - mongodb - elasticsearch network_mode: "host"
配置說明:
MongoDB 服務:
- 使用官方 MongoDB 鏡像
mongo:4.4.0
。 - 數(shù)據(jù)存儲在
/opt/graylog/mongo_data
目錄。 - 使用
host
網(wǎng)絡模式,容器會直接使用宿主機的網(wǎng)絡接口。
- 使用官方 MongoDB 鏡像
Elasticsearch 服務:
- 使用 Elasticsearch 7.10.2 版本的 OSS 鏡像
docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
。 - 數(shù)據(jù)存儲在
/opt/graylog/es_data
目錄。 - 配置了 CORS 以支持跨域請求,并通過
http.host=0.0.0.0
和network.host=0.0.0.0
允許來自任意 IP 的訪問。 - 設置了單節(jié)點模式
discovery.type=single-node
,適用于開發(fā)和測試環(huán)境。
- 使用 Elasticsearch 7.10.2 版本的 OSS 鏡像
Graylog 服務:
- 使用 Graylog 官方鏡像
graylog/graylog:4.3.6
。 - 依賴于 MongoDB 和 Elasticsearch 服務,確保先啟動 MongoDB 和 Elasticsearch 后再啟動 Graylog。
- 配置了 Graylog 的密碼
GRAYLOG_PASSWORD_SECRET
和用戶密碼GRAYLOG_ROOT_PASSWORD_SHA2
(此處使用的是已加密的 SHA2 密碼)。 - 設置了 Graylog 的 Web 界面地址
GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
。 - 使用
entrypoint
等待 Elasticsearch 啟動后再啟動 Graylog。
- 使用 Graylog 官方鏡像
三、啟動 Graylog 服務
在完成 docker-compose.yml 文件的配置后,使用以下命令啟動服務:
docker-compose up -d
該命令會在后臺啟動 MongoDB、Elasticsearch 和 Graylog 服務。
四、訪問 Graylog Web 界面
部署完成后,你可以通過瀏覽器訪問 Graylog 的 Web 界面:
http://<your-server-ip>:9000
默認的登錄信息:
- 用戶名:
admin
- 密碼:
admin
(如果沒有更改密碼)
總結
通過 Docker 和 Docker Compose 部署 Graylog,能夠快速搭建一個日志管理平臺,提供強大的日志搜索和分析功能。本文展示了如何使用 Docker 配置并運行 MongoDB、Elasticsearch 和 Graylog 服務,確保系統(tǒng)在容器中運行并持久化數(shù)據(jù)。
到此這篇關于Docker部署Graylog日志管理系統(tǒng)的文章就介紹到這了,更多相關Docker Graylog日志內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CentOS 7.x docker使用overlay2存儲方式
這篇文章主要介紹了CentOS 7.x docker使用overlay2存儲方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker 退出container后保持繼續(xù)運行的操作
這篇文章主要介紹了Docker 退出container后保持繼續(xù)運行的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03手把手教你docker部署(使用docker-compose)教程
使用 Docker Compose 可以輕松、高效的管理容器,下面這篇文章主要給大家介紹了關于手把手教你docker部署(使用docker-compose)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01