Skip to main content

关于系统日志

为了帮助管理员了解活动和错误,GitHub Enterprise Server 会存储系统日志。

关于 GitHub Enterprise Server 的系统日志

要跟踪、查看和排查 你的 GitHub Enterprise Server 实例 上的活动和异常,可以查看系统日志。 实例会存储以下两种类型的系统日志。

  • 磁盘上的纯文本日志文件,由 syslog 或特定服务存储
  • 二进制日志文件,由日记存储

默认情况下,GitHub Enterprise Server 每 24 小时自动轮换一次系统日志,并将轮换的日志保留 7 天。 系统日志包括系统级事件、应用程序日志和关于 Git 事件的数据。 由于日志文件经常写入,并且可能很大,因此你可能更愿意在独立于 你的 GitHub Enterprise Server 实例 的主机上提取和分析日志条目。

对 GitHub Enterprise Server 实例拥有管理 SSH 访问权限的人员可以访问和读取系统日志。 有关详细信息,请参阅“访问管理 shell (SSH)”。

你可以将系统日志和审核日志转发到外部系统进行分析或保留更长时间。 有关详细信息,请参阅 日志转发流式处理企业审核日志

除了查看系统日志之外,还可以通过其他方式监测实例上的活动。 例如,可以查看审核日志和推送日志,或配置全局 Webhook。 有关详细信息,请参阅“监控企业中的活动”。

Note

下面的日志列表并不全面。

系统日志文件

GitHub Enterprise Server 以纯文本形式将多个类别的系统日志写入到实例的磁盘。 拥有实例的管理 SSH 访问权限的人员可以使用 Linux 命令行工具解析这些文件,例如 cattailheadlessmore

数据库的日志文件

以下日志文件记录来自实例上的数据库服务的事件。

路径说明
/var/log/mysql/mysql.log
记录与实例的 MySQL 数据库相关的事件。
/var/log/mysql/mysql.err
记录与实例的 MySQL 数据库相关的错误。
/data/user/mssql/log/errorlog
记录与实例的 MSSQL 数据库相关的错误。 有关其他事件,请参阅本文后面的数据库的日记日志

GitHub 应用程序的日志文件

下列日志文件记录了来自实例上的 GitHub 应用程序的事件。

路径说明
/var/log/github/audit.log
记录实例上的 GitHub 应用程序中的活动的用户、存储库和系统事件。 可以使用 github_audit 关键字筛选日志中的条目。
/var/log/github/exceptions.log
记录 GitHub 应用程序遇到的异常。
/var/log/github/gitauth.log
使用 HTTPS 或 SSH 记录 Git 身份验证请求。 babeld 服务处理所有 Git 身份验证请求和活动。
/var/log/github/production.log
记录 GitHub 应用程序的内部事件。 对于对网站的请求,包括回应的控制器操作。 可能包含具有不同结构的条目,具体取决于作业或请求的起源。

HTTP 服务器的日志文件

以下日志文件记录来自实例的 HTTP 服务器的事件。

路径说明
/var/log/nginx/error.log*
记录 Web 请求的错误。
/var/log/nginx/gist.log
记录与 gist 相关的 HTTP 请求。 有关详细信息,请参阅“创建 Gist”。
/var/log/nginx/gist.error.log
记录与 gist 的 HTTP 请求相关的错误。
/var/log/nginx/github.log
记录对 GitHub 应用程序的 HTTP 请求。
/var/log/nginx/github.error.log
记录与 HTTP 请求关联的错误。
/var/log/nginx/pages.log
记录与 GitHub Pages 关联的 HTTP 请求。 有关详细信息,请参阅“What is GitHub Pages?”。
/var/log/nginx/pages.error.log
记录与 GitHub Pages 的 HTTP 请求相关的错误。

管理控制台 的日志文件

下列日志文件包含来自实例的 管理控制台 的事件。 有关详细信息,请参阅“关于管理控制台”。

路径说明
/var/log/enterprise-manage/audit.log
在实例的 管理控制台 中记录活动。
/var/log/enterprise-manage/unicorn.log
记录管理员使用 Web UI 或 REST API 在 管理控制台 中执行的 HTTP 和 HTTPS 操作。

实例配置的日志文件

以下日志文件包含与实例的配置相关的事件。

