使用 loggly 来统一管理 nginx 日志

【摘要】Nginx会把access和error日志记录到文件中,使用Syslog进程(如:rsyslog)可以监控这些日志并且将他们发送到Loggly中,下面就是如何使用Loggly来纪录nginx的日志。本例中的rsylog使用1.19或更高版本,使用TCP 514端口,Ubuntu上默认的Nginx日志目录和标准的日志格式。

自动安装脚本
1. 运行Nginx配置脚本
运行如下脚本来搭建Nginx日志并传输到Loggly上。

curl -O https://www.loggly.com/install/configure-nginx.sh
sudo bash configure-nginx.sh -a SUBDOMAIN -u USERNAME

说明:
SUBDOMAIN 是你在Loggly上面注册的子域名
USERNAME 是你的Loggly的用户名

2. 确认事件
在Loggly上确认nginx标签是否已经打上。可能需要换上几分钟同步,如果没有可以按照如下步骤进行troubleshooting。
tag:nginx
nginx_loggly01

手动配置
1. 配置Syslog Daemon

curl -O https://www.loggly.com/install/configure-linux.sh
sudo bash configure-linux.sh -a SUBDOMAIN -u USERNAME

同样:
SUBDOMAIN 是你在Loggly上面注册的子域名
USERNAME 是你的Loggly的用户名

2. 配置Nginx文件监控
创建或者打开rsyslog配置文件:

sudo vim /etc/rsyslog.d/21-nginx-loggly.conf

将下面的部分添加进去:

$ModLoad imfile
$InputFilePollInterval 10 
$PrivDropToGroup adm
$WorkDirectory /var/spool/rsyslog

# Nginx access file:
$InputFileName /var/log/nginx/access.log
$InputFileTag nginx-access:
$InputFileStateFile stat-nginx-access
$InputFileSeverity info
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

#Nginx Error file: 
$InputFileName /var/log/nginx/error.log
$InputFileTag nginx-error:
$InputFileStateFile stat-nginx-error
$InputFileSeverity error
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

#Add a tag for nginx events
$template LogglyFormatNginx,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [TOKEN@41058 tag=\"nginx\"] %msg%\n"

if $programname == 'nginx-access' then @@logs-01.loggly.com:514;LogglyFormatNginx
if $programname == 'nginx-access' then ~
if $programname == 'nginx-error' then @@logs-01.loggly.com:514;LogglyFormatNginx
if $programname == 'nginx-error' then ~

说明:
将TOKEN替换为你在Loggly上面的customer token。

重启rsyslogd
$ sudo service rsyslog restart

3. 确认事件
tag:nginx
nginx_loggly01

高级配置:
自动解析Nginx
使用Json格式的日志
Streaming Syslog
script source

常见问题处理

  • 检查Nginx配置
  • 等待几分钟,等待索引创建就绪
  • 确认替换了你的个人token
  • 检查nginx 日志的权限是否可写。
  • 如需更所详细配置可以参考 loggly docs

    u2

    Related Posts

    python cx-Oracle 驱动安装

    安装oracle驱动 cx-Oracle驱动二进制版本下载地…

    Nginx 在if语句中限制IP访问

    一些web服务,出于安全考虑是不想让其他人访问到,除了添加登录用户认证外,还可以使用Nginx限制IP访问,只允许指定IP的用户访问站点或者接口。

    You Missed

    潘多拉魔盒已打开:开源AI攻击平台正在血洗全球防火墙

    • u2
    • 3月 4, 2026
    • 51 views
    潘多拉魔盒已打开:开源AI攻击平台正在血洗全球防火墙

    雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

    • u2
    • 3月 1, 2026
    • 61 views
    雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

    OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

    • u2
    • 2月 25, 2026
    • 182 views
    OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

    Anthropic 推出 Claude Code Security:AI 驱动的代码安全神器

    • u2
    • 2月 24, 2026
    • 97 views

    来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

    • u2
    • 10月 16, 2025
    • 62 views
    来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

    技术宅如何躲开越来越垃圾的CSDN?

    • u2
    • 4月 11, 2024
    • 48 views
    技术宅如何躲开越来越垃圾的CSDN?