本文汇总了使用云服务器ECS运维与监控功能时的常见问题。
云助手问题
云助手支持哪些操作系统类型?
Alibaba Cloud Linux
CentOS 6/7/8及更高版本
CoreOS
Debian 8/9/10及更高版本
OpenSUSE
RedHat 5/6/7及更高版本
说明RedHat中需要您自行下载rpm包安装云助手Agent,具体操作,请参见安装云助手Agent。
SUSE Linux Enterprise Server 11/12/15及更高版本
Ubuntu 12/14/16/18及更高版本
Window Server 2012/2016/2019及更高版本
使用ECS公共镜像创建的实例会默认安装云助手Agent。
使用自定义镜像或者云市场镜像创建的实例需要您首先确认操作系统是否支持云助手,再自行安装云助手Agent。具体步骤请参见安装云助手Agent。
最多能保有多少条云助手命令?
在一个阿里云地域下,根据您的云服务器使用情况而定,您可以保留100到10000条云助手命令。
可以修改已经创建的命令吗?
您可以修改云助手命令的名称和描述。为确保周期命令的一致性,不支持修改命令内容、超时时间和执行路径等信息。 如果您需要调整命令内容或执行路径,可以克隆命令,在目标命令的基础新建命令版本。具体步骤请参见克隆命令。
在ECS实例中执行命令有权限限制吗?
有。您需要以管理员的身份安装和使用云助手:
Windows Server系统的管理员为administrator。
Linux系统的管理员为root。
可以同时在多台实例上执行云助手命令吗?
可以。
方式一:在ECS控制台上,一次执行命令操作最多可以选择50台实例。在一个阿里云地域下,您每天最多能执行5000次云助手命令。
方式二:如果执行大批量任务,建议您使用系统运维管理OOSACS-ECS-BulkyRunCommand运维模板,根据Tag批量执行云助手命令无需您逐一输入InstanceId。OOS单个循环任务最多能够执行1000次云助手命令,并且支持分批执行和并发度控制。
如何查看是否成功执行了命令?
执行云助手命令与您登录实例后执行命令一样,只有命令所需条件满足后才会执行成功。您可以选择以下任一方式查看命令结果:
ECS管理控制台。
远程连接实例后,查看日志文件,详情请参见如何查看云助手的运行日志?
云助手故障排查问题
Linux系统ECS实例安装云助手Agent失败,提示No such file or directory.
因为ECS实例中已经安装了云助手。请参见以下步骤修复。详情请参见安装云助手Agent。
rpm安装包:运行以下命令,强制覆盖安装。
sudo rpm -i --force aliyun_x.x.x.rpm
deb安装包:运行以下命令。
卸载旧版本云助手服务。
sudo dpkg -r aliyun-assist
重新安装云助手服务。
sudo dpkg -i aliyun_x.x.x.deb
如何查看云助手的运行日志?
您需要远程连接实例查看日志文件。云助手的运行日志文件如下所示:
${install_dir}/${version}/log/aliyun_assist_main.log
${install_dir}/${version}/log/aliyun_assist_update.log
${version}为云助手的版本号, 例如1.0.1.368。${install_dir}为云助手在ECS实例操作系统中的安装路径。
不同系统的云助手Agent的默认安装路径在哪里?
不同系统的安装路径如下:
Windows Server系统:C:\ProgramData\aliyun\assist
CoreOS系统:/opt/local/share/aliyun-assist/
其他Linux系统(例如Alibaba Cloud Linux、CentOS、Debian、OpenSUSE、SUSE Linux Enterprise Server和Ubuntu等):/usr/local/share/aliyun-assist/
如何查看云助手服务状态?
远程连接ECS实例后,参见以下方式:
查看云助手服务状态,确认云助手服务是否正常启用:
Linux系统:
方式一
sudo systemctl status aliyun
方式二
ps aux | grep aliyun
Windows Server系统:
选择计算机管理 > 服务和应用程序 > 服务,并找到Aliyun Service。
在相应目录查找日志文件。例如:
tail -n 100 /usr/local/share/aliyun-assist/$(/usr/sbin/aliyun-service -v)/log/aliyun_assist_main.log
在相应目录查找心跳或者更新日志文件。例如:
tail -n 100 /usr/local/share/aliyun-assist/$(/usr/sbin/aliyun-service -v)/log/aliyun_assist_update.log
为什么Shell脚本在Ubuntu系统下无法执行?但在CentOS等系统中正常执行?
因为高版本的Ubuntu系统的默认Shell环境为dash,而非bash。dash与bash的Shell语法不完全兼容,您可以切换默认的Shell环境解决该问题。
运行以下命令确认Shell环境是否为dash。
ls /bin/sh
运行以下命令切换为默认的Shell环境。
dpkg-reconfigure dash
按照页面提示,选择不要将dash设置为默认Shell环境。
经典网络类型实例可以使用云助手吗?
可以。经典网络类型实例推荐安装最新版本云助手Agent。具体步骤,请参见安装云助手Agent通过下载链接安装客户端章节。如果您使用的历史版本客户端,您必须在云助手的安装路径下创建名为region-id的文件,并在文件中填入ECS实例所属地域的ID。取值请参见地域和可用区。例如,一台CentOS系统ECS实例在华东 1(杭州)地域:
填写地域ID。
echo 'cn-hangzhou' > /usr/local/share/aliyun-assist/region-id
重启云助手服务。
为什么在ECS控制台执行命令时,提示实例未安装云助手服务?
因为云助手未收到相应的心跳信息。参见以下方式解决该问题。
如果是云助手服务进程被关闭导致的,您可以重启云助手服务。Windows Server系统请参见如何查看云助手服务状态?,Linux系统可参见以下操作:
运行以下命令重启云助手服务。
sudo systemctl restart aliyun
运行以下命令确认云助手服务是否开机自动启动。
sudo systemctl status aliyun
如果是disable状态,运行以下命令设置为开机自动启动。
sudo systemctl enable aliyun
如果是经典网络类型实例,并且安装的是低版本云助手Agent,您需要自行添加配置文件明确ECS实例的地域信息。更多详情,请参见经典网络类型实例可以使用云助手吗?。
运行日志中包含Failed to open gshell: Device or resource busy,如何解决?
现象:日志中包含如下信息。
2019-11-06 03:10:15,993 INFO [default] /dev/virtio-ports/org.qemu.guest_agent.0:-1 2019-11-06 03:10:15,993 ERROR [default] Failed to open gshell: Device or resource busy
排查:
方法一
运行以下命令确认云助手Agent是否开启了多个进程。如果有多个,将所有进程关闭后,再重新启动云助手Agent。
ps aux | grep aliyun
方法二
运行以下命令查看org.qemu.guest_agent.0文件被哪些进程占用。云助手进程均含有aliyun-**样式,关闭所有非云助手的进程。
lsof /dev/virtio-ports/org.qemu.guest_agent.0
为什么某些脚本在本机可以执行,但是通过云助手执行会提示command not found?
请先排查云助手会话的环境变量,是否包含脚本中的相应命令。
Linux实例排查方式
运行以下命令,查看环境变量
export
运行以下命令,设置环境变量(以实例上实际的环境变量为准)。
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Windows实例排查方式
运行以下命令,查看环境变量。
set
运行以下命令,设置环境变量(以实例上实际的环境变量为准)。
set PATH=%PATH%;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\Administrator\A
为什么执行任务后,任务状态为Failed?
请通过以下几个方面进行排查问题:
如果您使用Windows实例,请检查实例中PowerShell是否正常工作。
确认是否任务超时导致失败。
确认云助手的服务状态是否正常。可通过DescribeCloudAssistantStatus进行查询。
查看云助手的日志信息,默认的日志路径如下:
Linux实例:/usr/local/share/aliyun-assist/云助手版本号/log/
Windows实例:C:\ProgramData\aliyun\assist\云助手版本号\log
为什么执行任务后,任务状态为Abort?
任务状态为“Abort”,表示在一分钟之内任务没有下发到实例,建议您重新下发任务。
如果一直失败,请查看云助手的日志信息。
云助手脚本中包含中文字符,为什么返回结果中显示乱码?
系统标准命令编码:Linux实例默认采用UTF-8编码;Windows实例默认采用GBK编码。
如果云助手脚本中包含中文字符,将采用输入提供的编码方式,请确保使用对应的方式解码。
云助手常见错误码
InstanceNotRunning:实例未启动,请启动实例。
ClientNotRunning:云助手Agent未启动,查看云助手日志及确认云助手进程是否工作正常。
DeliveryTimeout:云助手下发任务失败,查看云助手日志或者更新到最新版本后在尝试执行命令。
应用运维问题
用云服务器ECS托管一个小型网站,有哪些日常运维建议?
维护网站应用时,您可以参考以下运维建议。
云盘数据日常备份。详情请参见创建快照或启用或停用自动快照策略。
建议您使用SSL证书服务,实现网站的身份验证和数据加密传输。详情请参见什么是数字证书管理服务。
安装恶意软件查杀插件、防DDoS攻击服务或开启云安全中心服务。云服务器提供了免费的安全服务,请参见基础安全服务或DDoS基础防护。
监控网站流入和流出流量情况,识别出异常流量区间。通过添加拒绝访问的安全组规则,实现临时管控单点异常请求。详情请参见查看实例监控信息和添加安全组规则。
监控ECS实例和云盘性能表现,标记出流量访问峰值期间。提前熟悉升降配、弹性伸缩或云盘扩容操作,应对请求突发激增。详情请参见升降配方式概述、什么是弹性伸缩ESS或云盘扩容指引。
采用root/administrator用户名和密码凭证登录ECS实例的场景,需要您定期更新管理员密码。详情请参见重置实例登录密码。
定期更新软件补丁。阿里云公共镜像会定时更新安全补丁,建议您定期通过公共镜像制作自定义镜像。详情请参见更新自定义镜像。