路径说明
/data/user/common/ghe-config.log
记录与最新配置运行关联的事件。 如果配置运行失败,则日志的输出将会停止。 此日志还会记录在升级实例软件的过程中运行的迁移的相关信息。 有关详细信息,请参阅“命令行实用程序”。
/data/user/config-apply/logs/YYYYMMDD/*
存储以前的配置运行的日志文件。 实例将文件存储在反映日期的目录中,每个文件名称均反映运行的节点和 ID。

以下日志文件包含可为实例提供搜索功能的服务中的事件。

路径说明
/var/log/elasticsearch/github-enterprise.log
记录与 Elasticsearch 服务关联的事件,实例使用该服务提供搜索服务。

系统服务的日志文件

以下日志包含来自实例上的系统服务的事件。

路径说明
/var/log/coredumps.log
记录关于意外终止的系统进程的信息。
/var/log/boot.log
记录关于实例启动流程的信息。
/var/log/chrony/
此目录包含与网络时间协议 (NTP) 同步和实例的系统时钟相关的日志。 有关详细信息,请参阅“配置时间同步”。
/var/log/haproxy.log
记录对实例的所有 Web 和 API 请求。 对于 HTTP 连接,条目包括客户端请求的 URL 以及该请求的 HTTP 方法。
/var/log/ssh-console-audit.log
记录管理员使用管理 shell (SSH) 运行的命令。 有关详细信息,请参阅“访问管理 shell (SSH)”。
/var/log/mail-replies/metroplex.log
记录关于实例接收的邮件的信息。 有关详细信息,请参阅“配置电子邮件通知”。

systemd 日记中的系统日志

容器化多个 GitHub Enterprise Server 服务,例如 babeld 服务。 GitHub Enterprise Server 以二进制格式将这些服务的系统日志写入到 systemd 日记。

拥有实例的管理 SSH 访问权限的人员可以使用 journalctl 命令解析这些日志。 有关详细信息,请参阅在线 Linux 手册页面中的 journalctl(1)

要查看 systemd 日记中的日志,请运行以下命令,将 SERVICE-NAME 替换为来自以下日志列表的服务名称。 要查看所有其他容器化服务的日志,请运行 nomad job status 并使用 ID 作为 SERVICE-NAME。

journalctl -t SERVICE-NAME

GitHub 应用程序的日记日志

下列日志记录了来自你的实例上的 GitHub 应用程序的事件。

服务名称说明
github-resqued
记录与后台作业相关的事件。 如果作业涉及内置或外部身份验证,则此日志包含关于请求的信息。

如果实例使用 LDAP 身份验证并启用了 LDAP 同步,则 LDAP 同步的事件会出现在此日志中。 有关详细信息,请参阅“使用 LDAP”。
github-unicorn
记录用户在实例的 Web UI 中或通过 API 执行的 HTTP 和 HTTPS 操作。 如果操作涉及内置或外部身份验证,则此日志包含有关请求的信息。

如果为 LDAP 或 SAML 身份验证启用了调试日志记录,则会在此日志中显示已进行身份验证的请求的调试级信息。 有关详细信息,请参阅“使用 LDAP”或“SAML 身份验证”。

Git 的日记日志

以下日志包含与实例上的 Git 活动相关的事件。

服务名称说明
babeld
记录实例上的所有 Git 活动的事件,包括访问存储库的身份验证。
codeload
记录与生成或检索实例上的存储库中的代码存档相关的活动的事件。
gpgverify
记录与提交签名验证相关的事件。 有关详细信息,请参阅“关于提交签名验证”。

存储的日记日志

以下日志包含实例上存储或检索数据的服务中的事件。

服务名称说明
alambic
记录与文件的存储和检索相关的事件,例如 Git LFS 对象、头像图片、Web UI 中的注释包含的文件附件以及发布存档。

数据库的日记日志

以下日志文件包含与实例上的数据库服务相关的事件。

服务名称说明
mysql
记录与实例的 MySQL 数据库相关的事件。
mssql
记录与实例的 MSSQL 数据库相关的事件。

Webhook 的日志

以下日志文件包含与实例所发送 Webhook 相关的事件。

服务名称说明
hookshot-go
记录实例上所有 Webhook 活动的事件,包括触发的 Webhook、交付和失败。

关于支持包中的系统日志

如果生成支持包,则会包含日志。 有关详细信息,请参阅“向 GitHub 支持提供数据”。