云服务器内容精选

  • 如何处理健康检查导致的大量日志? 可以增加健康检查间隔时间,配置方法详见修改健康检查配置。 存在的风险:延长健康检查的间隔时间后,后端E CS 实例出现故障时,负载均衡发现故障ECS实例的时间也会增长。 可以关闭健康检查,配置方法详见修改健康检查配置。 存在的风险:关闭健康检查后,负载均衡不再检查后端服务器,一旦某台后端服务器发生故障,则无法实现访问流量自动切换至其它正常的后端服务器。 切换健康检查协议,配置方法:进入控制台,选择产生检查日志的后端服务器组,单击配置健康检查配,切换健康检查协议。 存在的风险:负载均衡将只检查监听端口状态,不检查HTTP状态,会导致负载均衡无法实时获知HTTP应用是否出现问题。 父主题: 健康检查
  • 操作步骤 登录CAE控制台。选择“组件配置”。 在“组件配置”页面上方的下拉框中选择待操作的组件。 图1 选择待操作的组件 如图2所示配置就绪探针,并生效配置,具体操作步骤请参考配置健康检查。 图2 配置就绪探针 对组件进行升级操作,具体操作请参考升级组件。 升级时,在左侧导航栏中选择“组件列表”,进入“组件列表”页面,单击对应组件“访问地址”列的ip地址,查看应用页面。如图3所示服务并无中断。 图3 访问应用页面 在“组件事件”页面,查看组件事件,可以看到实例存在不健康的请求,此时检测到新实例还未准备好进行流量切换,则继续使用旧实例提供服务。 图4 查看组件事件
  • 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。 如果通过日志无法排除问题,请联系公有云运维人员处理,并发送已收集的故障日志信息。
  • 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。 如果通过日志无法排除问题,请联系运维人员处理,并发送已收集的故障日志信息。
  • 各节点与主管理节点之间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关注集群统一管理平台是否提供管理功能。 服务级别关注组件是否能够提供正常的服务。 主机级别关注主机的一系列指标是否正常。 系统健康检查可以包含三方面检查项:各检查对象的“健康状态”、相关的告警和自定义的监控指标,检查结果并不能等同于界面上显示的“健康状态”。
  • 请求参数 表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
  • 响应示例 状态码: 201 POST操作正常返回。 { "request_id" : "0e837340-f1bd-4037-8f61-9923d0f0b19e", "healthmonitor" : { "monitor_port" : null, "id" : "c2b210b2-60c4-449d-91e2-9e9ea1dd7441", "project_id" : "99a3fff0d03c428eac3678da6a7d0f24", "domain_name" : null, "name" : "My Healthmonitor", "delay" : 1, "max_retries" : 3, "pools" : [ { "id" : "488acc50-6bcf-423d-8f0a-0f4184f5b8a0" } ], "admin_state_up" : true, "timeout" : 30, "type" : "HTTP", "expected_codes" : "200", "url_path" : "/", "http_method" : "GET" } }
  • 请求示例 创建健康检查,并指定检查协议为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。
  • 响应示例 响应样例1 { "healthmonitor": { "name": "", "admin_state_up": true, "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "domain_name": "www.test.com", "delay": 10, "expected_codes": "200", "max_retries": 10, "http_method": "GET", "timeout": 10, "pools": [ { "id": "bb44bffb-05d9-412c-9d9c-b189d9e14193" } ], "url_path": "/", "type": "HTTP", "id": "2dca3867-98c5-4cde-8f2c-b89ae6bd7e36", "monitor_port": 112 } }
  • 响应消息 表4 响应参数 参数 参数类型 描述 healthmonitor Healthmonitor object 健康检查对象。详见表5。 表5 healthmonitor字段说明 参数 参数类型 描述 id String 健康检查ID。 tenant_id String 健康检查所在的项目ID。 project_id String 此参数和tenant_id参数含义一样,均指健康检查所在的项目ID。 name String 健康检查名称。 delay Integer 健康检查间隔,单位秒,取值范围[1,50]。 max_retries Integer 健康检查最大重试次数,取值范围[1,10]。 pools Array of Pools objects 健康检查关联的后端云服务器组的ID列表。详见表6 admin_state_up Boolean 健康检查的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。 true表示开启。 false表示关闭。 timeout Integer 健康检查超时时间,单位秒,取值范围[1,50]。 说明: 建议该值小于delay的值。 type String 健康检查的类型。 取值范围:TCP、UDP_CONNECT、HTTP。 monitor_port Integer 健康检查端口号,取值范围[1,65535]。 默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。 expected_codes String 期望HTTP响应状态码,指定下列值: 单值,例如200; 列表,例如200,202; 区间,例如200-204。 仅当type为HTTP时生效。 暂时不支持该字段,统一置为200。 domain_name String 健康检查时,发送的http请求的域名。 仅当type为HTTP时生效。 默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。 以数字或字母开头,只能包含数字、字母、’-’、’.’。 例如:www.test.com url_path String 健康检查时发送的http请求路径。默认为“/”。 以“/”开头。 仅当type为HTTP时生效。 例如:“/test” http_method String HTTP请求的方法;默认值:GET 取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。 仅当type为HTTP时生效。 说明: 该字段为预留字段,暂未启用。 表6 pools字段说明 参数 是否必选 参数类型 描述 id 是 String 后端服务器组id
  • 请求示例 请求样例1 创建健康检查 POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/healthmonitors { "healthmonitor": { "admin_state_up": true, "pool_id": "bb44bffb-05d9-412c-9d9c-b189d9e14193", "domain_name": "www.test.com", "delay": 10, "max_retries": 10, "timeout": 10, "type": "HTTP" } }