第 10 章 故障排除
本章提供了判断和解决与红帽网络 Satellite 相关的常见问题的方法。如果您需要额外的帮助,请通过 https://access.redhat.com/support/ 联络红帽支持。您还可通过您的 Satellite 授权帐户登录查看完整选项列表。
要开始进行一般问题的故障排除,您需要查看日志文件或者与出现问题组件相关的文件。我们的经验是使用
tail -f
命令查看所有的日志文件,然后运行 yum list
。这样,您就可以检查所有新的日志条目以获得线索。
一个常见的问题是磁盘空间满。如果您发现日志文件突然不再写入时,这很可能意味磁盘空间已满。要确认这一点,运行这个命令并检查 Use% 栏中的数据:
df -h
# df -h
除了可以从日志文件中获得信息,您还可以通过检索红帽网络 Satellite 及其组件状态获得有用的信息,请使用以下命令:
/usr/sbin/rhn-satellite status
# /usr/sbin/rhn-satellite status
另外,您还可以获得 Apache 网页服务器和 Red Hat Network Task Engine 等其他组件的状态。例如,要查看 Apache 网页服务器的状态,请运行以下命令:
service httpd status
# service httpd status
- 10.1. 安装和更新
- 10.2. 服务
- 10.3. 连接性
- 10.4. 日志和报告
- 10.5. 出错信息
- 问: 我在安装红帽网络 Satellite 时得到 "Error validating satellite certificate" 出错信息,该如何解决?
- 问: 在激活或者与红帽网络 Satellite 同步时得到 "ERROR: server.mount_point not set in the configuration file" 出错信息,如何解决?
- 问: 为什么 cobbler check 给出出错信息说它需要 yum-utils 的不同版本?
- 问: 激活红帽网络 Satellite 证书时得到 "unsupported version" 出错信息,如何解决?
- 问: 编辑 kickstart 侧写时得到 "Internal Server Error" 信息说有 ASCII 问题,这是为什么?
- 问: 得到 "Host Not Found" 或者 "Could Not Determine FQDN" 出错信息,该怎么办?
- 问: 在与红帽网络 Satellite 服务器同步时得到 "This server is not an entitled Satellite" 信息,如何解决?
10.1. 安装和更新 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
问:
尝试安装时 SELinux 不断给出信息。为什么?
答:
如果您安装红帽网络 Satellite 时遇到问题,并出现 SELinux 信息(比如 AVC 拒绝信息),请确定
audit.log
可用,以便红帽支持人员可为您提供支持。您可在 /var/log/audit/audit.log
中找到该文件,并将其附加到您的支持 ticket 中以便工程师为您提供帮助。
问:
我将
/var/satellite
改为 NFS 挂载,现在 SELinux 无法正常工作。我该做什么?
答:
您需要让 SELinux 知道这个 NFS 挂载以便其可以允许流量。方法是使用以下命令:
/usr/sbin/setsebool -P spacewalk_nfs_mountpoint on
# /usr/sbin/setsebool -P spacewalk_nfs_mountpoint on
如果您使用的是红帽企业版 Linux 6,您还需要运行命令:
/usr/sbin/setsebool -P cobbler_use_nfs on
# /usr/sbin/setsebool -P cobbler_use_nfs on
问:
我的 Satellite 失败,这是为什么?
答:
不要在红帽网络中央服务器的以下子频道中订阅您的红帽网络 Satellite:
- 红帽开发者套件(Red Hat Developer Suite)
- 红帽应用程序服务器(Red Hat Application Server)
- 红帽附加(Red Hat Extras)
- JBoss 产品频道
订阅这些频道并更新您的 Satellite 可能会安装关键软件组件较新且不兼容的版本,从而导致 Satellite 失败。
10.2. 服务 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
问:
为什么 Apache 网页服务器不运行?
答:
如果 Apache 网页服务器没有运行,您的
/etc/hosts
文件中的条目可能有误。
问:
怎样获得 Red Hat Network Task Engine 状态?
答:
要获得 Red Hat Network Task Engine 的状态,请运行命令:
service taskomatic status
# service taskomatic status
问:
怎样获得 Satellite 内嵌数据库的状态?
答:
要获得 Satellite 内嵌数据库的状态,请运行命令:
service oracle status
# service oracle status
问:
如果
yum
、up2date
或者红帽网络Satellite 的 push 功能不工作该怎么办?
答:
如果
yum
、up2date
或红帽网络 Satellite 的 push 功能失去作用,这可能是因为旧的日志文件出了问题。删除这些文件前,请停止 jabberd 守护进程。要做到这一点,请以 root 用户的身份使用以下命令:
service jabberd stop rm -f /var/lib/jabberd/db/_db* service jabberd start
# service jabberd stop
# rm -f /var/lib/jabberd/db/_db*
# service jabberd start
10.3. 连接性 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
问:
无法连接!怎样才能知道哪里出问题了?
答:
可使用以下方法排除一般连接错误:
- 在命令行中尝试使用
/etc/rhn/rhn.conf
中的正确连接字符串与红帽网络 Satellite 数据库连接:sqlplus username/password@sid
# sqlplus username/password@sid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 确认红帽网络 Satellite 正在使用网络时间协议(NTP),并设置为正确的时区。这适用于所有的客户端系统以及在使用独立数据库的红帽网络 Satellite 机器。
- 确认正确的软件包:
rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm
rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在红帽网络 Satellite 中安装,并在所有客户端系统中安装相应的rhn-org-trusted-ssl-cert-*.noarch.rpm
或原 CA SSL 公共(客户端)证书。 - 确认将客户端系统配置为使用正确的证书。
- 如果还使用一个或多个红帽网络 Proxy 服务器,确定每个 Proxy 的 SSL 证书都是正确的。Proxy 应该有它们自己的服务器 SSL 密钥对并安装了 CA SSL 公共(客户)。具体步骤请参阅《红帽网络客户端配置指南》中的 SSL 证书一章。
- 请确定客户端系统没有使用它们自身的防火墙,如 第 2.4 节 “附加要求” 所述屏蔽所需端口。
问:
如果导入或者同步频道失败,怎样才可恢复?
答:
如果导入/同步频道失败并且您不能用其它的方式解决它,运行这个命令来删除缓存中的内容:
rm -rf temporary-directory
# rm -rf temporary-directory
注意
第 6.2.1 节 “准备从本地介质导入” 指定
/var/rhn-sat-import/
作为临时目录。
接下来,重新启动导入或同步。
问:
得到 "SSL_CONNECT" 出错信息,该怎么做?
答:
常见的连接问题是出现
SSL_CONNECT
错误,它是由于在没有正确设定时间的机器中安装 Satellite 造成的。在 Satellite 的安装过程中,创建的 SSL 证书中有一个不准确的时间。如果修正了这个 Satellite 时间,这个证书的开始日期和时间就有可能是一个未来的时间,从而使它无效。
要排除这个故障,请在客户端系统和 Satellite 中使用以下命令检查日期/时间:
date
# date
所有机器的结果都会几乎完全相同并包括在这个证书的 "notBefore" 和 "notAfter" 的有效窗口中。使用以下的命令检查客户证书的日期和时间:
openssl x509 -dates -noout -in /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
# openssl x509 -dates -noout -in /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
使用以下的命令检查 Satellite 服务器的证书日期和时间:
openssl x509 -dates -noout -in /etc/httpd/conf/ssl.crt/server.crt
# openssl x509 -dates -noout -in /etc/httpd/conf/ssl.crt/server.crt
在默认的情况下,服务器证书的有效期是一年,而客户端证书的有效期是十年。如果您发现证书不正确,您可以等到有效的开始时间或重新创建新的证书。首选将所有系统的时间都设为 GMT。
10.4. 日志和报告 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
问:
不同的日志文件是什么?
答:
几乎每个故障排除的步骤都是从查看相关的日志文件开始。它们提供了有关在设备或者应用程序中进行的活动,包含非常有价值的信息,这样可监控性能并确保正确的配置。所有相关日志文件的路径请参考 表 10.1 “日志文件”:
/var/log/rhn/
目录中有很多按数字排列的日志文件(比如 /var/log/rhn/rhn_satellite_install.log.1、/var/log/rhn/rhn_satellite_install.log.2 等等)。这些轮转的日志是在当前 rhn_satellite_install.log
文件已满时使用 .<NUMBER> 扩展生成的日志文件,文件大小由 logrotate(8)
守护进程指定,内容写入轮转的日志文件。例如:rhn_satellite_install.log.1
包含最旧的轮转日志文件,rhn_satellite_install.log.4
包含最新的循轮转日志。
组件/任务 | 日志文件位置 |
---|---|
Apache 网页服务器 | /var/log/httpd/ 目录 |
红帽网络 Satellite | /var/log/rhn/ 目录 |
Red Hat Network Satellite Installation Program | /var/log/rhn/rhn_satellite_install.log |
数据库安装 - 内嵌数据库 | /var/log/rhn/install_db.log |
数据库填入 | /var/log/rhn/populate_db.log |
Red Hat Network Satellite Synchronization Tool | /var/log/rhn/rhn_server_satellite.log |
监控基础设施 | /var/log/nocpulse/ 目录 |
监控通知 | /var/log/notification/ 目录 |
Red Hat Network DB Control - 内嵌数据库 | /var/log/rhn/rhn_database.log |
Red Hat Network Task Engine (taskomatic) | /var/log/messages |
yum | /var/log/yum.log |
XML-RPC 交易 | /var/log/rhn/rhn_server_xmlrpc.log |
问:
如何使用
spacewalk-report
?
答:
在有些事务中管理员需要一个其红帽网络 Satellite 资源的简明、格式化总结,它是否使用其授权库存,订阅系统或者用户及机构。与其手动从 Satellite 网页界面中收集这些信息,红帽网络 Satellite 中有一个
spacewalk-report
命令可一次收集并显示重要的 Satellite 信息。
注意
要使用
spacewalk-report
,您必须安装 spacewalk-reports
软件包
spacewalk-report
可让管理员管理并显示有关 Satellite 中内容、系统事件历史记录、系统和用户资源的报告。使用 spacewalk-report
命令您可以得到有关以下内容的报告:
- 系统清单 — 列出所有在 Satellite 中注册的系统。
- 授权 — 列出 Satellite 中的所有机构,并根据系统或者频道授权排序。
- 勘误 — 列出与注册的系统关联的勘误,并根据严重性以及应用具体勘误的系统对勘误排序。
- 用户 — 列出在 Satellite 中注册的所有用户并列出与具体用户关联的任意系统。
- 系统历史记录 — 列出所有发生的系统事件或者子集。
要获得 CSV 格式的报告,请在您的 Satellite 服务器的命令行提示符后运行该命令。
spacewalk-report report_name
# spacewalk-report report_name
以下报告可用:
报告 | 调用 | 描述 |
---|---|---|
系统清单 | inventory | 列出在服务器中注册的系统以及硬件和软件信息 |
授权 | entitlements | 列出 Satellite 中的所有机构及其系统或者频道授权 |
频道中的勘误 | errata-channels | 列出频道中的勘误 |
所有勘误 | errata-list-all | 所有勘误的完整列表 |
系统勘误 | errata-systems | 列出可用勘误以及受影响的系统 |
系统中的用户 | users | 列出所有在 Satellite 中注册的用户 |
管理的系统 | users-systems | 列出可由单个用户管理的系统列表 |
Kickstart 树 | kickstartable-trees | 列出可 kickstart 的树 |
系统历史记录 | system-history | 列出系统事件历史记录 |
系统历史记录频道 | system-history-channels | 列出系统事件历史记录 |
系统历史记录配置 | system-history-configuration | 列出系统配置事件历史记录 |
系统历史记录授权 | system-history-entitlements | 列出系统授权事件历史记录 |
系统历史记录勘误 | system-history-errata | 列出系统勘误事件历史记录 |
系统历史记录 kickstart | system-history-kickstart | 列出系统 kickstart 及 provisioning 事件历史记录 |
系统历史记录软件包 | system-history-packages | 列出系统软件包事件历史记录 |
有关独立报告的详情请运行使用
--info
或者 --list-fields-info
和报告名称的 spacewalk-report
命令。这样会在报告中显示可能字段的描述和列表。
有关详情请参考
spacewalk-report(8)
manpage 和 spacewalk-report
程序的 --help
参数,其中包括该程序调用及其选项的附加信息。
问:
怎样才能找到我使用的数据库方案版本是什么?
答:
要决定您的数据库机构方案版本,请运行以下命令:
rhn-schema-version
# rhn-schema-version
问:
怎样才能知道我使用的字符集类型是什么?
答:
要获得您的 Satellite 数据库字符集的类型,运行以下命令:
rhn-charsets
# rhn-charsets
问:
为什么管理员无法收到电子邮件?
答:
如果管理员不能从红帽网络 Satellite 获得电子邮件,请确定在
/etc/rhn/rhn.conf
文件中正确地配置了 traceback_mail
。
问:
如何更改 traceback 邮件的发件人?
答:
如果这个回溯邮件是从 dev-null@rhn.redhat.com 发出的,您应该使这个地址成为一个在您的机构内有效的地址,包括
web.default_mail_from
选项并在 /etc/rhn/rhn.conf
中包括适当的值。
10.5. 出错信息 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
问:
我在安装红帽网络 Satellite 时得到 "Error validating satellite certificate" 出错信息,该如何解决?
答:
在红帽网络 Satellite 安装过程中的 "Error validating satellite certificate" 出错信息是由于环境中有 HTTP 代理服务器所致。您可查看
install.log
确定,并找到以下出错信息:
要解决问题:
- 请使用断开连接模式运行安装脚本,并跳过已经完成的数据库安装:
./install.pl --disconnected --skip-db-install
# ./install.pl --disconnected --skip-db-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用您喜欢的文本编辑器打开
/etc/rhn/rhn.conf
,并添加或者修改以下行:server.satellite.rhn_parent = satellite.rhn.redhat.com
server.satellite.rhn_parent = satellite.rhn.redhat.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除以下行:disconnected=1
disconnected=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用代理服务器连接到红帽网络,那么您还将需要添加或者以下行以体现该代理服务器设置。server.satellite.http_proxy = <hostname>:<port> server.satellite.http_proxy_username = <username> server.satellite.http_proxy_password = <password>
server.satellite.http_proxy = <hostname>:<port> server.satellite.http_proxy_username = <username> server.satellite.http_proxy_password = <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在连接的模式中重新激活 Satellite,作为 root 用户使用
rhn-satellite-activate
命令,其中包含 satellite 证书的路径和文件名:rhn-satellite-activate --rhn-cert=/path/to/file.cert
# rhn-satellite-activate --rhn-cert=/path/to/file.cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
另外,还可在连接的模式运行
install.pl
脚本,但要使用 --answer-file=answer file
选项。确定该 answer file 中包含指定的 HTTP 代理服务器信息,如下所示:
rhn-http-proxy = <hostname>:<port> rhn-http-proxy-username = <username> rhn-http-proxy-password = <password>
rhn-http-proxy = <hostname>:<port>
rhn-http-proxy-username = <username>
rhn-http-proxy-password = <password>
问:
在激活或者与红帽网络 Satellite 同步时得到 "ERROR: server.mount_point not set in the configuration file" 出错信息,如何解决?
答:
如果
/etc/rhn/rhn.conf
文件的 mount_point
配置参数没有指向目录路径,或者它指向的目录路径不存在或者无权访问该目录,则会在红帽网络 Satellite 激活或者同步的过程中出现 "ERROR: server.mount_point not set in the configuration file" 出错信息。
要解决这个问题,请检查
/etc/rhn/rhn.conf
文件中的 mount_point
配置参数值,确定有 /var/satellite
和 /var/satellite/redhat
目录。对所有值,检查到该文件的路径正确,并正确设定了权限。
问:
为什么
cobbler check
给出出错信息说它需要 yum-utils
的不同版本?
答:
有时运行
cobbler check
命令会给出类似如下的出错信息:
cobbler check
# cobbler check
The following potential problems were detected:
#0: yum-utils need to be at least version 1.1.17 for reposync -l, current version is 1.1.16
这是个已知 Cobbler
reposync
软件包问题。这个出错信息是伪信息,可忽略。会在红帽网络 Satellite 以后的版本中解决这个出错信息问题。
问:
激活红帽网络 Satellite 证书时得到 "unsupported version" 出错信息,如何解决?
答:
如果您的红帽网络 Satellite 证书被破坏,您会得到以下出错信息之一:
ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 96'>
ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 96'>
RHN_PARENT: satellite.rhn.redhat.com Error reported from RHN: <Fault -2: 'unhandled internal exception: unsupported version: 115'> ERROR: unhandled XMLRPC fault upon remote activation: <Fault -2: 'unhandled internal exception: unsupported version: 115'> ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
RHN_PARENT: satellite.rhn.redhat.com
Error reported from RHN: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
ERROR: unhandled XMLRPC fault upon remote activation: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
Invalid satellite certificate
Invalid satellite certificate
要解决这个问题,请联络红帽支持服务获得新证书。
问:
编辑 kickstart 侧写时得到 "Internal Server Error" 信息说有 ASCII 问题,这是为什么?
答:
如果您最近在您的 kickstart 侧写中添加了一些内核参数,您可能会发现当您要「查看 kickstart 侧写列表」时会得到以下内部服务器出错信息:
'ascii' codec can't encode character u'\u2013'
'ascii' codec can't encode character u'\u2013'
出现这个出错信息是因为无法正确识别该侧写中的一些文本。
要解决问题:
- 作为 root 用户直接 ssh 到 Satellite 服务器:
ssh root@satellite.fqdn.com
# ssh root@satellite.fqdn.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 查看
/var/lib/cobbler/config/profiles.d
中的数据并找到最新编辑的文件,这样可找到造成这个问题的 kickstart 文件:ls -l /var/lib/cobbler/config/profiles.d/
# ls -l /var/lib/cobbler/config/profiles.d/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用您喜欢的文本编辑器打开该侧写,并找到以下文本:
\u2013hostname
\u2013hostname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改要读取的条目:--hostname
--hostname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存对该侧写的更改并关闭文件。
- 重启红帽网络 Satellite 服务应用更新的侧写:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 返回网页界面。请注意该界面需要一些时间方可解析该服务,但应在一分钟左右返回正常状态。
问:
得到 "Host Not Found" 或者 "Could Not Determine FQDN" 出错信息,该怎么办?
答:
因为红帽网络配置文件只依赖完全限定域名(FQDN), 这在主要程序将红帽网络 Satellite 名称解析为 IP 地址时至关重要。Red Hat Update Agent、ed Hat Network Registration Client 和 Apache 网页服务器特别容易出现这个问题,出问题时,红帽网络程序会给出 "host not found" 出错信息,且网页服务器会在启动失败时给出 "Could not determine the server's fully qualified domain name" 信息。
这个问题通常是由
/etc/hosts
文件造成的。您应该检查 /etc/nsswitch.conf
文件,这个文件定义了域名的解析和顺序。通常情况下,应首先检查 /etc/hosts
文件,然后是网络信息服务(NIS),然后是 DNS。必须成功使用以上方法之一方可要让 Apache 网页服务器启动,且红帽网络客户应用程序可以正常工作。
要解决这个问题,指定
/etc/hosts
文件中的内容。这个文件会类似于:
127.0.0.1 this_machine.example.com this_machine localhost.localdomain \ localhost
127.0.0.1 this_machine.example.com this_machine localhost.localdomain \ localhost
首先,在一个文本编辑器中删除错误的机器信息,如:
127.0.0.1 localhost.localdomain.com localhost
127.0.0.1 localhost.localdomain.com localhost
然后,保存这个文件并重新运行红帽网络客户应用程序或 Apache 网页服务器。如果它们还无法正常运行,在文件中明确指定 Satellite 的 IP 地址,如:
127.0.0.1 localhost.localdomain.com localhost 123.45.67.8 this_machine.example.com this_machine
127.0.0.1 localhost.localdomain.com localhost
123.45.67.8 this_machine.example.com this_machine
使用实际的 Satellite IP 地址来替换这里的值。这么做可能会解决这个问题。请注意,如果规定了具体的 IP 地址,则在机器获得新地址时要更新这个文件。
问:
在与红帽网络 Satellite 服务器同步时得到 "This server is not an entitled Satellite" 信息,如何解决?
答:
如果
satellite-sync
报告该服务器没有激活为红帽网络 Satellite,就不会在对应的红帽网络 Satellite 频道中订阅它。如果这是一个新安装的系统,那么可能还没有在该系统中激活这个 satellite 证书。如果之前激活了该证书,那么它也被取消激活了。
检查系统的子频道查看它是否订阅到任意红帽网络的红帽网络 Satellite 频道。使用以下命令查看订阅的频道:
yum repolist
# yum repolist
作为 root 用户使用这个命令在您的 Satellite 中再次激活同一 Satellite 证书:
rhn-satellite-activate -vvv --rhn-cert=/path/to/certificate
# rhn-satellite-activate -vvv --rhn-cert=/path/to/certificate
注意
如果您已经尝试了所有的故障排除的步骤或希望红帽网络的专业技术人员提供帮助,红帽建议您利用红帽网络 Satellite 提供的强大的支持功能。最有效的获得技术支持的方法是收集您的 Satellite 的配置参数、日志文件和数据库信息并将它们直接发送到红帽。
红帽网络提供了一个实现这个任务的命令行工具:Satellite 诊断信息收集器(
satellite-debug
)。要使用这个工具,您只需要以 root 用户的身份运行这个命令。您会看到所收集的信息以及一个 tarball 文件,如:
完成后,请将
/tmp/
中的新文件通过电子邮件发送到红帽客户服务代表以便及时进行诊断。