运维与监控FAQ

本文汇总了使用云服务器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次云助手命令,并且支持分批执行和并发度控制。

如何查看是否成功执行了命令?

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

云助手故障排查问题

Linux系统ECS实例安装云助手Agent失败,提示No such file or directory.

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

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

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

    1. 卸载旧版本云助手服务。

      sudo dpkg -r aliyun-assist
    2. 重新安装云助手服务。

      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环境解决该问题。

  1. 运行以下命令确认Shell环境是否为dash。

    ls /bin/sh
  2. 运行以下命令切换为默认的Shell环境。

    dpkg-reconfigure dash

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

经典网络类型实例可以使用云助手吗?

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

  1. 填写地域ID。

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

为什么在ECS控制台执行命令时,提示实例未安装云助手服务?

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

  • 如果是云助手服务进程被关闭导致的,您可以重启云助手服务。Windows Server系统请参见如何查看云助手服务状态?,Linux系统可参见以下操作:

    1. 运行以下命令重启云助手服务。

      sudo systemctl restart aliyun
    2. 运行以下命令确认云助手服务是否开机自动启动。

      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实例排查方式

  1. 运行以下命令,查看环境变量

    export
  2. 运行以下命令,设置环境变量(以实例上实际的环境变量为准)。

    export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Windows实例排查方式

  1. 运行以下命令,查看环境变量。

    set
  2. 运行以下命令,设置环境变量(以实例上实际的环境变量为准)。

    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托管一个小型网站,有哪些日常运维建议?

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