本文汇总了使用云服务器ECS运维与监控功能时的常见问题。

云助手问题

云助手是云服务器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 Server 11/12、OpenSUSE、Aliyun Linux和CoreOS
说明
  • 使用ECS公共镜像创建的实例会默认安装云助手客户端。
  • 使用自定义镜像或者云市场镜像创建的实例需要您首先确认操作系统是否支持云助手,再自行安装云助手客户端。具体步骤请参见安装云助手客户端

在一个阿里云地域下,根据您的云服务器使用情况而定,您可以保有100到10000条云助手命令。

您可以修改云助手命令的名称和描述。为确保周期命令的一致性,不支持修改命令内容、超时时间和执行路径等信息。 如果您需要调整命令内容或执行路径,可以克隆命令,在目标命令的基础新建命令版本。具体步骤请参见克隆命令

有。您需要以管理员的身份安装和使用云助手:

  • Windows Server系统的管理员为administrator。
  • Linux系统的管理员为root。

可以。

  • 方式一:在ECS控制台上,一次执行命令操作最多可以选择50台实例。在一个阿里云地域下,您每天最多能执行5000次云助手命令。
  • 方式二:如果执行大批量任务,建议您使用运维编排服务OOS ACS-ECS-BulkyRunCommand运维模板,根据Tag批量执行云助手命令无需您逐一输入InstanceId。OOS单个循环任务最多能够执行1000次云助手命令,并且支持分批执行和并发度控制。

执行云助手命令与您登录实例后执行命令一样,只有命令所需条件满足后才会执行成功。您可以选择以下任一方式查看命令结果:

云助手故障排查问题

因为ECS实例中已经安装了云助手。请参见以下步骤修复。详情请参见安装云助手客户端

  • rpm安装包:运行以下命令,强制覆盖安装。

    rpm -i --force aliyun_x.x.x.rpm
  • deb安装包:运行以下命令。

    1. 卸载旧版本云助手服务。
      dpkg -r aliyun-assist
    2. 重新安装云助手服务。
      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系统(例如Aliyun Linux、CentOS、Debian、OpenSUSE、SUSE Linux Enterprise 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_main.log
  • 在相应目录查找心跳或者更新日志文件。例如:
    tail -n 100 /usr/local/share/aliyun-assist/$(/usr/sbin/aliyun-service -v)/log/aliyun_assist_update.log

因为高版本的Ubuntu系统的默认Shell环境为dash,而非bash。dash与bash的Shell语法不完全兼容,您可以切换默认的Shell环境解决该问题。

  1. 运行以下命令确认Shell环境是否为dash。
    ls /bin/sh
  2. 运行以下命令切换为默认的Shell环境。
    dpkg-reconfigure dash

按照页面提示,选择不要将dash设置为默认Shell环境。

可以。经典网络类型实例推荐安装最新版本云助手客户端。具体步骤,请参见安装云助手客户端通过下载链接安装客户端章节。如果您使用的历史版本客户端,您必须在云助手的安装路径下创建名为region-id的文件,并在文件中填入ECS实例所属地域的ID。取值请参见地域与可用区。例如,一台CentOS系统ECS实例在华东 1(杭州)地域:

  1. 填写地域ID。
    echo 'cn-hangzhou' > /usr/local/share/aliyun-assist/region-id
  2. 重启云助手服务。

因为云助手未收到相应的心跳信息。参见以下方式解决该问题。

  • 如果是云助手服务进程被关闭导致的,您可以重启云助手服务。Windows Server系统请参见如何查看云助手服务状态?,Linux系统可参见以下操作:
    1. 运行以下命令重启云助手服务。
      systemctl restart aliyun
    2. 运行以下命令确认云助手服务是否开机自动启动。
      systemctl status aliyun

      如果是disable状态,运行以下命令设置为开机自动启动。

      systemctl enable aliyun
  • 如果是经典网络类型实例,并且安装的是低版本云助手客户端,您需要自行添加配置文件明确ECS实例的地域信息。更多详情,请参见经典网络类型实例可以使用云助手吗?
  • 现象:日志中包含如下信息。
    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

请先排查云助手会话的环境变量,是否包含脚本中的相应命令。

  • 如果您使用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\AppData\Local\Microsoft\WindowsApps;

请通过以下几个方面进行排查问题:

  • 如果您使用Windows实例,请检查实例中PowerShell是否正常工作。
  • 确认是否任务超时导致失败。
  • 确认云助手的服务状态是否正常。可通过DescribeCloudAssistantStatus进行查询。
  • 查看云助手的日志信息,默认的日志路径如下:
    • Linux实例:/usr/local/share/aliyun-assist/云助手版本号/log/
    • Windows实例:C:\ProgramData\aliyun\assist\云助手版本号\log

任务状态为“Abort”,表示在一分钟之内任务没有下发到实例,建议您重新下发任务。

如果一直失败,请查看云助手的日志信息。

系统标准命令编码:Linux实例默认采用UTF-8编码;Windows实例默认采用GBK编码。

如果云助手脚本中包含中文字符,将采用输入提供的编码方式,请确保使用对应的方式解码。

  • InstanceNotRunning:实例未启动,请启动实例。
  • ClientNotRunning:云助手客户端未启动,查看云助手日志及确认云助手进程是否工作正常。
  • DeliveryTimeout:云助手下发任务失败,查看云助手日志或者更新到最新版本后在尝试执行命令。

应用运维问题

维护网站应用时,您可以参考以下运维建议。

  • 云盘数据日常备份。详情请参见创建快照执行或取消自动快照策略
  • 建议您使用SSL证书服务,实现网站的身份验证和数据加密传输。详情请参见什么是SSL证书服务
  • 安装恶意软件查杀插件、防DDoS攻击服务或开启云盾服务。云服务器提供了免费的安全服务,请参见基础安全服务DDoS基础防护
  • 监控网站流入和流出流量情况,识别出异常流量区间。通过添加拒绝访问的安全组规则,实现临时管控单点异常请求。详情请参见监控添加安全组规则
  • 监控ECS实例和云盘性能表现,标记出流量访问峰值期间。提前熟悉升降配、弹性伸缩或云盘扩容操作,应对请求突发激增。详情请参见升降配方式汇总什么是弹性伸缩扩容概述
  • 采用root/administrator用户名和密码凭证登录ECS实例的场景,需要您定期更新管理员密码。详情请参见重置实例登录密码
  • 定期更新软件补丁。阿里云公共镜像会定时更新安全补丁,建议您定期通过公共镜像制作自定义镜像。详情请参见更新自定义镜像