日志分离与 Graylog 集成
本文由 码农资讯网 撰写,介绍如何将 Nginx 日志分离并与 Graylog 日志分析系统集成,实现集中化日志管理、搜索与可视化。通过本教程,你将掌握从 Nginx 配置日志输出到 Graylog 收集与分析的完整流程,是运维工程师必备的实战技能之一。
一、为什么要做日志分离
在实际生产环境中,Nginx 默认将所有访问日志写入同一文件,如 /var/log/nginx/access.log
,随着流量增加日志会迅速膨胀:
日志难以快速分析和搜索。
不同服务日志混在一起,不便于追踪问题。
不支持实时告警和可视化分析。
通过 日志分离 + Graylog,可实现:
针对不同域名、服务生成独立日志文件。
使用 Graylog 统一收集日志,支持搜索、过滤和可视化。
配置告警机制快速发现异常。
二、Nginx 日志分离配置
假设我们有两个站点:site1.com
和 site2.com
,可以在 nginx.conf
或独立的虚拟主机配置文件中进行日志分离:
server { server_name site1.com; access_log /var/log/nginx/site1_access.log main; error_log /var/log/nginx/site1_error.log; ... } server { server_name site2.com; access_log /var/log/nginx/site2_access.log main; error_log /var/log/nginx/site2_error.log; ... }
技巧: 通过 log_format
自定义日志格式,便于 Graylog 更好解析:
log_format json_combined escape=json '{ "@timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"request": "$request", ' '"status": "$status", ' '"body_bytes_sent": "$body_bytes_sent", ' '"http_referer": "$http_referer", ' '"http_user_agent": "$http_user_agent" }';
然后使用 access_log /var/log/nginx/site1_access.log json_combined;
。
三、安装与配置 Graylog
Graylog 依赖 Elasticsearch 和 MongoDB:
安装 MongoDB:
sudo apt install -y mongodb
安装 Elasticsearch(建议 7.x 版本):
sudo apt install -y elasticsearch
安装 Graylog:
wget https://packages.graylog2.org/repo/packages/graylog-4.0-repository_latest.deb sudo dpkg -i graylog-4.0-repository_latest.deb sudo apt update && sudo apt install -y graylog-server
启动服务:
sudo systemctl enable graylog-server sudo systemctl start graylog-server
访问 http://<server_ip>:9000
即可进入 Graylog 控制台。
四、配置日志输入(Input)
在 Graylog Web 控制台:
进入 System → Inputs。
选择 GELF UDP 或 GELF TCP 输入。
配置监听端口(如 12201)。
Nginx 可以通过 rsyslog 或 Filebeat 将日志转发至 Graylog。
五、通过 Filebeat 发送日志
推荐使用 Filebeat 将 Nginx 日志推送到 Graylog:
sudo apt install filebeat
编辑 /etc/filebeat/filebeat.yml
:
filebeat.inputs: - type: log paths: - /var/log/nginx/*.logoutput.logstash: hosts: ["127.0.0.1:5044"]
配合 Logstash 将数据转成 Graylog 可解析的 GELF 格式。
六、日志可视化与告警
Graylog 集成 Elasticsearch 索引后,可以:
使用搜索功能快速过滤 5xx 错误。
配置 Dashboard 实时展示流量趋势。
设置告警规则,在请求异常增多时发送通知(Email、Slack 等)。
七、总结
通过 Nginx 日志分离 与 Graylog 集成,我们实现了日志的集中收集、实时分析与可视化,大幅提升运维效率。
更多 Nginx教程 和 运维日志分析方案,请访问 码农资讯网(www.codesou.cn)。
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!