运维与监控FAQ
云助手问题
什么是云助手?
云助手是云服务器 ECS 原生的运维部署服务,支持可视化控制台和 API 操作。无需远程连接实例,云助手便能帮您批量执行 Bat、PowerShell 或者 Shell 命令。更多详情,请参见云助手。
如何使用云助手?
您可以通过 ECS 管理控制台或者调用 API CreateCommand 使用云助手。
云助手支持哪些操作系统类型?
云助手支持主流 Windows Server 和类 Unix 操作系统,具体操作系统版本如下所示:
- Windows Server:Windows Server 2008、2012 和 2016
- 类 Unix:Ubuntu 12/14/16、CentOS 5/6/7、Debian 7/8/9、SUSE Linux Enterprise Server11/12、OpenSUSE、Alibaba Cloud Linux 和 CoreOS
说明:
- 使用 ECS 公共镜像创建的实例会默认安装云助手客户端。
- 使用自定义镜像或者云市场镜像创建的实例需要您首先确认操作系统是否支持云助手,再自行安装云助手客户端。
最多能保有多少条云助手命令?
在一个阿里云地域下,根据您的云服务器使用情况而定,您可以保有 100 到 10000 条云助手命令。
可以修改已经创建的命令吗?
您可以修改云助手命令的名称和描述。为确保周期命令的一致性,不支持修改命令内容、超时时间和执行路径等信息。 如果您需要调整命令内容或执行路径,可以克隆命令,在目标命令的基础新建命令版本。
在 ECS 实例中执行命令有权限限制吗?
有。您需要以管理员的身份安装和使用云助手:
- Windows Server 系统的管理员为 administrator。
- Linux 系统的管理员为 root。
可以同时在多台实例上执行云助手命令吗?
可以。
- 方式一:在 ECS 控制台上,一次执行命令操作最多可以选择 50 台实例。在一个阿里云地域下,您每天最多能执行 5000 次云助手命令。
- 方式二:如果执行大批量任务,建议您使用运维编排服务 OOS ACS-ECS-BulkyRunCommand 运维模板,根据 Tag 批量执行云助手命令无需您逐一输入 InstanceId。OOS 单个循环任务最多能够执行 1000 次云助手命令,并且支持分批执行和并发度控制。
如何查看是否成功执行了命令?
执行云助手命令与您登录实例后执行命令一样,只有命令所需条件满足后才会执行成功。您可以选择以下任一方式查看命令结果:
- ECS 管理控制台。
- DescribeInvocationResults。
- 远程连接实例后,查看日志文件,详情请参见如何查看云助手的运行日志。
云助手故障排查问题
Linux 系统 ECS 实例安装云助手客户端失败,提示 No such file or dire ctory.
因为 ECS 实例中已经安装了云助手。请参见以下步骤修复。
- rpm 安装包:运行以下命令,强制覆盖安装。
rpm -i --force aliyun_x.x.x.rpm
- deb 安装包:运行以下命令。
- 卸载旧版本云助手服务。
dpkg -r aliyun-assist
- 重新安装云助手服务。
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 实例操作系统中的安装路径。
不同系统的云助手客户端的默认安装路径在哪里?
不同系统的安装路径如下:
- Windows Server 系统:C:\ProgramData\aliyun\assist
- CoreOS 系统:/opt/local/share/aliyun-assist/
- 其他 Linux 系统(例如 Alibaba Cloud Linux、CentOS、Debian、OpenSUSE、SUSE LinuxEnterprise Server 和 Ubuntu 等):/usr/local/share/aliyun-assist/
如何查看云助手服务状态?
远程连接 ECS 实例后,参见以下方式:
- 查看云助手服务状态,确认云助手服务是否正常启用:
- Linux 系统:
- 方式一:
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_m ain.log
- 在相应目录查找心跳或者更新日志文件。例如:
tail -n 100 /usr/local/share/aliyun-assist/$(/usr/sbin/aliyun-service -v)/log/aliyun_assist_u pdate.log
为什么 Shell 脚本在 Ubuntu 系统下无法执行?但在 CentOS 等系统中正常执行?
因为高版本的 Ubuntu 系统的默认 Shell 环境为 dash,而非bash。dash 与 bash 的 Shell 语法不完全兼容,您可以切换默认的 Shell 环境解决该问题。
- 运行以下命令确认 Shell 环境是否为 dash。
ls /bin/sh
- 运行以下命令切换为默认的 Shell 环境。
dpkg-reconfigure dash
按照页面提示,选择不要将 dash 设置为默认 Shell 环境。
经典网络类型实例可以使用云助手吗?
可以。经典网络类型实例推荐安装最新版本云助手客户端。具体步骤,请参见安装云助手客户端通过下载链接安装客户端章节。如果您使用的历史版本客户端,您必须在云助手的安装路径下创建名
为 region-id 的文件,并在文件中填入 ECS 实例所属地域的 ID。例如,一台 CentOS 系统 ECS 实例在华东1(杭州)地域:
- 填写地域 ID。
echo 'cn-hangzhou' > /usr/local/share/aliyun-assist/region-id
- 重启云助手服务。
为什么在 ECS 控制台执行命令时,提示实例未安装云助手服务?
因为云助手未收到相应的心跳信息。参见以下方式解决该问题。
- 如果是云助手服务进程被关闭导致的,您可以重启云助手服务。Windows Server 系统请参见如何查看云助手服务状态?,Linux 系统可参见以下操作:
- 运行以下命令重启云助手服务。
systemctl restart aliyun
- 运行以下命令确认云助手服务是否开机自动启动。
systemctl status aliyun
如果是 disable 状态,运行以下命令设置为开机自动启动。
systemctl enable aliyun
- 如果是经典网络类型实例,并且安装的是低版本云助手客户端,您需要自行添加配置文件明确 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
- 排查:
- 方法一:运行以下命令确认云助手客户端是否开启了多个进程。如果有多个,将所有进程关闭后,再重新启动云助手客户端。
ps aux | grep aliyun
- 方法二:运行以下命令查看 org.qemu.guest_agent.0 文件被哪些进程占用。云助手进程均含有aliyun-**样式,关闭所有非云助手的进程。
lsof /dev/virtio-ports/org.qemu.guest_agent.0
为什么某些脚本在本机可以执行,但是通过云助手执行会提示 commandnot 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:\Wi ndows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\Ad ministrator\AppData\Local\Microsoft\WindowsApps;
为什么执行任务后,任务状态为 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:云助手客户端未启动,查看云助手日志及确认云助手进程是否工作正常。
- DeliveryTimeout:云助手下发任务失败,查看云助手日志或者更新到最新版本后在尝试执行命令。
应用运维问题
用云服务器 ECS 托管一个小型网站,有哪些日常运维建议?
维护网站应用时,您可以参考以下运维建议。
- 云盘数据日常备份。
- 建议您使用 SSL 证书服务,实现网站的身份验证和数据加密传输。
- 安装恶意软件查杀插件、防 DDoS 攻击服务或开启云盾服务。云服务器提供了免费的安全服务。
- 监控网站流入和流出流量情况,识别出异常流量区间。通过添加拒绝访问的安全组规则,实现临时管控单点异常请求。
- 监控 ECS 实例和云盘性能表现,标记出流量访问峰值期间。提前熟悉升降配、弹性伸缩或云盘扩容操作,应对请求突发激增。
- 采用 root/administrator 用户名和密码凭证登录 ECS 实例的场景,需要您定期更新管理员密码。
- 定期更新软件补丁。阿里云公共镜像会定时更新安全补丁,建议您定期通过公共镜像制作自定义镜像。
>>快来点击免费下载《ECS全知道·下册》了解更多详情!<<