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/
-
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>
-
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.
-
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>
-
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 parametersParameters
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.
-
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>
-
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>