Contents
This page reviews how to set up and monitor your Amazon EC2 infrastructure using the GroundWork Cloud Hub AWS connector.
1.0 Managing an AWS Connection
This section reviews how to add and configure the Cloud Hub connector Amazon AWS. Each connector requires a unique set of parameters (e.g. endpoint, credentials). You will need your GroundWork server and virtual environment connector parameters handy. The AWS connector now provides custom metrics as a way to have your applications report performance into an arbitrary metric that you can design. You can tell EC2 what you want to keep track of and have your applications send what you're tracking to Amazon and record regularly.
1.1 Adding a new connection
- Log in to GroundWork Monitor as an Administrator.
- Select GroundWork Administration > GroundWork Cloud Hub. The Cloud Hub Configuration Wizard screen will be displayed where you can add and configure the Cloud Hub for various virtual environments. For each of the established configurations you can start or stop the connection, modify the parameters, or choose to remove a connection.
- To start a new connection click the +Add icon next to the environment to add. You will create a new connector in this way for each region in Amazon AWS that is to be monitored.
Figure: Cloud Hub Configuration Wizard
1.2 Configuring GroundWork server values
- Next, enter the GroundWork server values (described below) to access the region. You will need to point the Cloud Hub AWS connector to a GroundWork server, indicate if it supports SSL, and give it an API key to transmit data.
Figure: GroundWork server values for AWS (Example)
- Display Name: This is the configuration server display name.
- GroundWork Server Name: You will need to enter the name of the GroundWork server that will integrate the Cloud Hub messages. If Cloud Hub is running on the same server as the portal the name can be localhost, or as preferred the server name.
- Is SSL enabled on GroundWork Server?: Check this box if the GroundWork server is configured for secure HTTPS.
- GroundWork Web Services Username and Password: User and password configured to access the Web Services API. These can be obtained by opening a tab to the GroundWork Administration > GroundWork License page. These are the same credentials set within /usr/local/groundwork/config/ws_client.properties.
- Important for LDAP enabled systems: Make sure that it matches with the entry in the ws_client.properties file and the user is member of the Authenticated group and the WSUser (or GWUser) group in LDAP.
- Without 7.0.2 SP3: The Web Services user name may be different if you are using LDAP and GroundWork Monitor 7.0.2 without the SP3 patch. In this case make an adjustment to what you see in the image below to match what you have, and also fill in the accurate password.
- With 7.0.2 SP3: If you applied the SP3 patch the Web Services user will not have a password, instead you need to fill in the token from the GroundWork Administration > GroundWork License page. Under the title Webs Services API Account Info the default encrypted token can be copied into the Cloud Hub page.
- Merge hosts on GroundWork Server?: If checked, this option combines all metrics of same named hosts under one host. For example, if there is a Nagios configured host named demo1 and a Cloud Hub discovered host named demo1, the services for both configured and discovered hosts will be combined under the hostname demo1 (case-sensitive).
- Host Group Tagging:
- Enable Host Group Tagging: Check this option to enable support for Amazon EC2 and EBS tagging as a mapping mechanism for host groups.
- Host Group Tag Name: CloudHub can map your AWS resource tags to Groundwork Host Groups. This entry represents the key name for the GroundWork tag. All instances with this tag key will be mapped to GroundWork Monitor host group (e.g. GWTraining) with the EC2 tag value (e.g. trainingservers). There may be multiple host groups with the same tag name and tag names are case-sensitive. Please refer to Appendix A: AWS Host Group Tagging on this page for a detailed description of this feature.
- In the next section, continue with the second half of the configuration wizard by entering the values for the virtualization server.
1.3 Configuring virtualization server values
- The data that the GroundWork server receives comes from the AWS server, the information is pulled from the API on a periodic basis based on the check interval that is set. You can also select which views to include.
Figure: Values for a AWS connection (Example)
- Is SSL enabled on Amazon Server?: Check this box if the Amazon server is configured for secure HTTPS.
- AWS Region Endpoint Domain: This is the Web Service endpoint for a region (e.g.us-west-2.amazonaws.com for region Oregon). Create a connector like this for each region deployed to point to the endpoint for that region. The endpoint is where you access the CloudWatch API.
- AWS Access Key ID AWS Secret Access Key: This can also be a common user and password set up for command line access (does not have to be the master account). It should be clear that the user name and password must be assigned rights to the region that you wish to monitor.
- Check Interval (in mins): This is the polling interval for collecting monitoring data from the virtual instance and sending it to the GroundWork server. It defines how often Cloud Hub will query Amazon CloudWatch for change updates. The value is in minutes.
- Connection Retries (-1 infinite): This entry is the number of retries for the connection and sets a limit on how many attempts are made after a failure. If you set this to -1 the retrying goes on forever. The number set indicates how many connections are attempted before the connection is left inactive (until you restart it).
- Views: The four radio buttons allow you to specify the Amazon views to report upon. Within the profile screen, an administrator selects the metrics to be monitored and graphed, and determines warning and critical thresholds. When a view checkbox is unchecked the metrics will be deleted.
- The Availability Zone View will display instances organized by the availability zone within connector region.
- Storage View will show instances according to the Amazon EBS resources where they are assigned.
- The Network View will show instances as they are assigned to Virtual Private Cloud subnets and RDS Relational Database Service metrics.
- Checking Custom View enables a query that will retrieve all active custom CloudWatch metrics in the zone being connected. Please refer to Appendix B: AWS Cloud Watch Custom Metrics on this page for a detailed description of this view.
- Select SAVE which saves the current connection values and writes the entries to an XML file in the GroundWork server /usr/local/groundwork/conifg/cloudhub directory. When you choose to save the Cloud Hub connector is assigned an agent ID and that in turn becomes a record locator in Foundation when you begin monitoring.
- Then to validate the configuration select TEST CONNECTION which will check if the virtual instance is accessible with the given credentials. If successful you should see Connection successful! at the top of the screen.
- After the credentials have been validated select NEXT to display an associated connection metrics screen where you can determine the metrics to be monitored for AWS, (the HOME option would take you back to the first page of the configuration wizard).
1.4 Determining metrics to be monitored
Each management system provides metrics for specific checks that can be defined for the instance or the container. The property name and the thresholds are defined in a monitoring profile in an XML format, (see section 3.2 below). In the UI the available metrics are separated between AWS CloudWatch and AWS Custom Metrics. All of the thresholds monitoring can be turn off and on. By default Warning and Critical thresholds are set to -1 which turns them off and can allow you to get an idea by watching the data coming in and to set a threshold value that is appropriate for the environment.
In the latest version (Cloud Hub 2.2), the way Amazon Elastic Block Store (EBS) and Amazon Relational Database Service (RDS) metrics are reported has been reorganized. Please refer to Appendix C: AWS EBS and RDS Metrics on this page for a detailed description.
- The metrics screen allows you to define if a metric should be monitored and graphed and lets you set the values for Warning and Critical thresholds at which to trigger alerts, these profile metric options are described below. The selections you make are applied to every instance discovered in the region. The set of selections is saved on the GroundWork server in the /usr/local/groundwork/config/cloudhub/profiles directory as a profile in an XML file. Upon saving, changes are written to the XML profile file and become effective both against new instances that may be discovered as well as already monitored instances.
Figure: AWS Profile - AWS CloudWatch Thresholds and AWS Custom Metrics
- Attribute: The name of the service attribute (the metric name reported by the virtualization server).
- Monitored: When on (checked) the service will be monitored.
- Graphed: When on (checked) the service will be graphed.
- Warning and Critical Thresholds: These values control the triggering of alerts. A Warning number larger than the Critical value will cause Cloud Hub to detect the metric as a trigger. Choosing a -1 in a threshold box will disable triggering on that alert.
- Service Name: CloudHub automatically creates service names based on the metric name gathered from a virtualization server. The Service Names option adds the ability to report the polled metrics under a unique name that is set by the administrator. For example, in the image above you can see the attribute EBS.VolumeIdleTime has been assigned the service name Idle. This custom name (Idle) will then override the name that was automatically created for the service based on the metric name gathered from a virtualization server (EBS.VolumeIdleTime). Leaving the Service Name field blank defaults to the metric name reported by the virtualization server. All CloudHub connectors now support the editable Service Name feature.
If a Service Name is added for an attribute, along with the Graphed option on (checked), a performance graph will need to be configured for the new service name. You can easily do this by copying and editing the original performance graph entry. Go to Configuration > Performance, from the Select Service-Host entry drop-down list select the original service name, select Copy, and in the Service field replace the entry with the new service name you entered in Cloud Hub, select Create Copy. After a couple minutes the graph should display in Status. - Description: A description of the service attribute.
- When you are satisfied with the profile selections choose SAVE to write out the profile. Select HOME to return to the main Cloud Hub panel.
The view selections (e.g. Availability Zone View, Storage View, Network View, Custom View) made on the previous screen will determine metric options. The image below shows all views. - Select START for the specific connector to begin the discovery and data collection process.
Figure: Cloud Hub Configuration
2.0 Unified Monitoring
So how does all this get represented in the unified monitoring context? The data for the monitored services selected are passed to the GroundWork REST API and are directly inserted into the Status and Event Console tables in the GroundWork Foundation database which makes them show up in the UI almost immediately.
2.1 Status view
After starting the connection, in a couple minutes the Status viewer application will display the automatically created host groups corresponding to the views chosen in setup. The monitoring can be adjusted by returning to the Cloud Hub configuration screen and modifying metrics collected (check/un-check) or modifying threshold values.
- You will see names of the instances prefixed with the string EC2_ to distinguish them as Cloud Hub Amazon Connector items
- Names are also taken from the EC2 Name Tag, a value selected by the administrator of the Amazon Cloud Resources
- You may assign the discovered host groups to Custom Groups (e.g. Virtual, AWS) in order to organize the Status display
In our example, we show the EC2.CPUCreditBalance service Status Information as CRITICAL, as this is reflective of the current threshold set in the profile. In this view you can also see the graphs coming in under Service Availability and Performance Measurement, and the events being logged at the bottom of the screen.
Figure: Status view
2.2 Event Console
Here in Event Console, we have selected the system applications filter AWS, which lists events for the AWS application type. From here you can select specific events and apply various actions.
Figure: Event Console, by Application Type (AWS)
2.3 Dashboards
This view displays the Enterprise View dashboard and indicates the host Micro1 status as Host Recently Recovered.
Figure: AWS Connection - Dashboards, Enterprise View
2.4 NoMa
Below we show the NoMa log for notifications in which you can see alerts for the service EC2.CPUCreditBalance.
Figure: NoMa notification log
3.0 Monitoring Profile for the AWS Virtual Environment
The master monitoring profiles for virtual environments are stored on the GroundWork server. Each time the user goes into the configuration screens for Cloud Hub the monitoring profile from the GroundWork server would be loaded into the Cloud Hub. This allows to you to manage and maintain the monitoring profiles for Cloud Hub in a central location.
3.1 Location of profiles
The location for Cloud Hub monitoring profiles is:
/usr/local/groundwork/core/vema/profiles/
Viewing the profiles directory:
[root@gwdemo~]# cd /usr/local/groundwork/core/vema/profiles [root@gwdemo profiles\]# ls amazon_monitoring_profile.xml openstack_monitoring_profile.xml docker_monitoring_profile.xml rhev_monitoring_profile.xml netapp_monitoring_profile.xml vmware_monitoring_profile.xml opendaylight_monitoring_profile.xml [root@gwdemo profiles]#
The name of the AWS monitoring profile is:
amazon_monitoring_profile.xml
If you wish, you may carefully edit amazon_monitoring_profile.xml to include additional numeric metrics.
If you edit PLEASE test immediately. Any metric test that is slightly misspelled or otherwise rejected short-circuits ALL the metrics from reporting silently and without raising flags. In general, we can't recommend adding additional numeric metrics, at the time of this writing all useful metrics have been included as part of the released XML file contents. |
3.2 Amazon monitoring profile: amazon_monitoring_profile.xml
<?xml version= "1.0" encoding= "UTF-8" ?> <vema-monitoring> <profileType>amazon</profileType> <hypervisor> <metric name="EBS.VolumeWriteBytes" description="Total Bytes Written on an Elastic Block Storage device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeReadOps" description="Total Read Operations on an Elastic Block Storage device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeWriteOps" description="Total Write Operations on an Elastic Block Storage device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeTotalWriteTime" description="Total seconds spent by Write operations completed on EBS device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeIdleTime" description="Total seconds spent by in Idle time on EBS device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeQueueLength" description="Total Read and Write Operations on an Elastic Block Storage device" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeReadBytes" description="Total Bytes Read on an Elastic Block Storage device" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EBS.VolumeTotalReadTime" description="Total seconds spent by Read operations completed on EBS device" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="EC2.CPUCreditUsage" description="Number of CPU credits consumed on an EC2 instance" monitored="true" graphed="true" warningThreshold="20" criticalThreshold="50" /> <metric name="EC2.CPUCreditBalance" description="Number of CPU credits accumulated on an EC2 instance" monitored="true" graphed="true" warningThreshold="5" criticalThreshold="15" /> <metric name="EC2.CPUUtilization" description="Percentage of allocated EC2 compute units currently in use on EC2 instance" monitored="true" graphed="true" warningThreshold="75" criticalThreshold="90" /> <metric name="EC2.DiskReadOps" description="Completed read operations from all ephemeral disks available on EC2 instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" /> <metric name="EC2.DiskWriteOps" description="Completed write operations to all ephemeral disks available on EC2 instance" monitored="true" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="EC2.DiskReadBytes" description="Bytes read from all ephemeral disks available on EC2 instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" /> <metric name="EC2.DiskWriteBytes" description="Bytes written to all ephemeral disks available on EC2 instance" monitored="true" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="EC2.NetworkIn" description="Bytes received on all network interfaces on EC2 instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" /> <metric name="EC2.NetworkOut" description="Bytes written to all network interfaces on EC2 instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" /> <metric name="RDS.BinLogDiskUsage" description="Disk space occupied by binary logs on the master RDS node" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.DatabaseConnections" description="Number of database connections currently in use on RDS (Relational Database service)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.DiskQueueDepth" description="Number of outstanding IOs (read/write requests) waiting to access RDS disks" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.FreeableMemory" description="Amount (bytes) of available RAM on RDS service" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.FreeStorageSpace" description="Amount (bytes) of available Storage space on RDS service" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.ReplicaLag" description="Amount of time a Read Replica DB Instance lags behind the source DB Instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.SwapUsage" description="Amount (bytes) of swap space used on the DB instance" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.ReadIOPS" description="Average number of disk I/O read operations per second (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.WriteIOPS" description="Average number of disk I/O write operations per second (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.ReadLatency" description="Average amount of time in seconds taken per disk Read I/O operation (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.WriteLatency" description="Average amount of time in seconds taken per disk Write I/O operation (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.ReadThroughput" description="Average number of bytes read from disk per second (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.WriteThroughput" description="Average number of bytes written to disk per second (RDS)" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.NetworkReceiveThroughput" description="Incoming (Receive) network traffic on the DB instance in bytes/second, includes both database and RDS traffic" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> <metric name="RDS.NetworkTransmitThroughput" description="Outgoing (Transmit) network traffic on the DB instance in bytes/second, includes both database and RDS traffic" monitored="true" graphed="true" warningThreshold="-1" criticalThreshold="-1" sourceType="storage" /> </hypervisor> <vm> <metric name="info.ebs.createtime" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ebs.isencrypted" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ebs.iops" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ebs.volumesize" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ebs.volumetype" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.architecture" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.isebsoptimized" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.hypervisor" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.imageid" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.instanceid" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.instancetype" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.detailedmonitoring" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.tenancy" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.platform" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.privatedns" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.privateip" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.publicdns" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.publicip" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.rootdevice" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.srcdestchecking" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.enhancednetworking" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.subnetid" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.ec2.vpcid" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.allocatedstorage" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.autominorupgrade" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.backupretention" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.charset" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.dbinstanceclass" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.dbname" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.endpoint" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.engine" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.engineversion" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.createtime" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.iops" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.latestrestoretime" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.licensemodel" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.masteruser" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.ismultiaz" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.preferredbackup" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.preferredmaintenance" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.ispublic" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.primaryaz" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.replicationmaster" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.storageencrypted" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> <metric name="info.rds.storagetype" description="" monitored="false" graphed="false" warningThreshold="-1" criticalThreshold="-1" /> </vm> <excludes> <exclude>EBS.VolumeConsumedReadWriteOps</exclude> <exclude>EBS.VolumeThroughputPercentage</exclude> </excludes> </vema-monitoring>
4.0 Removing Connectors from Monitoring
If you decide you do not want to monitor a particular region, simply navigate to GroundWork Administration > GroundWork Cloud Hub select STOP for the connector, then DELETE. All of the created host groups and the discovered and monitored instances for that region will be deleted from the Foundation database within a few minutes and monitoring access to the region endpoint will cease.
Additionally, see How to remove Cloud Hub hosts in the document How to delete or remove hosts.
5.0 Appendix A: AWS Host Group Tagging
To help manage and group your EC2 instances and EBS images, AWS allows you to assign your own metadata to each resource in the form of tags. A Tag is a key and value pair of user defined strings that can be assigned to AWS resources as mapping mechanism for host groups. Tags enable you to categorize your AWS resources in different ways, for example, by purpose, owner, or environment. This is useful when you have many resources of the same type — you can quickly identify a specific resource based on the tags you've assigned to it. For example, with a tag Key name of GWTraining, and a tag Value trainingservers, all instances assigned the tag key GWTraining are placed in the host group called trainingservers.
Tagging Notes:
|
5.1 Configuring Host Group Tagging in GroundWork Cloud Hub
CloudHub can map your AWS resource tags to GroundWork Host Groups. To utilize this feature you need to enable tagging and set a Host Group tag name.
- Go to GroundWork Administration > GroundWork Cloud Hub and Add or Modify an AWS connection.
- To enable tagging, check the Enable HostGroup Tagging? checkbox.
- In the next field, enter a Host Group Tag Name to match a tag key name configured in EC2.
Figure: GroundWork Cloud Hub Configuration
5.2 Configuring Host Group Tagging in EC2
Along with the Cloud Hub configuration above, to tag EC2 instances or EBS volumes you will need to configure tags in the EC2 console.
- Launch and sign in to the Amazon EC2 console at: https://console.aws.amazon.com/ec2
- If necessary, in the upper right corner change the location of the resources to the desired region.
- In the navigation pane, select Tags.
- Click the Manage Tags button.
- Select the instances you would like to tag (e.g. checked in blue) and assign a tag key (e.g. GWTraining) and a tag value (e.g. trainingservers), and select Add Tag.
The tag key (e.g. GWTraining) is then used in the Cloud Hub connector configuration (from above), and the tag value (e.g. trainingservers) becomes the name of the host group for the associated instances. Alternatively, you can navigate to individual EC2 instances and assign tags specifically to that one instance from the Tag tab. Similarly, Elastic Block Storage Volumes can also be assigned tags.
Figure: AWS EC2 Console
6.0 Appendix B: AWS CloudWatch Custom Metrics
Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. Amazon CloudWatch is used to collect and track metrics for all standard AWS resources like EC2 instances, Amazon RDS DB, and Elastic Block Storage volumes. Additionally, CloudWatch can be extended to gather Custom Metrics generated by your applications and services. Cloud Hub can now monitor these Custom Metrics for you. Lets say your application is generating custom metrics. To have GroundWork Cloud Hub retrieve these metrics you'll need to turn on the Custom Metrics view in your AWS connection configuration.
6.1 Retrieving Custom Metrics
- Go to GroundWork Administration > GroundWork Cloud Hub, and navigate to your AWS connection.
- Enable the Custom View as shown in the image below.
- Save your configuration and press the Next button.
Figure: Enabling Custom View
- You should then have an AWS Custom Metrics section at the bottom of the profile screen. Click Refresh to retrieve a list of custom metrics from your application.
- In our example, we show 7 metrics starting with System/Linux.DiskSpaceUtilization.
- The first two metrics are DiskSpaceUtilization and MemoryAvailable. Note that the prefix, System/Linux, is a Cloud Watch Namespace. It is best practice to use namespaces when registering your custom metrics with CloudWatch. This can help you separate your custom metrics from other metrics in the system.
- In the CloudHub configuration, you can treat these metrics like any other metric:
- Check Monitored to start monitoring this metric in GroundWork Monitor
- Check Graphed to start graphing this metric in GroundWork Monitor
- Enter your Warning and Critical Thresholds
- The Service Name field enable you to rename the metric to a different name in GroundWork Monitor
- After any edit, click Save and Cloud Hub will immediately start gathering your custom metrics.
Figure: AWS CloudWatch custom metrics
7.0 Appendix C: Amazon EBS and Amazon RDS Metrics
7.1 Amazon Elastic Block Store (EBS) metrics
- EBS metrics are now attached to corresponding hosts. A host can have one or more EBS metrics. Previously, EBS metrics were gathered in their own groups. This was causing unused volume metrics to be reported.
- EBS Metric naming has been changed to prefix service names on EC2 instance with: EBS.{volume-name}.{metricname}
- EBS metrics are only added to EC2 instances when Storage View is enabled
- EBS HostGroups and Hosts have been removed
- When unchecking Storage View, all EBS services are deleted
- Supported EBS metrics:
- EBS.VolumeIdleTime
- EBS.VolumeQueueLength
- EBS.VolumeReadBytes
- EBS.VolumeReadOps
- EBS.VolumeTotalReadTime
- EBS.VolumeTotalWriteTime
- EBS.VolumeWriteBytes
- EBS.VolumeWriteOps
7.2 Amazon Relational Database Service (RDS) metrics
- When Storage View is enabled, RDS Hosts are added to a Host Group named AWS-RDS:storage
- No unused RDS volume metrics are reported, such as volumes that exist in the zone but are not attached to any running instance
- When unchecking Storage View, all RDS hosts and services are deleted; and the RDS Host Group is deleted
- RDS Metrics are only associated with an RDS host
- Supported RDS metrics:
- AWS:RDS.BinLogDiskUsage
- AWS:RDS.DatabaseConnections
- AWS:RDS.DiskQueueDepth
- AWS:RDS.FreeableMemory
- AWS:RDS.FreeStorageSpace
- AWS:RDS.NetworkReceiveThroughput
- AWS:RDS.NetworkTransmitThroughput
- AWS:RDS.ReadIOPS
- AWS:RDS.ReadLatency
- AWS:RDS.ReadThroughput
- AWS:RDS.SwapUsage
- AWS:RDS.WriteIOPS
- AWS:RDS.WriteLatency
- AWS:RDS.WriteThroughput