Graylog2 开源项目推荐

Graylog2 开源项目推荐

graylog2 graylog2 项目地址: https://gitcode.com/gh_mirrors/gr/graylog2

项目基础介绍和主要编程语言

Graylog2 是一个强大的开源日志管理平台,旨在帮助用户收集、存储、分析和可视化日志数据。该项目主要使用 Shell 脚本语言编写,适用于自动化安装和配置 Graylog2 系统。

项目核心功能

Graylog2 的核心功能包括:

  1. 日志收集:支持从多种来源收集日志数据,包括系统日志、应用程序日志等。
  2. 日志存储:提供高效的日志存储解决方案,确保日志数据的长期保存和快速检索。
  3. 日志分析:内置强大的分析工具,帮助用户快速定位和解决问题。
  4. 日志可视化:通过图表和仪表盘直观展示日志数据,便于用户监控系统状态。

项目最近更新的功能

截至2023年6月9日,Graylog2 项目已被其所有者归档,不再进行更新和维护。因此,最近更新的功能信息无法提供。建议关注其他活跃的开源日志管理项目以获取最新的功能和技术支持。

graylog2 graylog2 项目地址: https://gitcode.com/gh_mirrors/gr/graylog2

## 什么是graylog Graylog 是一个简单易用、功能较全面的日志管理工具,相比 ELK 组合, 优点: - 部署维护简单 - 查询语法简单易懂(对比ES的语法…) - 内置简单的告警 - 可以将搜索结果导出为 json - 提供简单的聚合统计功能 - UI 比较友好 - 当然, 拓展性上比 ELK 差很多。 整套依赖: - Graylog 提供 graylog 对外接口 - Elasticsearch 日志文件的持久化存储和检索 - MongoDB 只是存储一些 Graylog 的配置 ## 安装 > 可以是裸机安装,也可以是docker安装,这里用docker安装 环境要求: - centos7.4 - cpu2个 内存2G 参考: https://hub.docker.com/r/graylog2/graylog/ ### 环境准备 ``` mkdir /root/graylog && cd /root/graylog //挂载目录 mkdir -p mongo_data graylog_journal es_data //配置文件目录 mkdir -p ./graylog/config cd ./graylog/config wget https://raw.githubusercontent.com/Graylog2/graylog-docker/3.0/config/graylog.conf wget https://raw.githubusercontent.com/Graylog2/graylog-docker/3.0/config/log4j2.xml //提前准备镜像 docker pull mongo:3 docker pull graylog/graylog:3.0 docker pull elasticsearch:5.6.9 ``` ### docker-compose.yml ``` version: '2' services: # MongoDB: https://hub.docker.com/_/mongo/ mongo: image: mongo:3 volumes: - ./mongo_data:/data/db - /etc/localtime:/etc/localtime # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html elasticsearch: image: elasticsearch:5.6.9 volumes: - ./es_data:/usr/share/elasticsearch/data - /etc/localtime:/etc/localtime environment: - http.host=0.0.0.0 - transport.host=localhost - network.host=0.0.0.0 # Disable X-Pack security: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/security-settings.html#general-security-settings - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 mem_limit: 1g # Graylog: https://hub.docker.com/r/graylog/graylog/ graylog: image: graylog/graylog:3.0 volumes: - ./graylog_journal:/usr/share/graylog/data/journal - ./graylog/config:/usr/share/graylog/data/config - /etc/localtime:/etc/localtime environment: # CHANGE ME! - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # Password: admin - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 # 这里需要修改为要暴露的机器的地址 - GRAYLOG_HTTP_EXTERNAL_URI=http://10.121.60.2:9000/ links: - mongo - elasticsearch ports: # Graylog web interface and REST API - 9000:9000 # Syslog TCP - 514:514 # Syslog UDP - 514:514/udp # GELF TCP - 12201:12201 # GELF UDP - 12201:12201/udp # GELF HTTP - 12202:12202 ``` ### 启动 `docker-compose -f docker-compose.yml up -d` 通过http://10.121.60.2:9000/访问web,admin/admin ### 修改配置 - email相关(告警需要) ``` transport_email_enabled = true transport_email_hostname = smtp.163.com transport_email_port = 994 transport_email_use_auth = true transport_email_use_tls = true transport_email_use_ssl = true transport_email_auth_username = 17191093767@163.com transport_email_auth_password = zhim123456 transport_email_subject_prefix = [graylog] transport_email_from_email = 17191093767@163.com transport_email_web_interface_url = http://10.121.60.2:9000 ``` ## 使用 ### 配置添加Inputs > Graylog 节点能够接受数据的类型称之为input,常见的有GELF TCP, GELF UDP, GELF HTTP. 说明:GELF TCP, GELF UDP可以使用同一个端口,HTTP需要另起端口,原因不解释。 - 添加三个input,过程略,tcp,udp端口使用默认的12201,http端口使用12202。 - 验证 ``` // udp echo -n '{ "version": "1.1", "host": "example.org", "short_message": "A short message info with udp", "level": 1, "_some_info": "foo", "_tag": "test11" }' | nc -w10 -u 10.121.60.2 12201 // tcp echo -n -e '{ "version": "1.1", "host": "example.org", "short_message": "A short message with tcp", "level": 1, "_some_info": "foo" }'"\0" | nc -w10 10.121.60.2 12201 //http curl -X POST -H 'Content-Type: application/json' -d '{ "version": "1.1", "host": "example.org", "short_message": "A short message with http", "level": 5, "_some_info": "foo" }' 'http://10.121.60.2:12202/gelf' ``` ### docker 日志添加到graylog ``` docker run --log-driver=gelf \ --log-opt gelf-address=udp://10.121.60.2:12201 \ --log-opt tag=test1 \ -v /etc/localtime:/etc/localtime \ -it nginx /bin/bash ``` docker-compose.yaml ``` services: mongo: logging: driver: "gelf" options: gelf-address: "udp://10.121.60.2:12201" tag: mongo volumes: - /etc/localtime:/etc/localtime ``` ### java日志直接发送到graylog > 使用logback ``` 10.121.60.2 12201 <!--An example of overwriting the short message pattern--> %ex{short}%.100m <!-- Use HTML output of the full message. Yes, any layout can be used (please don't actually do this)--> %d{MM-dd HH:mm:ss.SSS} [%thread] %-5level \(%F:%L\) - %msg %n true true true true requestId:long <!--Facility is not officially supported in GELF anymore, but you can use staticFields to do the same thing--> tag business-server ``` ## 系统使用 功能菜单说明 - search 日志查询面板 ![](assets/2018-07-10-11-52-07.png) - streams 将日志对象按照filed定义为stream,默认的stream为all messages ![](assets/2018-07-10-11-52-22.png) - alerts 告警相关,选择一个stream对象定义告警条件和通知方式,当stream里面的日志满足条件时候告警并通知 ![](assets/2018-07-10-11-52-35.png) - dashboards 图形面板 ![](assets/2018-07-10-11-52-53.png) - source 告警所在主机 ![](assets/2018-07-10-11-53-37.png) - system 系统配置 ![](assets/2018-07-10-11-53-52.png) ### 查询条件 [官方说明文档](http://docs.graylog.org/en/3.0/pages/queries.html) > 关键字不分大小写 - 单个关键字查询 `ssh` - 多关键字查询,含有ssh or login `ssh login` - 含有某个字符串查询 `ssh login` - 同时含有多个关键字查询 `opening index" AND db` - 根据字段值查询 `tag:couchdb.peer0.org1.ygsoft.com` - 含有多个tag的查询,某条记录只要其中一个字段满足即可 ``` tag: (orderer.ygsoft.com couchdb.peer0.org1.ygsoft.com) or tag: orderer.ygsoft.com couchdb.peer0.org1.ygsoft.com ``` - 含有完全匹配字段 `tag:"ssh login"` - 含有某个字段的记录: `_exists_:tag` - 不含有某个字段的记录: `NOT _exists_:tag` - AND OR `"ssh login" AND source:example.org` `("ssh login" AND (source:example.org OR source:another.example.org)) OR _exists_:always_find_me` - NOT ``` "ssh login" AND NOT source:example.org NOT example.org ``` 注意: AND, OR, and NOT 只能大写. - 通配符 ? 表示单个字符 星号表示0个和多个字符 ``` source:*.org source:exam?le.org source:exam?le.* ``` 注意:默认首字母不能使用通配符,因为这样会使用大量的内存;强行开启修改配置文件`allow_leading_wildcard_searches = true` - 当某关键字不确认顺序的时候使用~ ``` ssh logni~ source:exmaple.org~ 结果可以匹配 ssh login and example.org ``` - 以下字符在使用的时候必须用反斜杠转义 ``` && || : \ / + - ! ( ) { } [ ] ^ " ~ * ? Example: resource:\/posts\/45326 ``` ### 查询条件可以保存下来 使用 save search criteria 按钮
<think>好的,用户想了解Graylog2的使用指南或问题解决。首先,我需要回忆之前提供的引用内容,看看是否有相关信息。引用[1]提到Graylog的Slack插件,安装步骤和版本要求。引用[2]是关于镜像构建和常见问题,比如网络隔离和配置参数。 用户可能需要基本的使用步骤,比如安装、配置、日志收集等。我应该分步骤说明,确保结构清晰。同时,常见问题部分需要涵盖启动失败、日志收集问题、性能优化等,每个问题给出解决方法,并引用相关部分的支持信息。 还要注意用户提到的系统级指令,比如正确使用LaTeX格式,不过在这个问题中可能用不到数学公式。但需要确保回答中的技术术语正确,比如版本号、配置文件名等。 另外,用户希望生成相关问题,我需要围绕Graylog2的部署、插件、日志处理、高可用性等方面提问,帮助用户深入探索。确保每个问题都有针对性,能够引导用户进一步学习或解决问题。 最后,检查引用标记是否正确添加,比如网络配置问题引用[^2],插件安装引用[^1]。保持回答自然,避免堆砌信息,分点说明让用户容易理解。</think>### Graylog2 使用指南及常见问题解决 #### **一、Graylog2 核心功能** Graylog2 是开源的日志管理平台,支持日志收集、存储、分析和可视化。核心功能包括: 1. **日志收集**:通过 Inputs(输入源)接收 Syslog、GELF、Beats 等协议日志。 2. **数据处理**:利用 Extractors(提取器)或 Pipelines(处理管道)解析和过滤日志。 3. **存储与搜索**:基于 Elasticsearch 实现日志存储和快速检索。 4. **告警与通知**:通过 Alert 配置触发条件,并集成 Slack 等通知渠道[^1]。 --- #### **二、快速部署指南** ##### **1. 基础环境搭建** - **推荐配置**:4核 CPU / 8GB 内存 / 50GB 存储(生产环境需更高配置)。 - **依赖组件**: - Elasticsearch 7.x - MongoDB 4.x - Graylog 4.x - **安装步骤**: ```bash # Ubuntu/Debian 示例 wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb sudo dpkg -i graylog-4.3-repository_latest.deb sudo apt update && sudo apt install graylog-server ``` ##### **2. 配置关键参数** 修改配置文件 `/etc/graylog/server/server.conf`: ```properties password_secret = <自定义密钥> root_password_sha2 = <SHA-256哈希后的管理员密码> http_bind_address = 0.0.0.0:9000 elasticsearch_hosts = http://localhost:9200 mongodb_uri = mongodb://localhost/graylog ``` ##### **3. 启动服务** ```bash sudo systemctl start graylog-server sudo systemctl enable graylog-server ``` --- #### **三、常见问题解决** ##### **1. Graylog 服务无法启动** - **检查点**: - 确认 Elasticsearch 和 MongoDB 已正常运行。 - 检查 `server.conf` 中端口是否冲突(如 9000 被占用)。 - 查看日志 `/var/log/graylog-server/server.log` 定位错误[^2]。 ##### **2. 日志无法接收** - **排查步骤**: 1. 确认 Inputs 配置正确(如 Syslog UDP 端口 514 是否开放)。 2. 检查防火墙规则:`sudo ufw allow 514/udp`。 3. 测试日志发送:`echo "Test message" | nc -u 127.0.0.1 514`。 ##### **3. 性能优化建议** - **Elasticsearch 调优**: - 分片数配置:每个索引分配 1 主分片 + 1 副本。 - 定期清理旧索引:通过 Index Retention 策略自动删除过期数据。 - **JVM 参数调整**: ```properties # 在 server.conf 中配置 java_opts = -Xms4g -Xmx4g -XX:MaxRAMPercentage=70 ``` --- #### **四、扩展功能** ##### **1. 集成 Slack 告警** 1. 安装 Graylog Slack 插件: ```bash sudo graylog-plugin install graylog-plugin-slack-3.1.0.jar ``` 2. 在 Web 界面配置告警通知: - 路径:Alerts → Notifications → 添加 Slack 回调地址。 ##### **2. 构建镜像快速部署** 参考 Graylog2/graylog2-images 项目,使用 Packer 自动化生成预装镜像[^2]: ```bash git clone https://github.com/Graylog2/graylog2-images.git cd graylog2-images packer build graylog-aws.json ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎玫洵Errol

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值