SP related configuration files can be located under following directories:

<DCF-Install>/Collecting/Collector-Manager/<SP-Instance>(vrops-alerts)/conf/

<DCF-Install>/ Collecting /Stream-Collector/<SP-Instance>/conf/

<DCF-Install>/ Collecting /Kafka-Connector/<SP-Instance>/conf/

<DCF-Install>/Collecting/Cross-Referencing-Filter/<SP-Instance>/conf/

<DCF-Install>/Collecting/Variable-Handling-Filter/<SP-Instance>/conf/

  1. Collector Manager Configuration: A Collecting Manager Configuration file can be found at below location:

    File: <DCF-Install>/Collecting/Collector-Manager/<SP-Instance>(vrops-alerts) /conf/collecting.xml

    Sample content:
    <?xml version="1.0" encoding="UTF-8"?>
    <config xmlns="http://www.watch4net.com/APG/Collecting" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.watch4net.com/APG/Collecting collecting.xsd ">
        <runOnce>false</runOnce>
        <connectors>
            <connector enabled="false" name="File" type="File-Connector"   config="conf/file-connector.xml" />
            <connector enabled="true" name="Kafka" type="Kafka-Connector" config="Kafka-Connector/vrops-alerts/conf/kafka-connector.xml" />
        </connectors>
        <filters>
            <filter enabled="true" name="VHF-vrops" next="Kafka" config="Variable-Handling-Filter/vrops-alerts/conf/vhf-vrops.xml" />
            <filter enabled="true" name="CRF-vrops" next="VHF-vrops" config="Cross-Referencing-Filter/vrops-alerts/conf/crf-vrops.xml" />
        </filters>
        <collectors>
            <collector enabled="true" name="VROPSAlerts" next="CRF-vrops" config="Stream-Collector/vrops-alerts/conf/vrops-alerts.xml" />
        </collectors>
    </config>
    
  2. vROPs Alerts Configuration: vROPs Alerts Configuration file can be found in below location :

    File: <DCF-Install>/Collecting/Stream-Collector/<SP-Instance>/conf/vrops-alerts.xml

    Sample content:
    <collector-configuration xmlns="http://www.watch4net.com/Text-Collector-Configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.watch4net.com/Text-Collector-Configuration ../textCollectorConfiguration.xsd ">
        <source>VROPS-Collector</source>
        <collecting-group>group</collecting-group>
        <default-character-encoding>UTF-8</default-character-encoding>
        <properties-refresh-periods>10m</properties-refresh-periods>
        <collecting-threads-pool-size>30</collecting-threads-pool-size>
    
            <collecting-configurations name="vrops-login-request">
            <include-contexts>conf/context-vrops.xml</include-contexts>
             <data-retrieval-file>conf/requests/vrops-requests.xml</data-retrieval-file>
                <data-listeners id="VROPS-TOKEN" variable-id="token">
                    <values context-key="VROPS_HOST">
                      <name>VROPS-REQUEST-@{VROPS_HOST}</name>
                      <unit>code</unit>
                      <replace value=".+"   by="0" pattern="true"/>
                    </values>
                    <properties context-key="token" property-name="token"/>
                </data-listeners>
    
               <data-listeners id="VROPS-ALERTS" variable-id="AlertId" variable-id-separator="-">
                    <values context-key="VROPS_HOST">
                      <name>VROPS-ALERTS-@{VROPS_HOST}</name>
                      <unit>code</unit>
                      <replace value=".+"   by="0" pattern="true"/>
                    </values>
                    <properties context-key="alertId" property-name="AlertId"/>
                    <properties context-key="alertDefinitionName" property-name="Name"/>
                    <properties context-key="alertDefinitionId" property-name="EventDisplayName"/>
                    <properties context-key="resourceId" property-name="InstanceId"/>
                    <properties context-key="status" property-name="Status"/>
                    <properties context-key="alertLevel" property-name="Severity"/>
                    <hardcoded-properties key="objType">alertDetail</hardcoded-properties>
                    <hardcoded-properties key="ExternalSource">VROPS</hardcoded-properties>
                    <hardcoded-properties key="Certification">CERTIFIED</hardcoded-properties>
                    <hardcoded-properties key="context-name">@{VROPS_HOST}</hardcoded-properties>
                </data-listeners>
                <data-listeners id="VROPS-RESOURCES" variable-id="InstanceId" variable-id-separator="-">
                    <values context-key="VROPS_HOST">
                      <name>VROPS-RESOURCES-@{VROPS_HOST}</name>
                      <unit>code</unit>
                      <replace value=".+"   by="0" pattern="true"/>
                    </values>
                    <properties context-key="identifier" property-name="InstanceId"/>
                    <properties context-key="resourceName" property-name="InstanceName"/>
                    <properties context-key="adapterKindKey" property-name="adapterKindKey"/>
                    <properties context-key="resourceKindKey" property-name="ClassName"/>
                    <properties context-key="resourceKindKey" property-name="type"/>
                    <hardcoded-properties key="objType">resourceDetail</hardcoded-properties>
                    <hardcoded-properties key="ExternalSource">VROPS</hardcoded-properties>
                </data-listeners>
    
           </collecting-configurations>
    </collector-configuration>
    

    This is basic configuration of the SP which deals with how the processing should start.

  3. vROPs Alerts REST API requests Configuration: The following example is a default vROPs Alerts requests configuration. This file will have configurations for polling.

    File: <DCF-Install>/Collecting/Stream-Collector/vrops-alerts/conf/requests/vrops-requests.xml

    Sample content:
    <?xml version="1.0" encoding="UTF-8"?>
    <data-retrieval-configuration xmlns="http://www.watch4net.com/Text-Parsing-Configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.watch4net.com/Text-Parsing-Configuration ../textParsingConfiguration.xsd" xmlns:xi="http://www.w3.org/2001/XInclude">
      <retrieving-period>900s</retrieving-period>
        <http-request data-retry="1" data-timeout="300s" connection-timeout="120s" character-encoding="UTF-8">
             <lock name="perdevicelock-opst-a2-@{VROPS_HOST}" count="1"/>
                   <disable-ssl/>
                   <request-groups name="VROPS LOGIN">
                     <requests options="POST">
                        <url>@{protocol}://@{VROPS_HOST}:@{PORT}/suite-api/api/auth/token/acquire</url>
                        <headers key="Accept">application/json</headers>
                        <headers key="Content-Type">application/json</headers>
                        <post-content-file>conf/requests/data-post.json</post-content-file>
                     </requests>
                   </request-groups>
                     <json-to-xml-transformer include-json-name="true">
                    <xml-dataset>
                       <datasets>
                       <xpath>/W4N</xpath>
                        <xml-reader>
                            <extractions xpath-expression="concat('vRealizeOpsToken ',/W4N/token)" result-type="string">token</extractions>
                            <http-request data-retry="1" data-timeout="300s" connection-timeout="120s" character-encoding="UTF-8">
                               <disable-ssl/>
                               <request-groups name="RETRIEVE ALERTS">
                                  <requests options="GET">
                                   <url>@{protocol}://@{VROPS_HOST}:@{PORT}/suite-api/api/alerts</url>
                                   <headers key="Content-Type">application/json</headers>
                                   <headers key="Accept">application/json</headers>
                                   <headers key="Authorization">@{token}</headers>
                                  </requests>
                               </request-groups>
                               <json-to-xml-transformer>
                                  <xml-dataset parse-datasets-in-parallel="true">
                                    <datasets>
                                      <xpath>/W4N/alerts/OBJECT</xpath>
                                        <xml-reader>
                                          <extractions xpath-expression="/OBJECT/alertId">alertId</extractions>
                                          <extractions xpath-expression="if (/OBJECT/alertLevel = 'CRITICAL') then '1' else if(/OBJECT/alertLevel = 'IMMEDIATE') then '2' else if ( /OBJECT/alertLevel = 'WARNING') then '3' else if ( /OBJECT/alertLevel = 'INFO') then '4' else ('5') " result-type="string">alertLevel</extractions>
                                          <extractions xpath-expression="/OBJECT/resourceId">resourceId</extractions>
                                          <extractions xpath-expression="if (/OBJECT/status = 'ACTIVE') then 'ACTIVE' else ('INACTIVE') " result-type="string">status</extractions>
                                          <extractions xpath-expression="/OBJECT/alertDefinitionId">alertDefinitionId</extractions>
                                          <extractions xpath-expression="/OBJECT/alertDefinitionName">alertDefinitionName</extractions>
                                          <release id="VROPS-ALERTS"/>
                                          <http-request data-retry="1" data-timeout="300s" connection-timeout="120s" character-encoding="UTF-8">
                                             <disable-ssl/>
                                             <request-groups name="RETRIEVE RESOURCES">
                                                <requests options="GET">
                                                 <url>@{protocol}://@{VROPS_HOST}:@{PORT}/suite-api/api/resources/@{resourceId}</url>
                                                 <headers key="Content-Type">application/json</headers>
                                                 <headers key="Accept">application/json</headers>
                                                 <headers key="Authorization">@{token}</headers>
                                                </requests>
                                             </request-groups>
                                             <json-to-xml-transformer>
                                               <xml-dataset parse-datasets-in-parallel="true">
                                                 <datasets>
                                                 <xpath>/W4N</xpath>
                                                 <xml-reader>
                                                   <extractions xpath-expression="/W4N/identifier">identifier</extractions>
                                                   <extractions xpath-expression="/W4N/resourceKey/name">resourceName</extractions>
                                                   <extractions xpath-expression="/W4N/resourceKey/adapterKindKey">adapterKindKey</extractions>
                                                   <extractions xpath-expression="if(/W4N/resourceKey/resourceKindKey = 'HostSystem') then 'Host' else (/W4N/resourceKey/resourceKindKey)" result-type="string">resourceKindKey</extractions>
                                                   <release id="VROPS-RESOURCES"/>
                                                  </xml-reader>
                                                 </datasets>
                                               </xml-dataset>
                                             </json-to-xml-transformer>
                                          </http-request>
                                        </xml-reader>
                                    </datasets>
                                  </xml-dataset>
                               </json-to-xml-transformer>
                            </http-request>
                        </xml-reader>
                      </datasets>
                </xml-dataset>
             </json-to-xml-transformer>
        </http-request>
    </data-retrieval-configuration>
    
  4. Kafka Configuration: Kafka server configuration used to publish alerts data from vROPs to Kafka is below:

    File : <DCF-Install>/ Collecting/Kafka-Connector/<SP_Instance>/conf/kafka-connector.xml

    Sample content:
    <?xml version="1.0" encoding="UTF-8"?>
    <kafka-connector-config xmlns="http://www.watch4net.com/KafkaConnector" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.watch4net.com/KafkaConnector ../kafka-connector.xsd ">
            <kafka-producer-settings>
                <!-- Servers information -->
                    <server host="localhost" port="9092"/>
                <!-- Producer (and topic) information -->
                <producer topic-name="default-topic"
                    acks="1"
                    retries="0"
                    linger-ms="0ms"
                    buffer-memory="33554432"
                    compression-type="none"
                    batch-size="16384"
                    max-block-ms="5s"
                    max-in-flight-requests-per-connection="5"
                    max-request-size="1048576"/>
    
                <!-- All connection parameters will be attributes except "server" -->
                <connection request-timeout-ms="5s"
                    connections-max-idle-ms="9m"
                    retry-backoff-ms="100ms"
                    reconnect-backoff-ms="50ms"/>
    
                <!-- Additional properties -->
                <additional-parameters key="metadata.max.age.ms">1000</additional-parameters>
                <additional-parameters key="receive.buffer.bytes">32768</additional-parameters>
                <additional-parameters key="send.buffer.bytes">131072</additional-parameters>
    
                    <additional-parameters key="sasl.mechanism">PLAIN</additional-parameters>
            <additional-parameters key="security.protocol">SASL_PLAINTEXT</additional-parameters>
            <additional-parameters key="sasl.jaas.config">org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";</additional-parameters>
    
            </kafka-producer-settings>
    
            <connector-component-behavior outputJson="true" flush-every-n-rawvalues="5000"/>
    
    </kafka-connector-config>
    
    Kafka Connector parameters

    Parameters

    Description

    server

    This tag must occur at least once.

    host: The address of one of the kafka bootstrap servers

    port: The port that the bootstrap server is listening on.

    producer

    This tag is optional, but may be used for templating kafka producers. Please refer to the schema for more information.

    connection

    This tag is optional, but may be used for templating kafka connections. Please refer to the schema for more information.

    additional-parameters

    This tag is optional, but may be used for configuring kafka options outside of the purview of the previous tags. These options include, but are not limited to SSL connection parameters.

    Configuring Kafka Connector:

    Parameters

    Description

    kafka-producer-settings

    This tag may be used if we want to customize how the writer writes to kafka. Please refer to the schema for more information.

    connector-component-behavior

    This tag may be used if we want to control how often we flush to kafka.

  5. vROPs Cross Referencing Filter Configuration: The following example is a default vROPs Alerts cross referencing filter configuration.

    File: <DCF-Install>/ Collecting/Cross-Referencing-Filter/vrops-alerts/conf/crf-vrops.xml

    Sample content:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.watch4net.com/CrossReferencingFilter" xsi:schemaLocation="http://www.watch4net.com/CrossReferencingFilter/cross-referencing-filter.xsd">
        <blind-write>true</blind-write>
        <data-accessor>com.watch4net.apg.v2.collector.plugins.crossreferencingfilter.data.mem.MemoryHashDataAccessor</data-accessor>
        <reference>
            <condition type="filter">ExternalSource=='VROPS'</condition>
            <match-on>InstanceId</match-on>
            <include-properties>true</include-properties>
            <get-property>InstanceId</get-property>
            <get-property>AlertId</get-property>
            <get-property>Name</get-property>
            <get-property>EventDisplayName</get-property>
            <get-property>Status</get-property>
            <get-property>Severity</get-property>
        </reference>
    </configuration>
    
  6. vROPs Variable Handling Filter Configuration: The following example is a default vROPs Alerts variable handling filter configuration.

    File: <DCF-Install>/ Collecting/Variable-Handling-Filter/vrops-alerts/conf/vhf-vrops.xml

    Sample content:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration xmlns="http://www.watch4net.com/VariableHandlingFilter"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://www.watch4net.com/VariableHandlingFilter variable-handling-filter.xsd ">
            <handling-configuration id="FilterMetrics">
                    <matcher class="com.watch4net.apg.v2.collector.plugins.variablehandlingfilter.matchers.APGFilterMatcher">
                            <parameter name="filter">!(objType=='resourceDetail')</parameter>
                    </matcher>
                    <handler class="com.watch4net.apg.v2.collector.plugins.variablehandlingfilter.handlers.BlockAllHandler"/>
            </handling-configuration>
    </configuration>