讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么安装Graylog日志管理_Linux Graylog部署配置教程【高级】

梦枫小哥_4434

梦枫小哥_4434

发布时间:2026-03-31 18:14:01

|

821人浏览过

|

来源于php中文网

原创

Graylog服务无法启动或Web不可访问,需依次检查并解决依赖组件缺失、配置错误及端口冲突问题:确保OpenJDK 11+、MongoDB 5.0+、Elasticsearch 7.x(如7.17.9)正确安装并运行;配置ES禁用安全模块并监听0.0.0.0:9200;生成合法password_secret与root_password_sha2;设置graylog.conf中rest/web监听地址、数据库与ES连接;开放防火墙9000/9200/12201端口;可选Docker Compose快速部署;最后通过/api/system/health验证各组件状态为up。

linux怎么安装graylog日志管理_linux graylog部署配置教程【高级】

如果您在Linux系统上尝试部署Graylog日志管理系统,但服务无法启动或Web界面不可访问,则可能是由于核心依赖组件缺失、配置参数错误或端口冲突所致。以下是解决此问题的步骤:

一、安装并启动基础依赖服务

Graylog运行依赖OpenJDK、MongoDB和Elasticsearch三个核心组件,必须按顺序安装并确保服务正常运行。各组件版本需严格匹配:OpenJDK 11+、MongoDB 5.0+、Elasticsearch 7.x(Graylog 4.x/5.x不兼容ES 8.x或ES 6.x)。

1、安装OpenJDK 11并验证版本:
sudo apt update && sudo apt install -y openjdk-11-jre-headless
java -version | grep "11."

2、安装MongoDB 5.0官方源并启用服务:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt update && sudo apt install -y mongodb-org
sudo systemctl enable mongod && sudo systemctl start mongod

3、安装Elasticsearch 7.17.9(经Graylog 5.2验证兼容性最佳):
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.17.9-amd64.deb
sudo dpkg -i elasticsearch-oss-7.17.9-amd64.deb
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch && sudo systemctl start elasticsearch

二、配置Elasticsearch安全与网络参数

Elasticsearch默认禁用远程访问且未配置Graylog所需索引模板权限,若跳过此步将导致Graylog启动后报“Index creation failed”或“Connection refused”。必须显式启用HTTP访问并关闭X-Pack安全模块(Graylog OSS版不支持ES内置安全认证)。

1、编辑Elasticsearch主配置文件:
sudo nano /etc/elasticsearch/elasticsearch.yml

2、修改以下关键项(取消注释并赋值):
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: false
discovery.type: single-node

3、重启Elasticsearch使配置生效:
sudo systemctl restart elasticsearch

三、生成Graylog密钥与管理员凭证

Graylog要求password_secret与root_password_sha2均非空且符合强度要求,否则服务拒绝启动。password_secret用于加密内部令牌,root_password_sha2为管理员密码SHA256哈希值,二者必须通过命令行生成,不可手动填写明文或弱哈希。

1、生成32位随机password_secret:
pwgen -N 1 -s -y 32

2、生成管理员密码哈希(示例密码为MyGr@yL0g2026):
echo -n "MyGr@yL0g2026" | sha256sum | cut -d' ' -f1

3、将输出结果分别填入配置文件对应字段,严禁使用空格、中文、制表符或换行符。

四、配置Graylog主配置文件graylog.conf

配置文件位于/etc/graylog/server/server.conf(RPM安装)或$GRAYLOG_HOME/misc/graylog.conf(源码编译),必须精确设置网络监听、数据库连接及集群标识,任一地址或端口错误都将导致API不可达或UI白屏。

1、设置REST与Web接口监听地址:
rest_listen_uri = http://0.0.0.0:9000/api/
web_listen_uri = http://0.0.0.0:9000/

2、配置MongoDB连接字符串(确保数据库名含下划线且无特殊字符):
mongodb_uri = mongodb://localhost:27017/graylog_production

3、配置Elasticsearch主机列表(多个节点用逗号分隔):
elasticsearch_hosts = http://localhost:9200

4、确认时区与消息保留策略(避免因时区错位导致日志时间戳异常):
timezone = Asia/Shanghai
rotation_strategy = count
max_docs_per_index = 20000000

五、启用防火墙放行关键端口

Linux系统默认启用ufw或firewalld,若未开放Graylog监听端口,外部设备将无法访问Web界面,且日志输入(如GELF UDP 12201)会静默丢弃。必须显式允许TCP 9000、TCP 9200、UDP 12201三个端口,禁止仅开放9000而遗漏其他端口。

1、对于UFW防火墙:
sudo ufw allow 9000/tcp
sudo ufw allow 9200/tcp
sudo ufw allow 12201/udp
sudo ufw reload

2、对于firewalld防火墙:
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=9200/tcp
sudo firewall-cmd --permanent --add-port=12201/udp
sudo firewall-cmd --reload

六、使用Docker Compose快速覆盖部署

当传统包管理方式出现依赖冲突或路径污染时,Docker Compose提供隔离、可复现的部署环境。该方案绕过系统级Java/Mongo/ES安装,直接拉取官方镜像并绑定数据卷,适合测试环境或CI/CD流水线集成。

1、创建docker-compose.yml文件,内容如下:
version: '3'
services:
  mongo:
    image: mongo:5.0
    volumes:
      - ./data/mongo:/data/db
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.17.9
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - ./data/elasticsearch:/usr/share/elasticsearch/data
  graylog:
    image: graylog/graylog:5.2
    environment:
      - GRAYLOG_PASSWORD_SECRET=your_32_char_secret_here
      - GRAYLOG_ROOT_PASSWORD_SHA2=your_hashed_admin_password
    ports:
      - "9000:9000"
      - "12201:12201/udp"

2、执行启动命令:
docker-compose up -d

3、检查容器状态:
docker-compose ps | grep -E "(Up|Exit)"

七、验证Graylog服务健康状态

服务启动后需通过多维度验证其内部组件连通性,仅检查进程存在不足以说明功能正常。Graylog提供内置健康检查端点,返回JSON结构化状态,其中“running”字段必须为true,“elasticsearch”与“mongodb”字段的“status”必须为“up”。

1、等待服务初始化完成(首次启动约需90秒):
sleep 90

2、调用健康检查API:
curl -s http://localhost:9000/api/system/health | python3 -m json.tool

3、重点确认以下字段值:
"cluster_id": "xxxxxx",
"started_at": "2026-03-30T23:45:12.123Z",
"elasticsearch": {"status": "up", "version": "7.17.9"},
"mongodb": {"status": "up", "version": "5.0.22"}

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2115

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3202

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1076

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3659

2025.09.10

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3603

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

815

2023.10.30

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3603

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

815

2023.10.30

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

20

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn