Navigation
Guide That Contains This Content
[+] Expand All
[-] Collapse All

    Service Monitoring

    To monitor services, you must configure where a service is running and credentials (if any) to connect to the service. You can provide the configuration in the Dashboard settings but you can also provide the configuration by defining Ansible variables. The Ansible playbook will configure AppFormix Platform with the information to monitor a service.

    Configure Cassandra Monitoring

    Cassandra monitoring is configured by the Ansible role appformix_cassandra_config. This Ansible role is applied to the appformix_controller group of hosts. Ansible will perform the configuration if the following variables are set as extra vars, group vars, and so on.

    • cassandra_username: Cassandra username to access API.

    • cassandra_password: Cassandra password to access API.

    • cassandra_host: Hostname or IP address of Cassandra API server.

    There is one optional variable that can be specified as well:

    • cassandra_cluster_name: A name by which the Cassandra instance is displayed in the Dashboard. If not specified, this variable has a default value of default_cassandra_cluster.

    Configure Ceph Monitoring

    Enable Ceph service monitoring by specifying hosts in the Ansible groups ceph_monitor and ceph_osd. As of AppFormix v2.12, the Ansible playbooks install AppFormix Agent on hosts in those groups to monitor both the host and the Ceph service running on that host.

    To access the Ceph service, AppFormix Agent uses information from the Ceph configuration files located in standard directories on the Ceph monitor host: /etc/ceph/ceph.conf,/etc/ceph/ceph.client.admin.keyring. If the files are located in a non-default location, the location of these files can be specified by setting the CEPH_CONF and CEPH_KEY environment variables for the agent. Refer to the AppFormix Agent startup scripts.

    An example portion of the hosts file to specify Ceph nodes in Ansible inventory:

    [ceph_monitor]
    ceph_monitor01
    ceph_monitor02
    ceph_monitor03
    
    [ceph_osd]
    ceph_osd01
    ceph_osd02
    ceph_osd03
    ceph_osd04

    Ceph Configuration Prior to AppFormix v2.12

    For AppFormix v2.11 and earlier, Ceph service monitoring is performed by remotely accessing Ceph service from the AppFormix Platform host. Ansible configures AppFormix Platform to monitor Ceph if the following variables are set as extra vars, group vars, and so on.

    Configure Contrail Monitoring

    Contrail service monitoring is configured by the Ansible role appformix_contrail_config. This Ansible role is applied to the appformix_controller group of hosts. Ansible performs the configuration if the following variables are set as extra vars, group vars, and so on.

    Configuration of Contrail uses the same OpenStack credentials as provided for AppFormix to access OpenStack services. The Ansible role reads the credentials from environment variables (for example, OS_USERNAME, OS_PASSWORD). Administrator credentials to the OpenStack cluster are a requirement. AppFormix connects to the analytics and configuration nodes of Contrail.

    Since AppFormix v2.15, connections to Contrail are configured by providing complete URLs by which to access the analytics and configuration API services.

    • contrail_analytics_url: URL for the Contrail analytics API. The URL should only specify the protocol, address, and optionally port.

      For example:

      http://contrail.example.com:8081
    • contrail_config_url: URL for the Contrail configuration API. The URL should only specify the protocol, address, and optionally port.

      For example:

      http://contrail.example.com:8082

    The following optional variable can be specified:

    • contrail_cluster_name: A name by which the Contrail instance will be displayed in the Dashboard. If not specified, this variable has a default value of default_contrail_cluster.

    Contrail Configuration Prior to AppFormix v2.15

    In versions prior to AppFormix v2.15, configuration is specified as a single hostname on which both the analytics and configuration APIs can be accessed. AppFormix connects to port 8081 for the analytics API and port 8082 for the configuration API.

    • contrail_host: Hostname or IP address of Contrail API server.

    Configure MySQL Monitoring

    As of AppFormix v2.12, MySQL service monitoring is performed by AppFormix Agent, preferably running on the MySQL host itself. Agent can monitor the MySQL database service running on a host, and the host's compute, network, storage, and operating system metrics. AppFormix Ansible playbooks install AppFormix Agent on hosts in host groups such as appformix_controller, openstack_controller, and bare_host. If MySQL is running on a host in one such group, then AgentUrl (see below) can be left blank, and the agent on the host will be used to monitor the MySQL database running locally on the same host. If MySQL is running on a host that is not already in the Ansible inventory, then add the host to the bare_host group.

    Alternately, you can configure the MySQL cluster to be monitored by an AppFormix Agent running on a different host than the host that is running MySQL. Agent will collect metrics from MySQL remotely. For this option, configure the AgentUrl (see below) to a host in the bare_host host group in the Ansible inventory.

    MySQL monitoring is configured by the Ansible role appformix_mysql_config. AppFormix Ansible playbooks configure AppFormix to monitor a MySQL cluster only if the following variables are defined:

    • appformix_mysql_username: MySQL username to access database metrics.

    • appformix_mysql_password: MySQL password to access database metrics.

    • appformix_mysql_hosts: A list of MySQL host configuration dictionaries. Each entry in the list specifies to monitor MySQL running on a host in a MySQL cluster. Each dictionary must contain the following fields:

      • MySQLHost: Hostname or IP address of MySQL host.

      • AgentUrl: URL to Agent that monitors MySQL on this host. AppFormix Agent can monitor more than one MySQL instance. If an empty string is specified, then AppFormix will use an agent running locally on the MySQL host. Agent listens on port 42595. An example URL is http://hostname:42595/.

    There are two optional variables that can be specified as well:

    • appformix_mysql_cluster_name: A name by which the MySQL cluster is displayed in the Dashboard. If not specified, this variable has a default value of default_mysql_cluster.

    • appformix_mysql_port: MySQL port. If not specified, this variable has a default value of 3306.

    Example configuration for MySQL in group_vars/all:

    appformix_mysql_hosts:
      - { "MySQLHost": "10.87.68.94", "AgentUrl": "" }
      - { "MySQLHost": "10.87.68.89", "AgentUrl": "" }
    appformix_mysql_username: "mysql_user1"
    appformix_mysql_password: "secret"

    MySQL Configuration Prior to AppFormix v2.12

    For AppFormix v2.11 and earlier, MySQL service monitoring is performed by remotely accessing MySQL service from the AppFormix Platform host. Ansible configures AppFormix Platform to monitor MySQL if the following variables are set as extra vars, group vars, and so on.

    • mysql_username: MySQL username to access database metrics.

    • mysql_password: MySQL password to access database metrics.

    • mysql_hosts: A list of hosts separated by commas. For example, 1.1.1.1,2.2.2.2. If MySQL is running in clustered mode, then AppFormix monitors each host in the cluster.

    There are two optional variables that can be specified as well:

    • mysql_cluster_name: A name by which the MySQL cluster is displayed in the Dashboard. If not specified, this variable has a default value of default_mysql_cluster.

    • mysql_port: MySQL port. If not specified, this variable has a default value of 3306.

    Configure RabbitMQ Monitoring

    As of AppFormix v2.12, RabbitMQ service monitoring is performed by AppFormix Agent, preferably running on the RabbitMQ host itself. Agent can monitor the RabbitMQ service running on a host, and the host's compute, network, storage, and operating system metrics. AppFormix Ansible playbooks install AppFormix Agent on hosts in host groups such as appformix_controller, openstack_controller, and bare_host. If RabbitMQ is running on a host in one such group, then AgentUrl (see below) can be left blank, and the agent on the host will be used to monitor the RabbitMQ service running locally on the same host. If RabbitMQ is running on a host that is not already in the Ansible inventory, then add the host to the bare_host group.

    Alternately, you can configure the RabbitMQ service to be monitored by an AppFormix Agent running on a different host than the host that is running RabbitMQ. Agent will collect metrics from RabbitMQ remotely. For this option, configure the AgentUrl (see below) to a host in the bare_host host group in the Ansible inventory.

    RabbitMQ monitoring is configured by the Ansible role appformix_rabbit_config.

    AppFormix Ansible playbooks configure AppFormix to monitor RabbitMQ only if the following variables are defined:

    • appformix_rabbitmq_username: RabbitMQ username to access monitoring API.

    • appformix_rabbitmq_password: RabbitMQ password to access monitoring API.

    • appformix_rabbitmq_nodes: A list of RabbitMQ node configuration dictionaries. Each dictionary must contain the following fields:

      • RabbitNode: RabbitMQ node name. Node name must match the configuration in the RabbitMQ cluster, as seen in the output of rabbitmqctl status.

      • RabbitUrl: URL to RabbitMQ monitoring API. For example, http://rabbit_node1:15672.

      • AgentUrl: URL to AppFormix Agent that monitors this RabbitMQ node. AppFormix Agent can monitor more than one RabbitMQ node. If an empty string is specified, then AppFormix uses an Agent running locally on the RabbitMQ node. Agent listens on port 42595. An example URL is http://hostname:42595/.

    There is one optional variable that can be specified as well:

    • appformix_rabbitmq_cluster_name: A name by which the RabbitMQ cluster is displayed in the Dashboard. If not specified, this variable has a default value of default_rabbit_cluster.

    Example configuration for RabbitMQ in group_vars/all:

    appformix_rabbitmq_username: "rabbit_user1"
    appformix_rabbitmq_password: "secret"
    appformix_rabbitmq_nodes:
     - { "RabbitUrl": "http://rabbit_node1.example.com:15672",  
         "RabbitNode": "rabbit@node1",
         "AgentUrl": "" }
     - { "RabbitUrl": "http://rabbit_node1.example.com:15672",
         "RabbitNode": "rabbit@node2",
         "AgentUrl": "" }

    RabbitMQ Configuration Prior to AppFormix v2.12

    For AppFormix v2.11 and earlier, RabbitMQ service monitoring is performed by remotely accessing RabbitMQ service from the AppFormix Platform host. Ansible configures AppFormix Platform to monitor RabbitMQ if the following variables are set as extra vars, group vars, and so on.

    • rabbit_username: RabbitMQ username to access monitoring API.

    • rabbit_password: RabbitMQ password to access monitoring API.

    Configure ScaleIO Monitoring

    ScaleIO monitor is configured by the Ansible role appformix_scaleio when the variable scaleio_cluster is defined. This Ansible role is applied to the appformix_controller group of hosts. Ansible will perform the configuration if the scaleio_cluster variable is set as extra vars, group vars, and so on. The scaleio_cluster variable is a dictionary with the following required keys

    • host: ScaleIO API gateway hostname or IP address.

    • username: ScaleIO username to access API.

    • password: ScaleIO password to access API.

    Optionally, the following keys can also be defined in the scaleio_cluster dictionary.

    • name: Name of this ScaleIO cluster. If not specified, this variable has a default value of default_scaleio_cluster.

    • port: ScaleIO API gateway port number. If not specified, this variable has a default value of 80.

    For example, in group_vars/all, the scaleio_cluster dictionary can be minimally defined as follows:

    scaleio_cluster:
            host: my_scaleio_host.example.com
            username: my_scaleio_username
            password: my_scaleio_password

    Modified: 2018-05-23