管理云¶
在云中使用Tags来组织资源。¶
标签是一类存储云中资源元数据的键值对。其主要用来分类资源,例如,可以将一个用户的虚拟机打上标签,以表明用户所在的城市。在这个例子中,键就是城市,而值可能是Toronto或是Tokyo。可以让cloudstack发现所有打上标签的资源。例如,发现指定城市里用户的虚拟机。
可以给用户虚拟机,磁盘卷,快照,来宾网络,模板,ISO镜像,防火墙规则,端口转发规则,公共IP地址,安全组,负载均衡规则,项目,VPC,网络访问列表或者静态路由器等等,都打上标签。但不能给远程登录VPN打上标签。
可以通过CloudStack的界面或者API来创建标签,删除标签或者列出标签。也可以为每一个资源定义多个标签。没有数量的限制。并且,每个标签可以达到255个字符的长度。用户可以定义自己拥有的资源的标签,而管理员可以定义云中所有资源的标签。
一个可选的输入参数,标签,存在于多个API中。下面的例子展示了如何应用这个新参数来查找带有 地域=加拿大或城市=多伦多 标签的所有磁盘卷。
command=listVolumes
&listAll=true
&tags[0].key=region
&tags[0].value=canada
&tags[1].key=city
&tags[1].value=Toronto
下面的API命令具有以下输入参数:
- listVirtualMachines
- listVolumes
- listSnapshots
- listNetworks
- listTemplates
- listIsos
- listFirewallRules
- listPortForwardingRules
- listPublicIpAddresses
- listSecurityGroups
- listLoadBalancerRules
- listProjects
- listVPCs
- listNetworkACLs
- listStaticRoutes
CPU Sockets报表¶
生产环境管理着包含一个多个物理CPU端口的不同类型的主机。CPU端口可以看作是一个测量单元,用来授权或制定云架构。生产环境提供UI和API支持来收集CPU端口统计,供订单使用。在架构选项中,有一个新的CPU端口项。可以查看生产环境管理的CPU端口统计数据,这些数据能够反映云的大小。CPU端口页会展示每一主机类型的主机数量及端口数。
登录到CloudStack用户界面。
在左侧导航栏中,点击基础架构
在CPU Sockets中,点击查看全部。
显示CPU插槽页。此页会显示主机数量以及基于虚拟机类型的CPU插槽数量。
更改数据库配置¶
CloudStack管理服务器存储了数据库配置信息(如主机名,端口,凭证),这些信息在/etc/cloudstack/management/db.properties文件中,为使更改生效,编辑每个管理服务器上的此文件,然后重启管理服务器
更改数据库密码¶
可能会需要更改CloudStack使用的mysql账户密码。如果要更改,需要在MySQL中更改密码,同时要将加密的密码加入到/etc/cloudstack/management/db.properties文件中。
在更改密码之前,需要停止CloudStack管理服务器,如果部署了使用引擎,也需要关闭使用引擎。
# service cloudstack-management stop # service cloudstack-usage stop
接下来,你将在MySQL服务器上更新CloudStack的用户密码。
# mysql -u root -p
在MySQL命令行下,你将更改密码并且刷新权限:
update mysql.user set password=PASSWORD("newpassword123") where User='cloud'; flush privileges; quit;
下一步是加密密码然后拷贝加密后的密码到CloudStack的数据库配置中(/etc/cloudstack/management/db.properties)。
# java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar \ org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh \ input="newpassword123" password="`cat /etc/cloudstack/management/key`" \ verbose=false
文件加密类型¶
请注意这是给文件加密类型准备的。如果你使用web加密类型,那么你要使用password=”management_server_secret_key”
现在,你会在 /etc/cloudstack/management/db.properties 中更新心的密文。使用文本编辑器打开``/etc/cloudstack/management/db.properties`` ,然后更新这些参数:
db.cloud.password=ENC(encrypted_password_from_above) db.usage.password=ENC(encrypted_password_from_above)
在复制新的密码过去之后,你可以启动CloudStack了(如果需要的话,还有用量引擎)。
# service cloudstack-management start # service cloud-usage start
管理员告警信息¶
系统提供告警和事件用以帮助云的管理。告警通知管理员,一般用邮件发送,提醒管理员云中有错误发生。告警的行为可以进行配置。
事件会追踪云中所有用户和管理员的操作事件。比如,每个客户虚拟机的启动会建立一个对应的事件。每个时间都存储在管理节点的数据库中。
在以下情况,系统会发送邮件给管理员:
管理节点集群中CPU,内存或者存储资源的可用量低。
管理节点和主机之间的心跳检查丢失超过3分钟。
主机集群中CPU,内存或者存储资源的可用量低。
将警告发送给外部的SNMP和Syslog管理器¶
除了在CloudStack UI中的仪表板上给管理员显示警告和发送电子邮件之外,CloudStack还可以发送同样的警告给外部的SNMP或者Syslog管理软件。如果你更愿意使用SNMP或者Syslog管理器来监视你的云的话,那这么做很有用。
可以发送的警告有:
以下是告警类型的列表。当前告警可以通过调用listAlerts得知。
MEMORY = 0 // Available Memory below configured threshold
CPU = 1 // Unallocated CPU below configured threshold
STORAGE =2 // Available Storage below configured threshold
STORAGE_ALLOCATED = 3 // Remaining unallocated Storage is below configured threshold
PUBLIC_IP = 4 // Number of unallocated virtual network public IPs is below configured threshold
PRIVATE_IP = 5 // Number of unallocated private IPs is below configured threshold
SECONDARY_STORAGE = 6 // Available Secondary Storage in availability zone is below configured threshold
HOST = 7 // Host related alerts like host disconnected
USERVM = 8 // User VM stopped unexpectedly
DOMAIN_ROUTER = 9 // Domain Router VM stopped unexpectedly
CONSOLE_PROXY = 10 // Console Proxy VM stopped unexpectedly
ROUTING = 11 // Lost connection to default route (to the gateway)
STORAGE_MISC = 12 // Storage issue in system VMs
USAGE_SERVER = 13 // No usage server process running
MANAGMENT_NODE = 14 // Management network CIDR is not configured originally
DOMAIN_ROUTER_MIGRATE = 15 // Domain Router VM Migration was unsuccessful
CONSOLE_PROXY_MIGRATE = 16 // Console Proxy VM Migration was unsuccessful
USERVM_MIGRATE = 17 // User VM Migration was unsuccessful
VLAN = 18 // Number of unallocated VLANs is below configured threshold in availability zone
SSVM = 19 // SSVM stopped unexpectedly
USAGE_SERVER_RESULT = 20 // Usage job failed
STORAGE_DELETE = 21 // Failed to delete storage pool
UPDATE_RESOURCE_COUNT = 22 // Failed to update the resource count
USAGE_SANITY_RESULT = 23 // Usage Sanity Check failed
DIRECT_ATTACHED_PUBLIC_IP = 24 // Number of unallocated shared network IPs is low in availability zone
LOCAL_STORAGE = 25 // Remaining unallocated Local Storage is below configured threshold
RESOURCE_LIMIT_EXCEEDED = 26 //Generated when the resource limit exceeds the limit. Currently used for recurring snapshots only
通过调用API命令 listAlerts,你还可以显示最新的列表。
Syslog警报详情¶
CloudStack为每个警告生成一个syslog信息。每个syslog信息包含下列格式的字段alertType、message、podId、dataCenterId和clusterId。如果任何字段没有有效值的话,它将不会包含在内。
Date severity_level Management_Server_IP_Address/Name alertType:: value dataCenterId:: value podId:: value clusterId:: value message:: value
例如:
Mar 4 10:13:47 WARN localhost alertType:: managementNode message:: Management server node 127.0.0.1 is up
配置SNMP和Syslog日志管理¶
要配置一个或多个SNMP管理器或者Syslog管理器来接收来自CloudStack 的警告:
对于SNMP管理器,一个安装在你的SNMP管理系统上安装的CloudStack MIB文件。它映射SNMP OIDs到陷阱类型,目的让用户更容易阅读。这个文件必须是公开的。关于如何安装这个文件的更多信息,参阅SNMP管理器提供的文档。
编辑 /etc/cloudstack/management/log4j-cloud.xml文件。
# vi /etc/cloudstack/management/log4j-cloud.xml
使用下面给出的语法添加一个条目。选择你是要添加一个SNMP管理器还是一个Syslog管理器,然后按照适当的示例操作。要指定多个外部管理器,使用逗号(,)将IP地址和其他配置值隔开。
注解
SNMP或Syslog管理器推荐的最大值是20。
下面的例子展示了如果配置两个IP分别为10.1.1.1和10.1.1.2的SNMP管理器。在实际使用中请替换成你的IP、ports和communities。不要改变其他值(name、threshold、class和layout值)。
<appender name="SNMP" class="org.apache.cloudstack.alert.snmp.SnmpTrapAppender"> <param name="Threshold" value="WARN"/> <!-- Do not edit. The alert feature assumes WARN. --> <param name="SnmpManagerIpAddresses" value="10.1.1.1,10.1.1.2"/> <param name="SnmpManagerPorts" value="162,162"/> <param name="SnmpManagerCommunities" value="public,public"/> <layout class="org.apache.cloudstack.alert.snmp.SnmpEnhancedPatternLayout"> <!-- Do not edit --> <param name="PairDelimeter" value="//"/> <param name="KeyValueDelimeter" value="::"/> </layout> </appender>
下面的例子展示了如果配置两个IP分别为10.1.1.1和10.1.1.2的Syslog管理器。在实际是使用中请替换成你的IP。你可以设置Facility为任何syslog-defined的值,如 LOCAL0 - LOCAL7。不要改变其他的值。
<appender name="ALERTSYSLOG"> <param name="Threshold" value="WARN"/> <param name="SyslogHosts" value="10.1.1.1,10.1.1.2"/> <param name="Facility" value="LOCAL6"/> <layout> <param name="ConversionPattern" value=""/> </layout> </appender>
如果你的云有多个管理服务器节点,在编辑每个节点中log4j-cloud.xml的时候,重复这些步骤。
当管理服务器正在运行的时候,你做了这些变更,等待一会让变更生效。
**排错:**如果一段之后,在配置的SNMP或者Syslog管理器中没有警告出现,那么log4j-cloud.xml中<appender>的语法可能有错误。检查并确定格式和设置都是正确的。
删除SNMP或Syslog日志管理¶
要移除一个外部SNMP管理器或者Syslog管理器以便它不再接收来自CloudStack 的警告,请删除``/etc/cloudstack/management/log4j-cloud.xml``文件中对应的条目。
自定义网络域名¶
根管理员在网络, 帐户,域, 资源域以及整个CloudStack级别可选择设置DNS后缀,域管理员可以在自己的域做这样的设置。要自定义域名并使其有效, 请按照下面的步骤操作。
在所需的范围内设置DNS后缀
在网络级别中, DNS后缀可以通过UI在创建新的网络时设置, 这些在 “添加额外的来宾网络” 或CloudStack API的updateNetwork命令中都有描述.
在帐户、域或者区域级别,DNS后缀可以由以下CloudStack API命令:createAccount、editAccount、createDomain、editDomain、createZone或editZone指定。
在全局级别中,使用配置参数guest.domain.suffix。你也可以使用CloudStack API命令updateConfiguration。当更改了这个全局配置后,重启管理服务器的服务以便新的设置有效。
为了使你的新DNS后缀对已经存在的网络有效,你需要调用CloudStack API命令updateNetwork。对于DNS后缀已经更改后新建的网络这一步不是必需的。
你使用的网络域的源取决于下面的一些规则。
对于所有的网络,如果网络域作为这个网络自己配置的一部分,那这个网络域的值会被使用。
对于账户指定的网络,为这个账户指定的网域会被使用。如果没有指定,系统会按照域,区域和全局配置的顺序查找网域的值。
对于域指定的网络, 为这个域指定的网络域名会被使用. 如果没有指定, 系统会区域和全局配置中按顺序查找网络域名的值.
对于区域指定的网络, 为这个域指定的网络域名会被使用. 如果没有指定, 系统会在全局配置里查找网络域名的值.
停止和重启管理服务¶
超级管理员需要经常性的关闭和重启管理服务。
例如,修改全局配置参数之后,要求重启管理服务器。如果您有多个管理服务器节点,请全部重启,以便使新参数值在整个云中生效。
要停止管理服务,在管理服务节点所在的操作系统中运行如下命令:
# service cloudstack-management stop
启动管理服务:
# service cloudstack-management start