介绍
Graylog是一个开源的日志管理和分析平台,用于收集、存储、分析和可视化大量日志数据。它提供了一个集中化的解决方案,可以帮助组织有效地处理分散在各种系统和应用程序中的日志信息。
以下是Graylog的主要特点和功能:
-
日志收集:Graylog可以通过多种方式收集来自不同来源的日志数据,包括文件日志、系统日志、应用程序日志和网络设备日志等。它支持使用各种传输协议,如Syslog、GELF(Graylog Extended Log Format)和HTTP等。
-
日志存储:Graylog使用Elasticsearch作为后端数据库,用于高效地存储和索引日志数据。这使得对大规模数据进行快速搜索和查询成为可能。
-
实时搜索和过滤:Graylog提供了强大的实时搜索和过滤功能,使用户可以快速定位特定的日志事件或特定条件下的日志数据。它支持使用查询语法和过滤器进行高级搜索。
-
分析和警报:Graylog可以对日志数据进行分析,通过定义警报规则,及时发现潜在的问题或异常情况。当满足特定条件时,Graylog可以触发警报,并发送通知给相关人员。
-
可视化和仪表板:Graylog提供了交互式的数据可视化工具,可以创建定制化的仪表板,展示重要的指标和趋势。这使用户能够更好地理解和分析日志数据,并从中获取有价值的见解。
-
安全和访问控制:Graylog支持对用户和角色进行身份验证和授权,以确保日志数据的安全性。管理员可以定义不同用户的权限级别,并限制对敏感数据的访问。
-
可扩展性和集成:Graylog具有良好的可扩展性,可以根据需要扩展存储容量和处理能力。它还提供了丰富的集成接口和API,方便与其他系统和工具集成,如监控系统、工单系统和通知系统等。
总体而言,Graylog是一个功能强大的日志管理平台,适用于各种规模的组织和项目。它帮助用户集中管理和分析日志数据,以提高系统的可靠性、安全性和性能
docker安装
编写docker-compose.yml 如下所示:
version: "3.8"
services:
mongodb:
image: "mongo:5.0.13"
volumes:
- "mongodb_data:/data/db"
restart: "on-failure"
opensearch:
image: "opensearchproject/opensearch:2.4.0"
environment:
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
- "bootstrap.memory_lock=true"
- "discovery.type=single-node"
- "action.auto_create_index=false"
- "plugins.security.ssl.http.enabled=false"
- "plugins.security.disabled=true"
ulimits:
memlock:
hard: -1
soft: -1
nofile:
soft: 65536
hard: 65536
volumes:
- "os_data:/usr/share/opensearch/data"
restart: "on-failure"
graylog:
hostname: "server"
image: "${GRAYLOG_IMAGE:-graylog/graylog-enterprise:5.1}"
depends_on:
opensearch:
condition: "service_started"
mongodb:
condition: "service_started"
entrypoint: "/usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh"
environment:
GRAYLOG_NODE_ID_FILE: "/usr/share/graylog/data/config/node-id"
GRAYLOG_PASSWORD_SECRET: "${GRAYLOG_PASSWORD_SECRET:?Please configure GRAYLOG_PASSWORD_SECRET in the .env file}"
GRAYLOG_ROOT_PASSWORD_SHA2: "${GRAYLOG_ROOT_PASSWORD_SHA2:?Please configure GRAYLOG_ROOT_PASSWORD_SHA2 in the .env file}"
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
GRAYLOG_HTTP_EXTERNAL_URI: "http://127.0.0.1:9000/"
GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
GRAYLOG_ROOT_TIMEZONE: Asia/Shanghai
GRAYLOG_ALLOW_HIGHLIGHTING: "true"
# To make reporting (headless_shell) work inside a Docker container
GRAYLOG_REPORT_DISABLE_SANDBOX: "true"
ports:
- "5044:5044/tcp" # Beats
- "5140:5140/tcp" # Syslog TCP
- "5140:5140/udp" # Syslog UDP
- "5555:5555/tcp" # RAW TCP
- "5555:5555/udp" # RAW TCP
- "9000:9000/tcp" # Server API
- "12201:12201/tcp" # GELF TCP
- "12201:12201/udp" # GELF UDP
#- "10000:10000/tcp" # Custom TCP port
#- "10000:10000/udp" # Custom UDP port
- "13301:13301/tcp" # Forwarder data
- "13302:13302/tcp" # Forwarder config
volumes:
- "graylog_data:/usr/share/graylog/data/data"
- "graylog_journal:/usr/share/graylog/data/journal"
restart: "on-failure"
volumes:
mongodb_data:
os_data:
graylog_data:
graylog_journal:
完善 .evn配置文件
# You MUST set a secret to secure/pepper the stored user passwords here. Use at least 64 characters.
# Generate one by using for example: pwgen -N 1 -s 96
# ATTENTION: This value must be the same on all Graylog nodes in the cluster.
# Changing this value after installation will render all user sessions and encrypted values in the database invalid. (e.g. encrypted access tokens)
GRAYLOG_PASSWORD_SECRET="somepasswordpepper"
# You MUST specify a hash password for the root user (which you only need to initially set up the
# system and in case you lose connectivity to your authentication backend)
# This password cannot be changed using the API or via the web interface. If you need to change it,
# modify it in this file.
# Create one by using for example: echo -n yourpassword | shasum -a 256
# and put the resulting hash value into the following line
# CHANGE THIS!
GRAYLOG_ROOT_PASSWORD_SHA2="8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918"
将 .evn配置文件和docker-compose放在同一个文件下
使用 docker compose up -d 安装graylog
注意:GRAYLOG_HTTP_EXTERNAL_URI 修改为你自己的服务器
参考 github
其他安装方式参考官网
使用
安装完成后使用 ip:9000在web浏览器访问
输入账号名 admin 密码 admin登录成功