云服务器内容精选

  • 后端服务器的网络ACL配置 网络ACL为子网级别的可选安全层,若ELB的后端子网关联了网络ACL规则,网络ACL规则必须放通ELB用于健康检查的协议和端口和健康检查的源地址。 网络ACL默认规则会拒绝所有入站和出站流量,启用网络ACL后,您必须对网络ACL规则进行配置。 您可通过自助诊断工具后端服务器的安全组规则进行诊断。后端服务器的网络ACL规则的检查项目如下表3所示。 表3 网络ACL规则排查项目 排查项 处理措施 健康检查入方向协议检查 请确保后端服务器的网络ACL入方向规则放通健康检查协议对应的传输层协议、健康检查端口和ELB后端子网所在的VPC网段。 配置指导详情见配置后端服务器的网络ACL(独享型)。 健康检查入方向源地址检查 健康检查入方向源端口检查 健康检查入方向目的地址检查 健康检查入方向目的端口检查 健康检查出方向协议检查 请确保后端服务器的网络ACL出方向规则放通健康检查协议对应的传输层协议、健康检查端口和ELB后端子网所在的VPC网段。 配置指导详情见配置后端服务器的网络ACL(独享型)。 健康检查出方向源地址检查 健康检查出方向源端口检查 健康检查出方向目的地址检查 健康检查出方向目的端口检查 若独享型ELB实例未开启“跨VPC后端”功能,ELB四层监听器转发的流量将不受安全组规则和网络ACL规则限制,安全组规则和网络ACL规则无需额外放通。建议您使用监听器的访问控制功能对访问IP进行限制,详情请参考访问控制策略。
  • 检查后端服务器路由 请检查是否手动修改了后端服务器内部的路由,查看主网卡(比如eth0)上是否配置默认路由,默认路由是否修改。如果默认路由更改,可能导致健康检查报文无法到达后端服务器。 您可以在后端服务器上通过以下命令查看您的默认路由是否指向网关(经过ELB转发属于跨网段访问,三层通信需要配置默认路由指向网关)。 ip route 或 route -n 正常的回显如图6所示。 图6 默认路由指向网关示例 图7 默认路由未指向网关示例 如果回显中没有像图6中的第一条路由信息,或者路由指向的IP的不是后端服务器所在VPC子网的网关,请您配置默认路由指向网关。
  • 检查后端服务器是否正常 如果后端服务器的操作系统为Windows,请通过浏览器直接访问https://后端服务器的IP : 健康检查配置的端口。如果返回码为2xx或3xx,则表示后端服务器正常。 您可以在后端服务器上通过以下命令查看后端服务器的健康检查端口是否被健康检查协议正常监听。 netstat -anlp | grep port 回显中包含健康检查端口信息并且显示LISTEN,则表示后端服务器的健康检查端口在监听状态,如图2中表示880端口被TCP进程所监控。 如果您没有配置健康检查端口信息,默认和后端服务器业务端口一致。 图2 后端服务器正常被监听的回显示例 图3 后端服务器没有被监听的回显示例 如果健康检查端口没有在监听状态(后端服务器没有被监听),您需要先启动后端服务器上的业务,启动业务后再查看健康检查端口是否被正常监听。 如果是HTTP健康检查,请您在后端服务器上执行以下命令查看回显中返回的状态码。 curl 后端服务器的私有IP:健康检查端口/健康检查路径 -iv HTTP健康检查是ELB向后端服务器发起GET请求,当获取到以下所列的响应状态码,认为服务器是正常状态。 对于TCP的监听器,HTTP健康检查正常返回状态码是200。 对于独享型ELB:HTTP/HTTPS健康检查正常返回状态码均为200。 图4 后端服务器异常的回显示例 图5 后端服务器正常的回显示例 如果HTTP健康检查异常,除了检查健康检查路径外,建议您将配置的HTTP健康检查修改为TCP健康检查。操作如下: 在监听器界面,修改目标监听器,在配置参数里选择已有TCP健康检查的后端服务器组,或者选择新创建TCP健康检查的后端服务器组。配置完成之后,几十秒后去查看健康检查状态是否恢复正常。
  • 后端服务器的安全组配置 独享型负载均衡的后端服务器安全组规则必须放通ELB用于健康检查的协议和端口和健康检查的源地址。 健康检查的协议和端口为用户在健康检查配置页面进行设置,您可在后端服务器组的基本信息页面查看。独享型负载均衡用于健康检查的源地址为ELB后端子网所在的VPC网段。 您可通过自助诊断工具后端服务器的安全组规则进行诊断。后端服务器安全组规则的检查项目如下表2所示。 表2 安全组规则排查项目 排查项 处理措施 健康检查入方向源地址检查 请确保后端服务器的安全组入方向规则放通健康检查协议对应的传输层协议、健康检查端口和ELB后端子网所在的VPC网段。 配置指导详情见配置后端服务器的安全组(独享型)。 健康检查入方向端口检查 健康检查入方向协议检查 健康检查出方向源地址检查 默认的安全组出方向规则全部放通。如果您设置了出方向规则,请确保后端服务器的安全组出方向规则放通健康检查协议对应的传输层协议、健康检查端口和ELB后端子网所在的VPC网段。 配置指导详情见配置后端服务器的安全组(独享型)。 健康检查出方向端口检查 健康检查出方向协议检查 若独享型ELB实例未开启“跨VPC后端”功能,ELB四层监听器转发的流量将不受安全组规则和网络ACL规则限制,安全组规则和网络ACL规则无需额外放通。建议您使用监听器的访问控制功能对访问IP进行限制,详情请参考访问控制策略。
  • 排查思路 负载均衡已提供自助问题诊断工具帮助用户定位健康检查异常问题,如果通过自助诊断工具排查仍然无法定位问题,请参考表1进一步排查。 因为健康检查包含检查间隔和阈值判断,相关配置的修改完成后需要等待一定的时间,配置才会生效。 如果健康检查恢复正常,在ELB关联的后端服务器基本信息界面可以看到健康检查状态是否正常。 表1 排查思路 排查手段 排查项目 自助诊断工具排查 后端服务器的安全组配置 后端服务器的网络ACL配置 健康检查参数配置 其他异常排查项 检查后端服务器组是否关联监听器 检查ELB是否绑定EIP或私网IP 检查后端服务器是否正常 检查后端服务器防火墙 检查后端服务器路由 检查后端服务器负载 检查后端服务器hosts.deny文件
  • 操作步骤 登录CAE控制台。选择“组件配置”。 在“组件配置”页面上方的下拉框中选择待操作的组件。 图1 选择待操作的组件 如图2所示配置就绪探针,并生效配置,具体操作步骤请参考配置健康检查。 图2 配置就绪探针 对组件进行升级操作,具体操作请参考升级组件。 升级时,在左侧导航栏中选择“组件列表”,进入“组件列表”页面,单击对应组件“访问地址”列的ip地址,查看应用页面。如图3所示服务并无中断。 图3 访问应用页面 在“组件事件”页面,查看组件事件,可以看到实例存在不健康的请求,此时检测到新实例还未准备好进行流量切换,则继续使用旧实例提供服务。 图4 查看组件事件
  • OMA运行状态 指标项名称:OMA运行状态 指标项含义:检查OMA的运行状态,状态结果包括运行和停止两种状态,如果OMA状态为停止,则认为不健康。 恢复指导: 登录检查结果不健康的节点,然后执行su - omm切换到omm用户。 执行${OMA_PATH}/restart_oma_app,手工启动OMA,然后重新检查。如果检查结果仍然不健康,则执行3。 如果手工启动OMA无法恢复,建议查看分析OMA日志“/var/log/Bigdata/omm/oma/omm_agent.log”。 如果通过日志无法排除问题,请联系运维人员处理,并发送已收集的故障日志信息。
  • 进程运行时间 指标项名称:NodeAgent运行时间、Controller运行时间和Tomcat运行时间 指标项含义:检查NodeAgent、Controller、Tomcat进程的运行时间。如果小于半小时(即1800s),则进程可能重启过,建议半小时后再检查。如果多次检查,进程的运行时间都小于半小时,说进程状态异常。 恢复指导: 登录检查结果不健康的节点,执行su - omm切换到omm用户。 根据进程名称查看进程pid,执行命令: ps -ef | grep NodeAgent 根据pid查看进程启动时间,执行命令: ps -p pid -o lstart 判断进程启动时间是否正常。如果进程一直反复重启,执行5 查看对应模块日志,分析重启原因。 NodeAgent运行时间异常,检查相关日志/var/log/Bigdata/nodeagent/agentlog/agent.log。 Controller运行时间异常,检查相关日志/var/log/Bigdata/controller/controller.log。 Tomcat运行时间异常,检查相关日志/var/log/Bigdata/tomcat/web.log。 如果通过日志无法排除问题,请联系运维人员处理,并发送已收集的故障日志信息。
  • OMS状态检查 指标项名称:OMS状态检查 指标项含义:OMS状态检查包括HA状态检查和资源状态检查。 HA状态取值为active、standby和NULL,分别表示主节点、备节点和未知。资源状态取值为normal、abnormal和NULL,分别表示正常、异常和未知。HA状态为NULL时,认为不健康;资源状态为NULL或abnormal时,认为不健康。 表1 OMS状态说明表 名称 说明 HA状态 active表示主节点 standby表示备节点 NULL表示未知 资源状态 normal表示所有资源都正常 abnormal表示有异常资源 NULL表示未知 恢复指导: 登录主管理节点,执行su - omm切换到omm用户。执行${CONTROLLER_HOME}/sbin/status-oms.sh查看OMS状态。 如果HA状态为NULL,可能是系统在重启,这个一般是中间状态,HA后续会自动调整为正常状态。 如果资源状态异常,则说明有Manager的某些组件资源异常, 可具体查看acs、aos、cep、controller、feed_watchdog、fms、guassDB、httpd、iam、ntp、okerberos、oldap、pms、tomcat等组件状态是否正常。 如果Manager组件资源异常,参见Manager组件状态检查进行处理。
  • Manager组件状态检查 指标项名称:Manager组件状态检查 指标项含义:Manager组件状态检查包括组件资源运行状态和资源HA状态。资源运行状态,取值为Normal、Abnormal等;资源HA状态,取值为Normal、Exception等。Manager组件包含acs、aos、cep、controller、feed_watchdog、floatip、fms、gaussDB、heartBeatCheck、httpd、iam、ntp、okerberos、oldap、pms、tomcat等。当运行状态和HA状态不是Normal时,认为指标不健康。 表2 Manager组件状态说明表 名称 说明 资源运行状态 Normal表示正常运行 Abnormal表示运行异常 Stopped表示停止 Unknown表示状态未知 Starting表示正在启动 Stopping表示正在停止 Active_normal表示主正常运行 Standby_normal表示备正常运行 Raising_active表示正在升主 Lowing_standby表示正在降备 No_action表示没有该动作 Repairing表示正在修复 NULL表示未知 资源HA状态 Normal表示正常 Exception表示故障 Non_steady表示非稳态 Unknown表示未知 NULL表示未知 恢复指导: 登录主管理节点,执行su - omm切换到omm用户。执行${CONTROLLER_HOME}/sbin/status-oms.sh查看OMS状态。 如果floatip、okerberos、oldap等异常,可参见告警ALM-12002、ALM-12004、ALM-12005分别进行处理。 如果是其他资源异常,建议查看相关异常模块的日志。 controller资源异常:查看异常节点的/var/log/Bigdata/controller/controller.log。 cep资源异常:查看异常节点的/var/log/Bigdata/omm/oms/cep/cep.log。 aos资源异常:查看异常节点的/var/log/Bigdata/controller/aos/aos.log。 feed_watchdog资源异常:查看异常节点的/var/log/Bigdata/watchdog/watchdog.log。 httpd资源异常:查看异常节点的/var/log/Bigdata/httpd/error_log。 fms资源异常:查看异常节点的/var/log/Bigdata/omm/oms/fms/fms.log。 pms资源异常:查看异常节点的/var/log/Bigdata/omm/oms/pms/pms.log。 iam资源异常:查看异常节点的/var/log/Bigdata/omm/oms/iam/iam.log。 gaussDB资源异常:查看异常节点的/var/log/Bigdata/omm/oms/db/omm_gaussdba.log。 ntp资源异常:查看异常节点的/var/log/Bigdata/omm/oms/ha/scriptlog/ha_ntp.log。 tomcat资源异常:查看异常节点的/var/log/Bigdata/tomcat/catalina.log。 如果通过日志无法排除问题,请联系公有云运维人员处理,并发送已收集的故障日志信息。
  • 各节点与主管理节点之间SSH互信 指标项名称:各节点与主管理节点之间SSH互信 指标项含义:检查SSH互信是否正常。如果使用omm用户,在主管理节点可以通过SSH登录其他节点且不需要输入密码,则认为健康;否则,不健康。或者主管理节点SSH可以直接登录其他节点,但在其他节点无法通过SSH登录主管理节点,则也认为不健康。 恢复指导: 如果该指标项检查异常,表示各节点与主管理节点之间SSH互信异常。SSH互信异常时,首先检查“/home/omm”目录的权限是否为omm。非omm的目录权限可能导致SSH互信异常,建议执行chown omm:wheel修改权限后重新检查。如果“/home/omm”目录权限正常,则执行2。 SSH互信异常一般会导致Controller和NodeAgent之间心跳异常,进而出现节点故障的告警。这时可参见告警ALM-12006进行处理。
  • 操作场景 为了满足对健康检查结果的进一步具体分析,您可以在MRS中查看以及导出健康检查的结果。 系统健康检查的范围包含Manager、服务级别和主机级别的健康检查: Manager关注集群统一管理平台是否提供管理功能。 服务级别关注组件是否能够提供正常的服务。 主机级别关注主机的一系列指标是否正常。 系统健康检查可以包含三方面检查项:各检查对象的“健康状态”、相关的告警和自定义的监控指标,检查结果并不能等同于界面上显示的“健康状态”。
  • 请求示例 创建健康检查,并指定检查协议为HTTP协议 POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/healthmonitors { "healthmonitor" : { "name" : "My Healthmonitor", "max_retries" : 3, "pool_id" : "488acc50-6bcf-423d-8f0a-0f4184f5b8a0", "type" : "HTTP", "timeout" : 30, "delay" : 1 } }
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 注:自动生成 。 healthmonitor HealthMonitor object 健康检查对象。 表6 HealthMonitor 参数 参数类型 描述 admin_state_up Boolean 健康检查的管理状态。 取值: true:表示开启健康检查,默认为true。 false表示关闭健康检查。 delay Integer 健康检查间隔。取值:1-50s。 最小值:1 最大值:50 domain_name String 发送健康检查请求的域名。 取值:以数字或字母开头,只能包含数字、字母、’-’、’.’。 默认为空,表示使用负载均衡器的vip作为http请求的目的地址。 使用说明:当type为HTTP/HTTPS时生效。 expected_codes String 期望响应状态码。 取值: 单值:单个返回码,例如200。 列表:多个特定返回码,例如200,202。 区间:一个返回码区间,例如200-204。 默认值:200。 仅支持HTTP/HTTPS设置该字段,其他协议设置不会生效。 http_method String HTTP请求方法。 取值:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH,默认GET。 使用说明:当type为HTTP/HTTPS时生效。 不支持该字段,请勿使用。 id String 健康检查ID max_retries Integer 健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE。取值范围:1-10。 最小值:1 最大值:10 max_retries_down Integer 健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE。取值范围:1-10,默认3。 最小值:1 最大值:10 monitor_port Integer 健康检查端口号。取值:1-65535,默认为空,表示使用后端云服务器端口号。 最小值:1 最大值:65535 name String 健康检查名称。 pools Array of PoolRef objects 健康检查所在的后端云服务器组ID列表。实际只会有一个后端云服务器组ID。 project_id String 健康检查所在的项目ID。 timeout Integer 一次健康检查请求的超时时间。 建议该值小于delay的值。 最小值:1 最大值:50 type String 健康检查请求协议。 取值:TCP、UDP_CONNECT、HTTP、HTTPS。 使用说明: 若pool的protocol为QUIC,则type只能是UDP_CONNECT。 若pool的protocol为UDP,则type只能UDP_CONNECT。 若pool的protocol为TCP,则type可以是TCP、HTTP、HTTPS。 若pool的protocol为HTTP,则type可以是TCP、HTTP、HTTPS。 若pool的protocol为HTTPS,则type可以是TCP、HTTP、HTTPS。 url_path String 健康检查请求的请求路径。以"/"开头,默认为"/"。 支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:',+ 使用说明:当type为HTTP/HTTPS时生效。 created_at String 创建时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 updated_at String 更新时间。格式:yyyy-MM-dd'T'HH:mm:ss'Z',UTC时区。 注意:独享型实例的历史数据以及共享型实例下的资源,不返回该字段。 表7 PoolRef 参数 参数类型 描述 id String 后端服务器组ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM鉴权Token.。 表3 请求Body参数 参数 是否必选 参数类型 描述 healthmonitor 是 CreateHealthMonitorOption object 健康检查对象。 表4 CreateHealthMonitorOption 参数 是否必选 参数类型 描述 admin_state_up 否 Boolean 健康检查的管理状态。 取值: true:表示开启健康检查,默认为true。 false表示关闭健康检查。 delay 是 Integer 健康检查间隔。取值:1-50s。 domain_name 否 String 发送健康检查请求的域名。 取值:以数字或字母开头,只能包含数字、字母、’-’、’.’。 默认为空,表示使用负载均衡器的vip作为http请求的目的地址。 使用说明:当type为HTTP/HTTPS时生效。 最小长度:1 最大长度:100 expected_codes 否 String 期望响应状态码。 取值: 单值:单个返回码,例如200。 列表:多个特定返回码,例如200,202。 区间:一个返回码区间,例如200-204。 默认值:200。 仅支持HTTP/HTTPS设置该字段,其他协议设置不会生效。 最小长度:1 最大长度:64 http_method 否 String HTTP请求方法。 取值:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH,默认GET。 使用说明:当type为HTTP/HTTPS时生效。 不支持该字段,请勿使用。 最小长度:1 最大长度:16 max_retries 是 Integer 健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE。取值范围:1-10。 最小值:1 最大值:10 max_retries_down 否 Integer 健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE。取值范围:1-10,默认3。 最小值:1 最大值:10 monitor_port 否 Integer 健康检查端口号。取值:1-65535,默认为空,表示使用后端云服务器端口号。 说明: 当绑定的pool开启了端口透传功能时,该字段为必填。 最小值:1 最大值:65535 name 否 String 健康检查名称。 最小长度:0 最大长度:255 pool_id 是 String 健康检查所在的后端云服务器组ID project_id 否 String 健康检查所在的项目ID。 最小长度:1 最大长度:32 timeout 是 Integer 一次健康检查请求的超时时间。 建议该值小于delay的值。 最小值:1 最大值:50 type 是 String 健康检查请求协议。 取值:TCP、UDP_CONNECT、HTTP、HTTPS。 使用说明: 若pool的protocol为QUIC,则type只能是UDP_CONNECT。 若pool的protocol为UDP,则type只能UDP_CONNECT。 若pool的protocol为TCP,则type可以是TCP、HTTP、HTTPS。 若pool的protocol为HTTP,则type可以是TCP、HTTP、HTTPS。 若pool的protocol为HTTPS,则type可以是TCP、HTTP、HTTPS。 url_path 否 String 健康检查请求的请求路径。以"/"开头,默认为"/"。 支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:',+ 使用说明:当type为HTTP/HTTPS时生效。 缺省值:/ 最小长度:1 最大长度:80