现象
当管理服务器安装在Linux机器上,用户打开管理控制台,导航到“设置”->“系统设置”时。
出现错误提示”Internal server error. Error code 100011" ,在 HAR 日志里可以看到以下信息
"startedDateTime": "2017-06-26T10:29:32.428Z",
"time": 26.16399999897112,
"request": {
"method": "GET",
"url": "http://backup.gbi.local:9877/api/ams/settings/email_notification",
"status": 500,
"statusText": "Internal Server Error",
"httpVersion": "HTTP/1.1",
In WebServer log (log can be found under /var/lib/Acronis/WebServer) you see this error message:
File "/usr/lib/Acronis/PyShell/stdlib.zip/socket.py", line 711, in create_connection
raise err
File "/usr/lib/Acronis/PyShell/stdlib.zip/socket.py", line 702, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
完整的报错信息:
2017-06-26 12:17:20,878 140559673751296 | 00000000-0000-0000-0000-000000000000 | +GET | /api/ams/settings/email_notification? | handler: wcs.model.descriptor.resource.handle_request | session:
2017-06-26 12:17:20,881 140559673751296
Traceback (most recent call last):
File "/usr/lib/Acronis/PyShell/stdlib.zip/urllib/request.py", line 1254, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 1106, in request
self._send_request(method, url, body, headers)
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 1151, in _send_request
self.endheaders(body)
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 1102, in endheaders
self._send_output(message_body)
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 934, in _send_output
self.send(msg)
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 877, in send
self.connect()
File "/usr/lib/Acronis/PyShell/stdlib.zip/http/client.py", line 849, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/Acronis/PyShell/stdlib.zip/socket.py", line 711, in create_connection
raise err
File "/usr/lib/Acronis/PyShell/stdlib.zip/socket.py", line 702, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
原因
Acronis 通知服务启动失败
解决方法
第一步:检查 Acronis 通知服务启动状态
检查 Acronis 通知服务器是否在运行
ps ax | grep –i notification_service
如果服务未运行,请检查位于/var/lib/Acronis/NotificationService/notification_service.log 中的 Acronis 通知日志
如果可以看到“ [Errno 99] Cannot assign requested address”错误,则该服务无法启动,因为所需的端口不可用或由于地址解析问题(该问题会发生是因为IPv6被禁用,但是主机仍通过IPv6而不是IPv4去解析)。
第二步:检查30572端口
用 netstat 命令,检查30572端口是否处于忙的状态
netstat -a | grep 30572
如果没有任何输出,则该端口是空闲的。 继续进行下一步。 反之,将看到该端口正在使用中。 如果可能,为使用30572的软件设置另一个端口。
第三步:检查 IPv6设置
如果端口可用,请检查地址解析。输入:
ifconfig
检查输出中的 IPv6地址。 如果输出不包含IPv6地址,则在计算机上禁用 IPv6。
现在检查/etc/hosts。 如果看到:: 1 localhost ip6-localhost ip6-loopback,localhost 将通过 IPv6地址解析而不是 IPv4地址。
从此行中删除 localhost。 删后如下:
::1 ip6-localhost ip6-loopback
使用以下一个命令重新启动 Acronis Management Server 服务(如可能,重新启动计算机):
service acronis_ams restart
或
systemctl restart acronis_ams.service
服务重启后,Acronis Cyber Backup 的设置将可以访问。