Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel2
typeflat

Configuration requirements

To run this collector, there are some configurations detailed below that you need to take into account.

Configuration

Details

GPC GCP console

You have the right credentials to access the GCP console.

Permissions

You have to be the owner of the account or have administrator’s permissions in the GCP console.

Delegated email

You need to have a delegated email with the right permissions. Refer to Google documentation to know how to do it.

Info

More information

Refer to the Vendor setup section to know more about these configurations.

Overview

Workspace is Google’s suite of products that includes email, calendar, driver, meet, and other collaboration solutions. This collector provides the possibility to integrate Google Workspace with the Devo Platform making it easy to query and analyze the relevant data from Workspace, view it in the pre-configured Activeboards, or customize them to enable Enterprise IT and Cybersecurity teams to make impactful data-driven decisions.

This collector will retrieve alerts on potential issues within your domain. Apps you develop can use Google’s Alert Center API to retrieve alerts in order to respond to them. Apps can also use the API to create and retrieve alert feedback. For example, a monitoring app could retrieve new alerts, prioritize them, and then notify members of your organization when action is needed. The collector processes the API responses and sends them to the Devo platform which then categorizes all data received on tables along rows and columns in your Devo domain.

Devo collector features

Feature

Details

Allow parallel downloading (multipod)

  • Not allowed

Running environments

  • Collector server

  • On-premise

Populated Devo events

  • Table

Flattening preprocessing

  • No

Data sources

Data Source

Description

API Endpoint

Collector service name

Devo Table

Available from release

Customer takeout initiated

DomainWideTakeoutInitiated  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Customer takeout initiated

customer_takeout_initiated

cloud.gsuite.alerts.customer_takeout_initiated

v1.0.0

Misconfigured whitelist

BadWhitelist  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Misconfigured whitelist

misconfigured_whitelist

cloud.gsuite.alerts.misconfigured_whitelist

v1.0.0

Malware reclassification

MailPhishing  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Malware reclassification

malware_reclassification

cloud.gsuite.alerts.malware_reclassification

v1.0.0

Phishing reclassification

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Phishing reclassification

phishing_reclassification

cloud.gsuite.alerts.phishing_reclassification

v1.0.0

Suspicious message reported

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Suspicious message reported

suspicious_message_reported

cloud.gsuite.alerts.suspicious_message_reported

v1.0.0

User reported phishing

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User reported phishing

user_reported_phishing

cloud.gsuite.alerts.user_reported_phishing

v1.0.0

User reported spam spike

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User reported spam spike

user_reported_spam_spike

cloud.gsuite.alerts.user_reported_spam_spike

v1.0.0

Leaked password

AccountWarning  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Leaked password

leaked_password

cloud.gsuite.alerts.leaked_password

v1.0.0

Suspicious login

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Suspicious login

suspicious_login

cloud.gsuite.alerts.suspicious_login

v1.0.0

Suspicious login (less secure app)

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Suspicious login (less secure app)

suspicious_login_less_secure_app

cloud.gsuite.alerts.suspicious_login_less_secure_app

v1.0.0

Suspicious programmatic login

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Suspicious programmatic login

suspicious_programmatic_login

cloud.gsuite.alerts.suspicious_programmatic_login

v1.0.0

User suspended

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User suspended

user_suspended

cloud.gsuite.alerts.user_suspended

v1.0.0

User suspended (spam)

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User suspended (spam)

user_suspended_spam

cloud.gsuite.alerts.user_suspended_spam

v1.0.0

User suspended (spam through relay)

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User suspended (spam through relay)

user_suspended_spam_through_relay

cloud.gsuite.alerts.user_suspended_spam_through_relay

v1.0.0

User suspended (suspicious activity)

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = User suspended (suspicious activity)

user_suspended_suspicious_activity

cloud.gsuite.alerts.user_suspended_suspicious_activity

v1.0.0

Google Operations

GoogleOperations  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Google Operations

google_operations

cloud.gsuite.alerts.google_operations

v1.0.0

Government attack warning

StateSponsoredAttack  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Government attack warning

government_attack_warning

cloud.gsuite.alerts.government_attack_warning

v1.0.0

Device compromised

DeviceCompromised  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Device compromised

device_compromised

cloud.gsuite.alerts.device_compromised

v1.0.0

Suspicious activity

SuspiciousActivity  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Suspicious activity

suspicious_activity

cloud.gsuite.alerts.suspicious_activity

v1.0.0

AppMaker Default Cloud SQL setup

AppMakerSqlSetupNotification  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = AppMaker Default Cloud SQL setup

appmaker_default_cloud_sql_setup

cloud.gsuite.alerts.appmaker_default_cloud_sql_setup

v1.0.0

Activity Rule

ActivityRule  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Activity Rule

activity_rule

cloud.gsuite.alerts.activity_rule

v1.0.0

Configuration Problem

https://developers.google.com/admin-sdk/alertcenter/reference/rest/v1beta1/VoiceMisconfiguration

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Configuration problem

configuration_problem

cloud.gsuite.alerts

v1.0.0

Data Loss Prevention

DlpRuleViolation  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Data Loss Prevention

data_loss_prevention

cloud.gsuite.alerts.data_loss_prevention

v1.3.0

Apps outage

AppsOutage  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Apps outage

apps_outage

cloud.gsuite.alerts

v1.3.0

Primary admin changed

SensitiveAdminAction  |  Google Workspace Alert Center API  |  Google Developers

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Primary admin changed

primary_admin_changed

cloud.gsuite.alerts

v1.3.0

SSO profile added

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = SSO profile added

sso_profile_added

cloud.gsuite.alerts

v1.3.0

SSO profile updated

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = SSO profile updated

sso_profile_updated

cloud.gsuite.alerts

v1.3.0

SSO profile deleted

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = SSO profile deleted

sso_profile_deleted

cloud.gsuite.alerts

v1.3.0

Super admin password reset

https://alertcenter.googleapis.com/v1beta1/alerts

Parameter alert_type = Super admin password reset

super_admin_password_reset

cloud.gsuite.alerts.super_admin_password_reset

v1.3.0

For more information on how the events are parsed, visit our page.

Vendor setup

There are minimal requirements to setup this collector:

...

Expand
title5. Delegate and collaborate on email

You will need to provide a valid email address belonging to a user account. The user account must have appropriate permissions, such as alert viewing. Refer to Google documentation to know how to do it.

Minimum configuration required for basic pulling

Although this collector supports advanced configuration, the fields required to retrieve data with basic configuration are defined below.

...

Info

See the Accepted authentication methodssection to verify what settings are required based on the desired authentication method.

Accepted authentication methods

Depending on how did you obtain your credentials, you will have to either fill or delete the following properties on the JSON credentials configuration block.

Authentication Method

Filename

Base64 credentials

Delegated email

Service Account with Base64

Status
colourGreen
titleREQUIRED

Status
colourGreen
titleREQUIRED

Status
colourGreen
titleREQUIRED

...

Download the

...

Once the data source is configured, you can either send us the required information if you want us to host and manage the collector for you (Cloud collector), or deploy and host the collector in your own machine using a Docker image (On-premise collector).

...

Rw tab
titleOn-premise collector

This data collector can be run in any machine that has the Docker service available because it should be executed as a docker container. The following sections explain how to prepare all the required setup for having the data collector running.

Structure

The following directory structure should be created for being used when running the collector:

Code Block
<any_directory>
└── devo-collectors/
    └── <product_name>/
        ├── certs/
        │   ├── chain.crt
        │   ├── <your_domain>.key
        │   └── <your_domain>.crt
        ├── state/
        └── config/ 
            └── config.yaml 
Note

Replace <product_name> with the proper value.

Devo credentials

In Devo, go to Administration → Credentials → X.509 Certificates, download the Certificate, Private key and Chain CA and save them in <product_name>/certs/. Learn more about security credentials in Devo here.

...

Note

Replace <product_name> with the proper value.

Editing the config.yaml file

...

Docker image

The collector should be deployed as a Docker container. Download the Docker image of the collector as a .tgz file by clicking the link in the following table:

Collector Docker image

SHA-256 hash

collector-google_workspace_alerts_if-docker-image-1.9.0

19607f4289db449eaf7a58853a0f7f57de3fcd1113e12e89a4dccdd381874ab4

Use the following command to add the Docker image to the system:

Code Block
gunzip -c <image_file>-<version>.tgz | docker load

Once the Docker image is imported, it will show the real name of the Docker image (including version info). Replace <image_file> and <version> with a proper value.

The Docker image can be deployed on the following services:

Docker

Execute the following command on the root directory <any_directory>/devo-collectors/<product_name>/

Code Block
docker run 
--name collector-<product_name> 
--volume $PWD/certs:/devo-collector/certs 
--volume $PWD/config:/devo-collector/config 
--volume $PWD/state:/devo-collector/state 
--env CONFIG_FILE=config.yaml 
--rm 
--interactive 
--tty 
<image_name>:<version>

Replace <product_name>, <image_name> and <version> with the proper values.

Docker Compose

The following Docker Compose file can be used to execute the Docker container. It must be created in the <any_directory>/devo-collectors/<product_name>/ directory.

Code Block
version: '3'
services:
  collector-<product_name>:
    image: <image_name>:${IMAGE_VERSION:-latest}
    container_name: collector-<product_name>
    volumes:
      
directory_name: state outputs:
- ./certs:/devo-collector/certs
  
devo_1:
    - 
type
./config:
devo_platform
/devo-collector/config
    
config:
  
address: <devo_address>
- ./credentials:/devo-collector/credentials
      - 
port: 443
./state:/devo-collector/state
    
type
environment:
SSL
      
chain: <chain_filename> cert: <cert_filename> key: <key_filename> inputs: gsuite_alerts: id: <input_id> enabled: <input_status> requests_per_second: <requests_per_second_value> environment: <environment_value> credentials:
- CONFIG_FILE=${CONFIG_FILE:-config.yaml}

To run the container using docker-compose, execute the following command from the <any_directory>/devo-collectors/<product_name>/ directory:

Code Block
IMAGE_VERSION=<version> docker-compose up -d

Replace <product_name>, <image_name> and <version> with the proper values.

Run the collector

Once the data source is configured, you can either send us the required information if you want us to host and manage the collector for you (Cloud collector), or deploy and host the collector in your own machine using a Docker image (On-premise collector).

debug
Rw ui tabs macro
Rw tab
titleCloud collector

We use a piece of software called Collector Server to host and manage all our available collectors.

To enable the collector for a customer:

  1. In the Collector Server GUI, access the domain in which you want this instance to be created

  2. Click Add Collector and find the one you wish to add.

  3. In the Version field, select the latest value.

  4. In the Collector Name field, set the value you prefer (this name must be unique inside the same Collector Server domain).

  5. In the sending method select Direct Send. Direct Send configuration is optional for collectors that create Table events, but mandatory for those that create Lookups.

  6. In the Parameters section, establish the Collector Parameters as follows below:

Editing the JSON configuration

Code Block
{
  "global_overrides": {
    "debug": <debug_status>
  },
  "inputs": {
    "gsuite_alerts": {
      "id": "<short_unique_id>",
      "enabled": <input_status>,
      "requests_per_second": <requests_per_second_value>,
      "environment": "<environment_value>"
      "credentials": {
        "filename": "<filename_value>",
        "content_base64": "<content_base64_value>",
        "delegated_email": "<delegated_email_value>",
        "source_id": "<source_id_value>"
      },
     services: "services": {
        "<collector_service_name>": {
          "request_period_in_seconds": <request_period_in_seconds_value>,
          "start_time": "<start_time_override_value>",
          "tag": <custom_tag>
Info

All defined service entities will be executed by the collector. If you do not want to run any of them, just remove the entity from the services object.

Replace the placeholders with your required values following the description table below:

Parameter

Data Type

Type

Value Range

Details

 "<custom_tag>"
        }
      }
    }
  }
}
Info

All defined service entities will be executed by the collector. If you do not want to run any of them, just remove the entity from the services object.

Please replace the placeholders with real world values following the description table below:

Parameter

Data type

Type

Value range / Format

Details

debug_status

bool

Mandatory

false / true

If the value is true, the debug logging traces will be enabled when running the collector. If the value is false, only the info, warning and error logging levels will be printed.

short_unique_id

int

Mandatory

Minimum length: 1
Maximum length: 5

Use this param to give an unique id to this input service.

Note

This parameter is used to build the persistence address, do not use the same value for multiple collectors. It could cause a collision.

input_status

bool

Mandatory

false / true

Use this param to enable or disable the given input logic when running the collector. If the value is true, the

debug logging traces

input will be

enabled when running the collector

run. If the value is false,

only the info, warning and error logging levels

it will be

printed

ignored.

collector_id

requests_per_second_value

int

Mandatory

Optional

Minimum

length

value: 1

Maximum length: 5

Use this param to give an unique id to this collector.

collector_name

str

Mandatory

Customize the maximum number of API requests per second. If not used, the default setting will be used: 100000 requests/sec.

This parameter should be removed if it is not used.

environment_value

str

Optional

Minimum length: 1

Maximum length: 10

Use this param to give a valid name to this collector.

devo_address

str

Mandatory

collector-us.devo.io
collector-eu.devo.io

Use this param to identify the Devo Cloud where the events will be sent.

chain_filename

str

Mandatory

Minimum length: 4
Maximum length: 20

Use this param to identify the chain.cert  file downloaded from your Devo domain. Usually this file's name is: chain.crt

cert_filename

This parameter is used to create the Devo tag. It corresponds to the sixth level of the tag:
cloud.gsuite.alerts.<alert_type>.<format_version>.<environment>. If this parameter is removed, the sixth level of the tag will have the value unknown.

This parameter should be removed if it is not used.

filename_value

str

Mandatory

Minimum length:

4
Maximum length: 20

Use this param to identify the file.cert downloaded from your Devo domain.

key_filename

1

This parameter is the name that you want to give to the token generated by the Collector. For example: token.pickle

content_base64_value

str

Mandatory

Minimum length:

4
Maximum length: 20

Use this param to identify the file.key downloaded from your Devo domain.

input_id

int

1

This parameter is the credentials in base64 format. To know how to obtain this value review the section How to enable the collection in the vendor.

delegated_email_value

str

Mandatory

Minimum length: 1

Maximum length: 5

Use this param to give an unique id to this input service.

Note

This parameter is used to build the persistence address, do not use the same value for multiple collectors. It could cause a collision.

input_status

bool

Mandatory

false / true

Use this param to enable or disable the given input logic when running the collector. If the value is true, the input will be run. If the value is false, it will be ignored.

requests_per_second_value

int

Optional

Minimum value: 1

Customize the maximum number of API requests per second. If not used, the default setting will be used: 100000 requests/sec.

Info

This parameter should be removed if it is not used.

environment_value

str

Optional

Minimum length: 1

This parameter is used to create the Devo tag. It corresponds to the sixth level of the tag:
cloud.gsuite.alerts.<alert_type>.<format_version>.<environment>. If this parameter is removed, the sixth level of the tag will have the value unknown.

Info

This parameter should be removed if it is not used.

filename_value

str

Mandatory

Minimum length: 1

This parameter is the name that you want to give to the token generated by the Collector. For example: token.pickle

content_base64_value

str

Mandatory

Minimum length: 1

This parameter is the credentials in base64 format. To know how to obtain this value review the section How to enable the collection in the vendor.

delegated_email_value

str

Mandatory

Minimum length: 1

This parameter is the email of the user whose domain is delegated to authorize the Service Account to access the alerts. To know how to obtain this value review the section How to enable the collection in the vendor.

Note

Use a real email

delegated_email field should contain the email of an real user (you cannot use a service Account here) with enough access to display the alerts in the Google WorkSpace Admin Console → Alert Center (https://admin.google.com/ac/ac).

source_id

str

Mandatory

Minimum value: 1

This parameter will be used when {source_id} placeholder is present when using custom tags. Please use abc value when not used.

collector_service_name

str

Mandatory

Any collector service names described in the Data source section.

This parameter can be set to any collector service name described in the Data sources section. It is also important to note that there may be more than one service.

Choose one of our available services:

  • customer_takeout_initiated

  • misconfigured_whitelist

  • malware_reclassification

  • phishing_reclassification

  • suspicious_message_reported

  • user_reported_phishing

  • user_reported_spam_spike

  • leaked_password

    This parameter is the email of the user whose domain is delegated to authorize the Service Account to access the alerts. To know how to obtain this value review the section How to enable the collection in the vendor.

    Note

    Note for later: delegated_email field should contain the email of an real user (you cannot use a Service Account here) with enough access to display the alerts in the Google WorkSpace Admin Console >> Alert Center (https://admin.google.com/ac/ac).

    source_id

    str

    Mandatory

    Minimum value: 1

    This parameter will be used when {source_id} placeholder is present when using custom tags. Please use "abc" value when not used.

    collector_service_name

    str

    Mandatory

    Any collector service names described in the Data sources section.

    This parameter can be set to any collector service name described in the Data sources section. It is also important to note that there may be more than one service.

    Choose one of our available services:

    • access_approvals

    • account_suspension_warn

    • activity_rule

    • apns_cert_expired

    • apns_cert_expiring

    • appmaker_default_cloud_sql_setup

    • apps_outage

    • calendar_changed

    • chrome

    • configuration_problem

    • customer_abuse

    • customer_takeout_initiated

    • data_loss_prevention

    • device_compromised

    • drive_changed

    • email_changed

    • google_operations

    • government_attack_warning

    • leaked_password

    • malware_reclassification

    • misconfigured_whitelist

    • mobile_changed

    • msa_billing

    • msa_legal

    • msa_product

    • msa_security

    • new_user

    • phishing_reclassification

    • primary_admin_changed

    • reporting_rule

    • sso_profile_updated

    • sso_profile_added

    • sso_profile_deleted

    • super_admin_password_reset

    • suspended_user_active

    • suspicious_activity

    • suspicious_login

    • suspicious_login_less_secure_app

    • suspicious_message_reported

    • suspicious_programmatic_login

    • user_admin_

    suspended
    • revoked

    • user_

    suspended_spam
    • deleted

    • user_

    suspended_spam_through_relay
    • granted_admin

    • user_

    suspended
    • password_

    suspicious_activity
    • changed

    google
    • user_

    operations
  • government_attack_warning

  • device_compromised

  • suspicious_activity

  • appmaker_default_cloud_sql_setup

  • activity_rule

  • configuration_problem

  • data_loss_prevention

  • apps_outage

  • primary_admin_changed

  • sso_profile_added

  • sso_profile_updated

  • sso_profile_deleted

  • super_admin_password_reset
    • reported_phishing

    • user_reported_spam_spike

    • user_suspended

    • user_suspended_alert

    • user_suspended_spam

    • user_suspended_spam_through_relay

    • user_suspended_suspicious_activity

    For example:

    Code Block
    languageyaml
    "services": {
        "customer_takeout_initiated": {
            "request_period_in_seconds": 60
        },
         "misconfigured_whitelist": {
             "request_period_in_seconds": 60
        }
    }

    request_period_in_seconds_value

    int

    Optional

    Minimum length: 1

    Period in seconds used between each data pulling, this value will overwrite the default value (60 seconds)

    info

    This parameter should be removed if it is not used.

    start_time_override_value

    str

    Optional

    UTC with format: YYYY-mm-ddTHH:MM:SS.sssZ

    This configuration allows you to set a custom date as the beginning of the period to download. This allows downloading historical data (1 month back for example

    ) before downloading new events.
    Info

    This parameter should be removed if it is not used.

    custom_tag

    str

    Optional

    A Devo tag. See for more information see Devo tags.

    This parameter is used to override the default tag with a new customer defined tag.

    Info

    ) before downloading new events.

    This parameter should be removed if it is not used.

    Download the Docker image

    The collector should be deployed as a Docker container. Download the Docker image of the collector as a .tgz file by clicking the link in the following table:

    Collector Docker image

    SHA-256 hash

    collector-google_workspace_alerts_if-docker-image-1.6.0

    c89a0e4e927958eda5b6ab5e27d62213b85af67e6c4b04a03dc03723b378d9d8

    Use the following command to add the Docker image to the system:

    Code Block
    gunzip -c <image_file>-<version>.tgz | docker load
    Note

    Once the Docker image is imported, it will show the real name of the Docker image (including version info). Replace <image_file> and <version> with a proper value.

    The Docker image can be deployed on the following services:

    Docker

    Execute the following command on the root directory <any_directory>/devo-collectors/<product_name>/

    Code Block
    docker run 
    --name collector-<product_name> 
    --volume $PWD/certs:/devo-collector/certs 
    --volume $PWD/config:/devo-collector/config 
    --volume $PWD/state:/devo-collector/state 
    --env CONFIG_FILE=config.yaml 
    --rm 
    --interactive 
    --tty 
    <image_name>:<version>
    Note

    Replace <product_name>, <image_name> and <version> with the proper values.

    Docker Compose

    The following Docker Compose file can be used to execute the Docker container. It must be created in the <any_directory>/devo-collectors/<product_name>/ directory.

    Code Block
    version: '3'
    services:
      collector-<product_name>:
        image: <image_name>:${IMAGE_VERSION:-latest}
        container_name: collector-<product_name>
        volumes:
          - ./certs:/devo-collector/certs
          - ./config:/devo-collector/config
          - ./credentials:/devo-collector/credentials
          - ./state:/devo-collector/state
        environment:
          - CONFIG_FILE=${CONFIG_FILE:-config.yaml}

    To run the container using docker-compose, execute the following command from the <any_directory>/devo-collectors/<product_name>/ directory:

    Code Block
    IMAGE_VERSION=<version> docker-compose up -d
    Note

    Replace <product_name>, <image_name> and <version> with the proper values.

    Rw tab
    titleCloud collector

    We use a piece of software called Collector Server to host and manage all our available collectors.

    To enable the collector for a customer:

    1. In the Collector Server GUI, access the domain in which you want this instance to be created

    2. Click Add Collector and find the one you wish to add.

    3. In the Version field, select the latest value.

    4. In the Collector Name field, set the value you prefer (this name must be unique inside the same Collector Server domain).

    5. In the sending method select Direct Send. Direct Send configuration is optional for collectors that create Table events, but mandatory for those that create Lookups.

    6. In the Parameters section, establish the Collector Parameters as follows below:

    Editing the JSON configuration

    Code Block{ "global_overrides": { "debug": <debug_status> }, "inputs": { "gsuite_alerts": { "id": "<short_unique_id>", "enabled": <input_status>, "requests_per_second"

    custom_tag

    str

    Optional

    A Devo tag. See for more information see Devo tags

    This parameter is used to override the default tag with a new customer defined tag.

    This parameter should be removed if it is not used.

    2google workspace alerts_10.pngImage Added
    Rw tab
    titleOn-premise collector

    This data collector can be run in any machine that has the Docker service available because it should be executed as a docker container. The following sections explain how to prepare all the required setup for having the data collector running.

    Structure

    The following directory structure should be created for being used when running the collector:

    Code Block
    <any_directory>
    └── devo-collectors/
        └── <product_name>/
            ├── certs/
            │   ├── chain.crt
            │   ├── <your_domain>.key
            │   └── <your_domain>.crt
            ├── state/
            └── config/ 
                └── config.yaml 
    Note

    Replace <product_name> with the proper value.

    Devo credentials

    In Devo, go to Administration → Credentials → X.509 Certificates, download the Certificate, Private key and Chain CA and save them in <product_name>/certs/. Learn more about security credentials in Devo here.

    Image Added
    Note

    Replace <product_name> with the proper value.

    Editing the config.yaml file

    Code Block
    globals:
      debug: <debug_status>
      id: <collector_id>
      name: <collector_name>
      persistence:
        type: filesystem
        config:
          directory_name: state
    outputs:
      devo_1:
        type: devo_platform
        config:
          address: <devo_address>
          port: 443
          type: SSL
          chain: <chain_filename>
          cert: <cert_filename>
          key: <key_filename>
    inputs:
      gsuite_alerts:
        id: <input_id>
        enabled: <input_status>
        requests_per_second: <requests_per_second_value>,
     
        "environment": "<environment_value>"
          "credentials": {
     
          "filename": "<filename_value>",
     
          "content_base64": "<content_base64_value>",
     
          "delegated_email": "<delegated_email_value>",
            "source_id": "<source_id_value>"
        services:
          },<collector_service_name>:
            "services": {request_period_in_seconds: <request_period_in_seconds_value>
             "<collector_service_name>": {start_time: <start_time_override_value>
               "request_period_in_seconds": <request_period_in_seconds_value>,
              "start_time": "<start_time_override_value>",
              "tag": "<custom_tag>"
            }
          }
        }
      }
    }
    Info

    All defined service entities will be executed by the collector. If you do not want to run any of them, just remove the entity from the services object.

    Please replace the placeholders with real world values following the description table below:

    Parameter

    Data Type

    Type

    Value Range / Format

    Details

    debug_status

    bool

    Mandatory

    false / true

    If the value is true, the debug logging traces will be enabled when running the collector. If the value is false, only the info, warning and error logging levels will be printed.

    short_unique_
    tag: <custom_tag>
    Info

    All defined service entities will be executed by the collector. If you do not want to run any of them, just remove the entity from the services object.

    Replace the placeholders with your required values following the description table below:

    Parameter

    Data Type

    Type

    Value Range

    Details

    debug_status

    bool

    Mandatory

    false / true

    If the value is true, the debug logging traces will be enabled when running the collector. If the value is false, only the info, warning and error logging levels will be printed.

    collector_id

    int

    Mandatory

    Minimum length: 1
    Maximum length: 5

    Use this param to give an unique id to this collector.

    collector_name

    str

    Mandatory

    Minimum length: 1
    Maximum length: 10

    Use this param to give a valid name to this collector.

    devo_address

    str

    Mandatory

    collector-us.devo.io
    collector-eu.devo.io

    Use this param to identify the Devo Cloud where the events will be sent.

    chain_filename

    str

    Mandatory

    Minimum length: 4
    Maximum length: 20

    Use this param to identify the chain.cert  file downloaded from your Devo domain. Usually this file's name is: chain.crt

    cert_filename

    str

    Mandatory

    Minimum length: 4
    Maximum length: 20

    Use this param to identify the file.cert downloaded from your Devo domain.

    key_filename

    str

    Mandatory

    Minimum length: 4
    Maximum length: 20

    Use this param to identify the file.key downloaded from your Devo domain.

    input_id

    int

    Mandatory

    Minimum length: 1
    Maximum length: 5

    Use this param to give an unique id to this input service.

    Note

    This parameter is used to build the persistence address, do not use the same value for multiple collectors. It could cause a collision.

    input_status

    bool

    Mandatory

    false / true

    Use this param to enable or disable the given input logic when running the collector. If the value is true, the input will be run. If the value is false, it will be ignored.

    requests_per_second_value

    int

    Optional

    Minimum value: 1

    Customize the maximum number of API requests per second. If not used, the default setting will be used: 100000 requests/sec.

    Info

    This parameter should be removed if it is not used.

    environment_value

    str

    Optional

    Minimum length: 1

    This parameter is used to create the Devo tag. It corresponds to the sixth level of the tag:
    cloud.gsuite.alerts.<alert_type>.<format_version>.<environment>. If this parameter is removed, the sixth level of the tag will have the value unknown.

    Info

    This parameter should be removed if it is not used.

    filename_value

    str

    Mandatory

    Minimum length: 1

    This parameter is the name that you want to give to the token generated by the Collector. For example: token.pickle

    content_base64_value

    str

    Mandatory

    Minimum length: 1

    This parameter is the credentials in base64 format. To know how to obtain this value review the section How to enable the collection in the vendor.

    delegated_email_value

    str

    Mandatory

    Minimum length: 1

    This parameter is the email of the user whose domain is delegated to authorize the Service Account to access the alerts. To know how to obtain this value review the section How to enable the collection in the vendor.

    Note
    Note for later:

    Use a real email

    delegated_email field should contain the email of an real user (you cannot use a

    Service

    service Account here) with enough access to display the alerts in the Google WorkSpace Admin Console

    >>

    Alert Center (https://admin.google.com/ac/ac).

    source_id

    str

    Mandatory

    Minimum value: 1

    This parameter will be used when {source_id} placeholder is present when using custom tags. Please use

    "

    abc

    "

    value when not used.

    collector_service_name

    str

    Mandatory

    Any collector service names described in the Data

    sources

    source section.

    This parameter can be set to any collector service name described in the Data sources section. It is also important to note that there may be more than

    one service.

    Choose one of our available services:

  • access_approvals

  • account_suspension_warn

  • activity_rule

  • apns_cert_expired

  • apns_cert_expiring

  • appmaker_default_cloud_sql_setup

  • apps_outage

  • calendar_changed

  • chrome

  • configuration_problem

  • customer_abuse

  • customer_takeout_initiated

  • data_loss_prevention

  • device_compromised

  • drive_changed

  • email_changed

  • google_operations

  • government_attack_warning

  • leaked_password

    one service.

    Choose one of our available services:

    • customer_takeout_initiated

    • misconfigured_whitelist

    • malware_reclassification

    misconfigured
    • phishing_

    whitelist
    • reclassification

    mobile
    • suspicious_

    changedmsa
    • message_

    billing
    • reported

    msa
    • user_

    legalmsa
    • reported_

    product
    • phishing

    msa
    • user_

    security
  • new_user

  • phishing_reclassification

  • primary_admin_changed

  • reporting_rule

  • sso_profile_updated

  • sso_profile_added

  • sso_profile_deleted

  • super_admin_password_reset

  • suspended_user_active

  • suspicious_activity

  • suspicious_login

  • suspicious_login_less_secure_app

  • suspicious_message_reported

  • suspicious_programmatic_login

  • user_admin_revoked

  • user_deleted

  • user_granted_admin

  • user_password_changed

  • user_reported_phishing

  • user_reported_spam_spike

  • user_suspended

  • user_suspended_alert

  • user_suspended_spam

  • user_suspended_spam_through_relay

  • user_suspended_suspicious_activity

  • For example:

    Code Block"services": { "customer_takeout_initiated": {
    • reported_spam_spike

    • leaked_password

    • suspicious_login

    • suspicious_login_less_secure_app

    • suspicious_programmatic_login

    • user_suspended

    • user_suspended_spam

    • user_suspended_spam_through_relay

    • user_suspended_suspicious_activity

    • google_operations

    • government_attack_warning

    • device_compromised

    • suspicious_activity

    • appmaker_default_cloud_sql_setup

    • activity_rule

    • configuration_problem

    • data_loss_prevention

    • apps_outage

    • primary_admin_changed

    • sso_profile_added

    • sso_profile_updated

    • sso_profile_deleted

    • super_admin_password_reset

    For example:

    Code Block
    languageyaml
    services: 
        customer_takeout_initiated: 
            
    "
    request_period_in_seconds
    "
    : 60
    },
    
        
    "
    misconfigured_whitelist
    "
    :
    {
    
             
    "
    request_period_in_seconds
    "
    : 60
    } }

    request_period_in_seconds_value

    int

    Optional

    Minimum length: 1

    Period in seconds used between each data pulling, this value will overwrite the default value (60 seconds)

    Info

    This parameter should be removed if it is not used.

    start_time_override_value

    str

    Optional

    UTC with format: YYYY-mm-ddTHH:MM:SS.sssZ

    This configuration allows you to set a custom date as the beginning of the period to download. This allows downloading historical data (1 month back for example) before downloading new events.

    Info

    This parameter should be removed if it is not used.

    custom_tag

    str

    Optional

    A Devo tag. See for more information see Devo tags.

    This parameter is used to override the default tag with a new customer defined tag.

    Info

    This parameter should be removed if it is not used.

    2google workspace alerts_10.pngImage Removed

    Collector services detail

    This section is intended to explain how to proceed with specific actions for services.

    Devo categorization and destination

    The alerts are ingested in the Devo tables with the format cloud.gsuite.alerts.<alert_type> when alert_type is the alert type of the Alert Center. The alert types are listed below:

    ...

    Alert type

    ...

    Devo Table

    ...

    customer_takeout_initiated

    ...

    cloud.gsuite.alerts.customer_takeout_initiated

    ...

    misconfigured_whitelist

    ...

    cloud.gsuite.alerts.misconfigured_whitelist

    ...

    malware_reclassification

    ...

    cloud.gsuite.alerts.malware_reclassification

    ...

    phishing_reclassification

    ...

    cloud.gsuite.alerts.phishing_reclassification

    ...

    suspicious_message_reported

    ...

    cloud.gsuite.alerts.suspicious_message_reported

    ...

    user_reported_phishing

    ...

    cloud.gsuite.alerts.user_reported_phishing

    ...

    user_reported_spam_spike

    ...

    cloud.gsuite.alerts.user_reported_spam_spike

    ...

    leaked_password

    ...

    cloud.gsuite.alerts.leaked_password

    ...

    suspicious_login

    ...

    cloud.gsuite.alerts.suspicious_login

    ...

    suspicious_login_less_secure_app

    ...

    cloud.gsuite.alerts.suspicious_login_less_secure_app

    ...

    suspicious_programmatic_login

    ...

    cloud.gsuite.alerts.suspicious_programmatic_login

    ...

    user_suspended

    ...

    cloud.gsuite.alerts.user_suspended

    ...

    user_suspended_spam

    ...

    cloud.gsuite.alerts.user_suspended_spam

    ...

    user_suspended_spam_through_relay

    ...

    cloud.gsuite.alerts.user_suspended_spam_through_relay

    ...

    user_suspended_suspicious_activity

    ...

    cloud.gsuite.alerts.user_suspended_suspicious_activity

    ...

    google_operations

    ...

    cloud.gsuite.alerts.google_operations

    ...

    government_attack_warning

    ...

    cloud.gsuite.alerts.government_attack_warning

    ...

    device_compromised

    ...

    cloud.gsuite.alerts.device_compromised

    ...

    suspicious_activity

    ...

    cloud.gsuite.alerts.suspicious_activity

    ...

    appmaker_default_cloud_sql_setup

    ...

    cloud.gsuite.alerts.appmaker_default_cloud_sql_setup

    ...

    activity_rule

    ...

    cloud.gsuite.alerts.activity_rule

    ...

    configuration_problem

    ...

    cloud.gsuite.alerts

    ...

    data_loss_prevention

    ...

    cloud.gsuite.alerts.data_loss_prevention

    ...

    apps_outage

    ...

    cloud.gsuite.alerts

    ...

    primary_admin_changed

    ...

    cloud.gsuite.alerts

    ...

    sso_profile_added

    ...

    cloud.gsuite.alerts

    ...

    sso_profile_updated

    ...

    cloud.gsuite.alerts

    ...

    sso_profile_deleted

    ...

    cloud.gsuite.alerts

    ...

    super_admin_password_reset

    ...

    cloud.gsuite.alerts.super_admin_password_reset

    Events service

    Setup output

    A successful run has the following output messages for the setup module:

    Expand
    titleVerify data collection

    Once the collector has been launched, it is important to check if the ingestion is performed in a proper way. To do so, go to the collector’s logs console.

    This service has the following components:

    Component

    Description

    Setup

    The setup module is in charge of authenticating the service and managing the token expiration when needed.

    Puller

    The setup module is in charge of pulling the data in a organized way and delivering the events via SDK.

    Code Block
    INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> Path for credentials file has been transformed to absolute: "token.pickle" -> "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle"
    INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> File "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle" has been created from base64 content
    INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> PrePull method started

    Puller output

    A successful initial run has the following output messages for the puller module:

    Info

    Note that the PrePull action is executed only one time before the first run of the Pull action.

    Code Block INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> PrePull method started INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Retrieving persisted data INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> No persisted data found. The content will be initialized. INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> The <initial_start_time> did not change, so the persistence will not be reset WARNING InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> The persistence changed and it will be updated. Current -> None | New -> {'initial_start_time': '2022-05-26T00:00:00.000Z', 'last_alert_timestamp': '2022-05-26T00:00:00.000Z', 'last_alert_ids': []} INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> PrePull method completed INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Starting data collection every 60 seconds INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Unpacking messages to start the delivery

    Download the Docker image

    The collector should be deployed as a Docker container. Download the Docker image of the collector as a .tgz file by clicking the link in the following table:

    Collector Docker image

    SHA-256 hash

    collector-google_workspace_alerts_if-docker-image-1.8.0

    bac088830b8284b8e98839e4b1f874808512ae26991dfcce45b563c0fe5c5822

    Use the following command to add the Docker image to the system:

    Code Block
    gunzip -c <image_file>-<version>.tgz | docker load
    Note

    Once the Docker image is imported, it will show the real name of the Docker image (including version info). Replace <image_file> and <version> with a proper value.

    The Docker image can be deployed on the following services:

    Docker

    Execute the following command on the root directory <any_directory>/devo-collectors/<product_name>/

    Code Block
    docker run 
    --name collector-<product_name> 
    --volume $PWD/certs:/devo-collector/certs 
    --volume $PWD/config:/devo-collector/config 
    --volume $PWD/state:/devo-collector/state 
    --env CONFIG_FILE=config.yaml 
    --rm 
    --interactive 
    --tty 
    <image_name>:<version>
    Note

    Replace <product_name>, <image_name> and <version> with the proper values.

    Docker Compose

    The following Docker Compose file can be used to execute the Docker container. It must be created in the <any_directory>/devo-collectors/<product_name>/ directory.

    Code Block
    version: '3'
    services:
      collector-<product_name>:
        image: <image_name>:${IMAGE_VERSION:-latest}
        container_name: collector-<product_name>
        volumes:
          - ./certs:/devo-collector/certs
          - ./config:/devo-collector/config
          - ./credentials:/devo-collector/credentials
          - ./state:/devo-collector/state
        environment:
          - CONFIG_FILE=${CONFIG_FILE:-config.yaml}

    To run the container using docker-compose, execute the following command from the <any_directory>/devo-collectors/<product_name>/ directory:

    Code Block
    IMAGE_VERSION=<version> docker-compose up -d
    Note

    Replace <product_name>, <image_name> and <version> with the proper values.

    Collector services detail

    This section is intended to explain how to proceed with specific actions for services.

    Devo categorization and destination

    The alerts are ingested in the Devo tables with the format cloud.gsuite.alerts.<alert_type> when alert_type is the alert type of the Alert Center. The alert types are listed below:

    Alert type

    Devo Table

    customer_takeout_initiated

    cloud.gsuite.alerts.customer_takeout_initiated

    misconfigured_whitelist

    cloud.gsuite.alerts.misconfigured_whitelist

    malware_reclassification

    cloud.gsuite.alerts.malware_reclassification

    phishing_reclassification

    cloud.gsuite.alerts.phishing_reclassification

    suspicious_message_reported

    cloud.gsuite.alerts.suspicious_message_reported

    user_reported_phishing

    cloud.gsuite.alerts.user_reported_phishing

    user_reported_spam_spike

    cloud.gsuite.alerts.user_reported_spam_spike

    leaked_password

    cloud.gsuite.alerts.leaked_password

    suspicious_login

    cloud.gsuite.alerts.suspicious_login

    suspicious_login_less_secure_app

    cloud.gsuite.alerts.suspicious_login_less_secure_app

    suspicious_programmatic_login

    cloud.gsuite.alerts.suspicious_programmatic_login

    user_suspended

    cloud.gsuite.alerts.user_suspended

    user_suspended_spam

    cloud.gsuite.alerts.user_suspended_spam

    user_suspended_spam_through_relay

    cloud.gsuite.alerts.user_suspended_spam_through_relay

    user_suspended_suspicious_activity

    cloud.gsuite.alerts.user_suspended_suspicious_activity

    google_operations

    cloud.gsuite.alerts.google_operations

    government_attack_warning

    cloud.gsuite.alerts.government_attack_warning

    device_compromised

    cloud.gsuite.alerts.device_compromised

    suspicious_activity

    cloud.gsuite.alerts.suspicious_activity

    appmaker_default_cloud_sql_setup

    cloud.gsuite.alerts.appmaker_default_cloud_sql_setup

    activity_rule

    cloud.gsuite.alerts.activity_rule

    configuration_problem

    cloud.gsuite.alerts

    data_loss_prevention

    cloud.gsuite.alerts.data_loss_prevention

    apps_outage

    cloud.gsuite.alerts

    primary_admin_changed

    cloud.gsuite.alerts

    sso_profile_added

    cloud.gsuite.alerts

    sso_profile_updated

    cloud.gsuite.alerts

    sso_profile_deleted

    cloud.gsuite.alerts

    super_admin_password_reset

    cloud.gsuite.alerts.super_admin_password_reset

    Events service

    Expand
    titleVerify data collection

    Once the collector has been launched, it is important to check if the ingestion is performed in a proper way. To do so, go to the collector’s logs console.

    This service has the following components:

    Component

    Description

    Setup

    The setup module is in charge of authenticating the service and managing the token expiration when needed.

    Puller

    The setup module is in charge of pulling the data in a organized way and delivering the events via SDK.

    Setup output

    A successful run has the following output messages for the setup module:

    Code Block
    INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> Path for credentials file has been transformed to absolute: "token.pickle" -> "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle"
    INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> File "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle" has been created from base64 content
    INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> MadePrePull 1 request(s), received 24 message(s), filtered 0 message(s), delivered 24 message(s), tag used: "cloud.gsuite.alerts.activity_rule.1.unknown". avg_time_per_source_message: 61.463 ms
    method started

    Puller output

    A successful initial run has the following output messages for the puller module:

    Info

    Note that the PrePull action is executed only one time before the first run of the Pull action.

    Code Block
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> DataPrePull collection completed. Elapsed time: 1.480 seconds. Waiting for 58.520 second(s) until the next one

    After a successful collector’s execution (that is, no error logs found), you will see the following log message:

    Code Block
    method started
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> MadeRetrieving 1 request(s), received 24 message(s), filtered 0 message(s), delivered 24 message(s), tag used: "cloud.gsuite.alerts.activity_rule.1.unknown". avg_time_per_source_message: 61.463 ms
    Expand
    titleRestart the persistence

    This collector uses persistent storage to download events in an orderly fashion and avoid duplicates. In case you want to re-ingest historical data or recreate the persistence, you can restart the persistence of this collector by following these steps:

    1. Edit the configuration file.

    2. Change the value of the start_time parameter to a different one.

    3. Save the changes.

    4. Restart the collector.

    The collector will detect this change and will restart the persistence using the parameters of the configuration file or the default configuration in case it has not been provided.

    Note

    Note that this action clears the persistence and cannot be recovered in any way. Resetting persistence could result in duplicate or lost events.

    ...

    titleTroubleshooting

    This collector has different security layers that detect both an invalid configuration and abnormal operation. This table will help you detect and resolve the most common errors.

    ...

    ErrorType

    ...

    Error Id

    ...

    Error Message

    ...

    Cause

    ...

    Solution

    ...

    GSuiteAlertsSetupException

    ...

    1

    ...

    Error loading token pickle file: <exception_message>

    ...

    This error is raised when unknown error occurs while loading token.pickle

    ...

    Check that the token.pickle is in the correct format and if not, regenerate it again.

    ...

    GSuiteAlertsPullerCredentialsException

    ...

    0

    ...

    HTTP error: <error_message>

    ...

    This error is raised when an HTTP error appears during setup.

    ...

    The solution depends on the type of error.. Contact with Devo Support team.

    ...

    2

    ...

    File <filename> does not exist. Please, learn how to generate a token pickle on: https://docs.devo.com/confluence/ndt/latest/sending-data-to-devo/collectors/g-suite-collectors/g-suite-alerts-collector

    ...

    This error is raised when token.pickle does not exist.

    ...

    Regenerate the token.json and save it in the file devo-collector-gsuite-google-workspace-alerts/credentials/.

    To know how the token is regenerated, consult the section Vendor setup.

    ...

    1

    ...

    Unable to refresh token or client Auth was deleted. Detail: <error_message>

    ...

    This error is raised when the token cannot be refreshed. The reason may be that it has been deleted.

    ...

    Regenerate the token.json and save it in the file devo-collector-gsuite-google-workspace-alerts/credentials/.

    To know how the token is regenerated, consult the section Vendor setup.

    ...

    InputConfigurationError

    ...

    70

    ...

    <input_config_environment_key_path> property must be a string

    ...

    This error is raised when optional value environment is not in the str format.

    ...

    Edit the value of environment in the configuration file so it is of valid str format.

    ...

    71

    ...

    <input_config_environment_key_path> property must fulfil the regex pattern r'^[A-Za-z0-9_-]{1,32}$'

    ...

    This error is raised when optional value environment does not match the required regex.

    ...

    Make the value of environment in the configuration file match the indicated format.

    ...

    GSuiteAlertsPullerConnectionLostException

    ...

    0

    ...

    Operation timed out: <error_message>

    ...

    This error is raised when the maximum time to wait for the connection has been exceeded.

    ...

    Check that the connection is working properly.

    ...

    1

    ...

    HTTP/1.1 503 Service Unavailable at moment - Retrying reconnection: <error_message>

    ...

    This error is raised when the service is not available.

    ...

    This is an internal issue. Contact the support team.

    ...

    2

    ...

    DefaultCredentials: <error_message>

    ...

    This error is raised when credentials cannot be automatically determined.

    ...

    This is an internal issue. Contact the support team.

    ...

    0

    ...

    Operation timed out

    ...

    This error is raised when the maximum time to wait for the connection has been exceeded.

    ...

    Check that the connection is working properly.

    ...

    1

    ...

    HTTP/1.1 503 Service Unavailable at moment - Retrying reconnection.

    ...

    This error is raised when the service is not available.

    ...

    This is an internal issue. Contact the support team.

    ...

    3

    ...

    <error_message>

    ...

    This error is raised when credentials cannot be automatically determined.

    ...

    This is an internal issue. Contact the support team.

    ...

    GSuiteAlertsPullerCreationException

    ...

    1

    ...

    <module_properties_key_path> mandatory property is missing or empty'

    ...

    This error is raised when module_properties property is not found in collector_definitions.yaml

    ...

    This is an internal issue. Contact the support team.

    ...

    2

    ...

    <module_properties_key_path> property must be a dictionary

    ...

    This error is raised when module_properties is defined in the collector_definitions.yaml file but the format is not dict.

    ...

    This is an internal issue. Contact the support team.

    ...

    3

    ...

    <module_properties_key_path>.alert_type mandatory property is missing or empty

    ...

    This error is raised when alert_type property is not found in collector_definitions.yaml

    ...

    This is an internal issue. Contact the support team.

    ...

    4

    ...

    <module_properties_key_path>.alert_type property must be a string

    ...

    This error is raised when alert_type is defined in the collector_definitions.yaml file but the format is not str.

    ...

    This is an internal issue. Contact the support team.

    ...

    5

    ...

    <module_properties_key_path>.tag_base mandatory property is missing or empty

    ...

    This error is raised when tag_base property is not found in collector_definitions.yaml

    ...

    This is an internal issue. Contact the support team.

    ...

    6

    ...

    <module_properties_key_path>.tag_base property must be a string

    ...

    This error is raised when tag_base is defined in the collector_definitions.yaml file but the format is not str.

    ...

    This is an internal issue. Contact the support team.

    ...

    7

    ...

    <module_properties_key_path>.credentials_scopes" mandatory property is missing or empty

    ...

    This error is raised when credentials_scopes property is not found in collector_definitions.yaml

    ...

    This is an internal issue. Contact the support team.

    ...

    8

    ...

    <module_properties_key_path>.credentials_scopes" property must be a string

    ...

    This error is raised when credentials_scopes is defined in the collector_definitions.yaml file but the format is not str.

    ...

    This is an internal issue. Contact the support team.

    ...

    9

    ...

    <input_config_key_path> property must be a dictionary

    ...

    This error is raised when the required property input_config_key_path is not found in the config file.

    ...

    Add input_config_key_path to config file, for example: gsuit_alerts:

    ...

    10

    ...

    <input_config_credentials_key_path> mandatory property is missing or empty

    ...

    This error is raised when the required property credentials is not found in the config file.

    ...

    Add credentials dictionary in config.

    ...

    11

    ...

    <input_config_credentials_key_path> property must be a dictionary

    ...

    This error is raised when credentials is defined in the configfile but the format is not dict.

    ...

    Edit the value of credentials in config file, so it is of valid dict format.

    ...

    12

    ...

    <input_config_credentials_key_path>.filename mandatory property is missing or empty

    ...

    This error is raised when the required property filename is not found in the config file, into credentials dictionary.

    ...

    Add filename property in config file, into credentials dictionary.

    ...

    13

    ...

    <input_config_credentials_key_path>.filename property must be a string

    ...

    This error is raised when filename is defined in the configfile but the format is not str.

    ...

    Edit the value of filename in config file, so it is of valid str format.

    ...

    14

    ...

    <input_config_credentials_key_path>.content_base64" property must be a string

    ...

    This error is raised when content_base64 is defined in the configfile but the format is not str.

    ...

    Edit the value of content_base64 in config file, so it is of valid str format.

    ...

    15

    ...

    <input_config_credentials_key_path>.content_base64" must be in a valid base64 format

    ...

    This error is raised when content_base64 is defined in the configfile but the format is not base64 string.

    ...

    Edit the value of content_base64 in config file, so it is of valid base64 string format.

    ...

    16

    ...

    <input_config_credentials_key_path>.delegated_email mandatory property is missing or empty

    ...

    This error is raised when the required property delegated_email is not found in the config file, into credentials dictionary.

    ...

    Add delegated_email property in config file, into credentials dictionary.

    ...

    17

    ...

    <input_config_credentials_key_path>.delegated_email property must be a string

    ...

    This error is raised when delegated_email is defined in the configfile but the format is not str.

    ...

    Edit the value of delegated_email in config file, so it is of valid str format.

    ...

    18

    ...

    <input_config_credentials_key_path>.source_id mandatory property is missing or empty

    ...

    This error is raised when the required property source_id is not found in the config file, into credentials dictionary.

    ...

    Add source_id property in config file, into credentials dictionary.

    ...

    19

    ...

    <input_config_credentials_key_path}.source_id> property must be a string'

    ...

    This error is raised when source_id is defined in the configfile but the format is not str.

    ...

    Edit the value of source_id in config file, so it is of valid str format.

    ...

    20

    ...

    \"start_time\" property from configuration file format is invalid

    ...

    This error is raised when start_time is defined in the configfile but the format is not "%Y-%m-%dT%H:%M:%S.%fZ" or "%Y-%m-%dT%H:%M:%SZ".

    ...

    Edit the value of start_time in config file, so it is of valid "%Y-%m-%dT%H:%M:%S.%fZ" or "%Y-%m-%dT%H:%M:%SZ" format.

    ...

    PrePullError

    ...

    200

    ...

    The <state> does not meet the structure requirements of this collector version. '
    f'The keys <last_alert_timestamp> and <last_alerts_id> are mandatory. State = <state>

    ...

    This error is raised when the collector is upgraded or downgraded to an incompatible version.

    ...

    1. Go back to a compatible version.

    2. Remove persistence by modifying the start_time property.

    ...

    PullError

    ...

    300

    ...

    Puller action cannot be executed when PrePull step failed

    ...

    This error is raised when the prepull fails for whatever reason.

    ...

    Check the logs to find the PrePull error.

    ...

    301

    ...

    Could not automatically determine credentials. Cause:<exception_message>. Aborting...

    ...

    This error is raised when credentials cannot be automatically determined.

    ...

    This is an internal issue. Contact the support team.

    ...

    302

    ...

    The <next_timestamp> value cannot be calculated, please check the related error logs.

    ...

    This error is raised when next_timestampt cannot be calculated for the next request.

    ...

    Check the logs to find the related errors.

    Collector operations

    This section is intended to explain how to proceed with specific operations of this collector.

    Expand
    titleVerify collector operations

    Initialization

    The initialization module is in charge of setup and running the input (pulling logic) and output (delivering logic) services and validating the given configuration.

    A successful run has the following output messages for the initializer module:

    Code Block
      INFO MainProcess::MainThread -> [OUTPUT] OutputMultiprocessingController::__init__ Configuration -> {'devo_1': {'type': 'devo_platform', 'config': {'address': ..
      INFO MainProcess::MainThread -> OutputProcess - Starting thread (executing_period=300s)
      INFO MainProcess::MainThread -> InputProcess - Starting thread (executing_period=300spersisted data
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> No persisted data found. The content will be initialized.
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> The <initial_start_time> did not change, so the persistence will not be reset
    WARNING InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> The persistence changed and it will be updated. Current -> None | New -> {'initial_start_time': '2022-05-26T00:00:00.000Z', 'last_alert_timestamp': '2022-05-26T00:00:00.000Z', 'last_alert_ids': []} 
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> PrePull method completed
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Starting data collection every 60 seconds
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Unpacking messages to start the delivery
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Made 1 request(s), received 24 message(s), filtered 0 message(s), delivered 24 message(s), tag used: "cloud.gsuite.alerts.activity_rule.1.unknown". avg_time_per_source_message: 61.463 ms
       INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Data collection completed. Elapsed time: 1.480 seconds. Waiting for 58.520 second(s) until the next one

    After a successful collector’s execution (that is, no error logs found), you will see the following log message:

    Code Block
    INFO InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Made 1 request(s), received 24 message(s), filtered 0 message(s), delivered 24 message(s), tag used: "cloud.gsuite.alerts.activity_rule.1.unknown". avg_time_per_source_message: 61.463 ms
    Expand
    titleRestart the persistence

    This collector uses persistent storage to download events in an orderly fashion and avoid duplicates. In case you want to re-ingest historical data or recreate the persistence, you can restart the persistence of this collector by following these steps:

    1. Edit the configuration file.

    2. Change the value of the start_time parameter to a different one.

    3. Save the changes.

    4. Restart the collector.

    The collector will detect this change and will restart the persistence using the parameters of the configuration file or the default configuration in case it has not been provided.

    Note

    Note that this action clears the persistence and cannot be recovered in any way. Resetting persistence could result in duplicate or lost events.

    Expand
    titleTroubleshooting

    This collector has different security layers that detect both an invalid configuration and abnormal operation. This table will help you detect and resolve the most common errors.

    ErrorType

    Error Id

    Error Message

    Cause

    Solution

    SetupError

    100

    File does not exist. Please, learn how to generate a token pickle on: https://docs.devo.com/confluence/ndt/latest/sending-data-to-devo/collectors/g-suite-collectors/g-suite-alerts-collector

    This error is raised when token.pickle does not exist.

    Regenerate the token.json and save it in the file devo-collector-gsuite-google-workspace-alerts/credentials/. To know how the token is regenerated, consult the section Vendor setup.

    SetupError

    101

    Error

    This error is raised when unknown error occurs while loading token.pickle

    Check that the token.pickle is in the correct format and if not, regenerate it again.

    SetupError

    102

    HTTP error: <error_message>

    This error is raised when an HTTP error appears during setup.

    The solution depends on the type of error. Contact with Devo Support team.

    SetupError

    103

    Unable to refresh token or client Auth was deleted. Detail: <error_message>

    This error is raised when the token cannot be refreshed. The reason may be that it has been deleted.

    Regenerate the token.json and save it in the file devo-collector-gsuite-google-workspace-alerts/credentials/. To know how the token is regenerated, consult the section Vendor setup.

    SetupError

    104

    Operation timed out: <error_message>

    This error is raised when the maximum time to wait for the connection has been exceeded.

    Check that the connection is working properly.

    SetupError

    105

    HTTP/1.1 503 Service Unavailable at moment - Retrying reconnection: <error_message>

    This error is raised when the service is not available.

    This is an internal issue. Contact the support team.

    SetupError

    106

    DefaultCredentials: <error_message>

    This error is raised when credentials cannot be automatically determined.

    This is an internal issue. Contact the support team.

    InitVariablesError

    1

    start_time is not set as per the datetime_format

    Start time in config is not as per right format

    Put start time in the correct format.

    InitVariablesError

    2

    Date {initial_start_time_str} is in the future

    Start time in config is in future

    Put start time less than the current UTC time.

    PullError

    300

    Operation timed out: <error_message>

    This error is raised when the maximum time to wait for the connection has been exceeded.

    Check that the connection is working properly.

    PullError

    301

    Could not automatically determine credentials.

    This error is raised when credentials are not loaded successfully.

    This is an internal issue. Contact the support team.

    PullError

    302

    The <next_timestamp> value cannot be calculated, please check the related error logs.

    This error is raised when timestamp is invalid.

    This is an internal issue. Contact the support team.

    PullError

    303

    HTTP/1.1 503 Service Unavailable at moment - Retrying reconnection: <error_message>

    This error is raised when the service is not available.

    This is an internal issue. Contact the support team.

    PullError

    304

    DefaultCredentialsError

    DefaultCredentialsError

    This is an internal issue. Contact the support team.

    PullError

    305

    Error detected -> {e.class}: {e.str()}

    Some error occurred during the pull cycle.

    This is an internal issue. Contact the support team.

    Collector operations

    This section is intended to explain how to proceed with specific operations of this collector.

    ...

    v1.2.0

    ...

    Status
    colourPurple
    titleNEW FEATURE

    Sender statistics

    Each service displays its own performance statistics that allow checking how many events have been delivered to Devo by type:

    Expand
    titleVerify collector operations

    Initialization

    The initialization module is in charge of setup and running the input (pulling logic) and output (delivering logic) services and validating the given configuration.

    A successful run has the following output messages for the initializer module:

    Code Block
      INFO MainProcess::MainThread -> [OUTPUT] OutputMultiprocessingController::__init__ Configuration -> {'devo_1': {'type': 'devo_platform', 'config': {'address': ..
      INFO MainProcess::MainThread -> OutputProcess - Starting thread (executing_period=300s)
      INFO MainProcess::MainThread -> InputProcess - Starting thread (executing_period=300s)
      INFO OutputProcess::MainThread -> Process started
      INFO InputProcess::MainThread -> Process Started
      INFO OutputProcess::MainThread -> [INTERNAL LOGIC] DevoSender::_validate_kwargs_for_method__init__ -> The <address> does not appear to be an IP address and cannot be verified: collector-eu.devo.io
      INFO OutputProcess::MainThread -> [INTERNAL LOGIC] DevoSender::_validate_kwargs_for_method__init__ -> The <address> does not appear to be an IP address and cannot be verified: collector-eu.devo.io
      INFO InputProcess::MainThread -> InputThread(gsuite_alerts,1234) - Starting thread (execution_period=600s)
      INFO InputProcess::MainThread -> ServiceThread(gsuite_alerts,1234,activity_rule,predefined) - Starting thread (execution_period=600s)
      INFO InputProcess::MainThread -> GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> Starting thread
      INFO InputProcess::MainThread -> GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) - Starting thread
      INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> Path for credentials file has been transformed to absolute: "token.pickle" -> "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle"
    WARNING InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Waiting until setup will be executed
      INFO OutputProcess::MainThread -> [INTERNAL LOGIC] DevoSender::_validate_kwargs_for_method__init__ -> The <address> does not appear to be an IP address and cannot be verified: collector-eu.devo.io
      INFO OutputProcess::MainThread -> DevoSender(standard_senders,devo_sender_0) -> Starting thread
      INFO OutputProcess::MainThread -> DevoSenderManagerMonitor(standard_senders,devo_1) -> Starting thread (every 300 seconds)
      INFO OutputProcess::MainThread -> Process started
      INFO InputProcess::MainThread DevoSenderManager(standard_senders,manager,devo_1) -> ProcessStarting Startedthread
      INFO OutputProcess::MainThread -> [INTERNAL LOGIC] DevoSender::_validate_kwargs_for_method__init__ -> The <address> does not appear to be an IP address and cannot be verified: collector-eu.devo.io(lookup_senders,devo_sender_0) -> Starting thread
      INFO OutputProcess::MainThread -> [INTERNAL LOGIC] DevoSender::_validate_kwargs_for_method__init__DevoSenderManagerMonitor(lookup_senders,devo_1) -> TheStarting <address>thread does(every not300 appearseconds)
    to be an IP address and cannot be verified: collector-eu.devo.io
    INFO OutputProcess::MainThread -> DevoSenderManager(lookup_senders,manager,devo_1) -> Starting thread
      INFO InputProcessOutputProcess::MainThread -> InputThreadDevoSender(gsuiteinternal_alerts,1234senders,devo_sender_0) -> Starting thread (execution_period=600s)
      INFO InputProcessOutputProcess::MainThread -> ServiceThreadDevoSenderManagerMonitor(gsuiteinternal_alertssenders,1234,activity_rule,predefineddevo_1) -> Starting thread (execution_period=600severy 300 seconds)
      INFO InputProcessOutputProcess::MainThread -> GSuiteAlertsPullerSetupDevoSenderManager(gsuiteinternal_collectorsenders,gsuite_alerts#1234manager,activitydevo_rule#predefined1) -> Starting thread
      INFO InputProcess::MainThread -> [GC] global: 20.4% -> GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) - Starting thread 20.4%, process: RSS(42.63MiB -> 42.69MiB), VMS(439.63MiB -> 503.63MiB)
      INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> Path for credentials file has been transformed to absolute: "token.pickle" -> _alerts#1234,activity_rule#predefined) -> File "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle" WARNING InputProcess::GSuiteAlertsPuller(gsuite_alerts,1234,activity_rule,predefined) -> Waiting until setup will be executedhas been created from base64 content
      INFO OutputProcess::MainThread -> [INTERNAL LOGICGC] DevoSender::_validate_kwargs_for_method__init__global: 20.4% -> The <address> does not appear to be an IP address and cannot be verified: collector-eu.devo.io20.4%, process: RSS(42.19MiB -> 44.24MiB), VMS(935.90MiB -> 935.90MiB)
      INFO OutputProcess::MainThread -> DevoSender(standardinternal_senders,devo_sender_0) -> Starting thread Created a sender: {..
      INFO OutputProcess::MainThread -> DevoSenderManagerMonitorDevoSender(standard_senders,devo_sender_10) -> StartingCreated threada (every 300 seconds)
      sender: {..

    Events delivery and Devo ingestion

    The event delivery module is in charge of receiving the events from the internal queues where all events are injected by the pullers and delivering them using the selected compatible delivery method.

    A successful run has the following output messages for the initializer module:

    Code Block
    INFO OutputProcess::MainThread -> DevoSenderManagerSyslogSenderManagerMonitor(standard_senders,manager,devosidecar_10) -> StartingNumber threadof available  INFO OutputProcess:senders:MainThread -> DevoSender(lookup_senders,devo_sender_0) -> Starting thread
     1, sender manager internal queue size: 0
    INFO OutputProcess::MainThread -> DevoSenderManagerMonitor(lookupSyslogSenderManagerMonitor(standard_senders,devosidecar_10) -> Starting thread (every 300 seconds)
     enqueued_elapsed_times_in_seconds_stats: {}
    INFO OutputProcess::MainThreadSyslogSenderManagerMonitor(standard_senders,sidecar_0) -> Sender: DevoSenderManagerSyslogSender(lookupstandard_senders,manager,devo_1) -> Starting thread
     syslog_sender_0), status: {"internal_queue_size": 0, "is_connection_open": True}
    INFO OutputProcess::MainThread -> DevoSender(internalSyslogSenderManagerMonitor(standard_senders,devosidecar_sender_0) -> Standard Starting- threadTotal number of INFOmessages OutputProcess::MainThread -> DevoSenderManagerMonitor(internal_senders,devo_1) -> Starting thread (every 300 seconds)
     sent: 44, messages sent since "2022-06-28 10:39:22.511671+00:00": 44 (elapsed 0.007 seconds)
    INFO OutputProcess::MainThread -> DevoSenderManagerSyslogSenderManagerMonitor(internal_senders,manager,devosidecar_1) -> Starting thread
      INFO InputProcess::MainThread0) -> [GC] global: 20.4% -> 20.4%, process: RSS(42.63MiB -> 42.69MiB), VMS(439.63MiB -> 503.63MiB)
      INFO InputProcess::GSuiteAlertsPullerSetup(gsuite_collector,gsuite_alerts#1234,activity_rule#predefined) -> File "/../devo-collector-gsuite-google-workspace-alerts/credentials/token.pickle" has been created from base64 content
     Number of available senders: 1, sender manager internal queue size: 0
    INFO OutputProcess::SyslogSenderManagerMonitor(internal_senders,sidecar_0) -> enqueued_elapsed_times_in_seconds_stats: {}
    INFO OutputProcess::MainThreadSyslogSenderManagerMonitor(internal_senders,sidecar_0) -> [GC] global: 20.4% -> 20.4%, process: RSS(42.19MiB -> 44.24MiB), VMS(935.90MiB -> 935.90MiB)
     Sender: SyslogSender(internal_senders,syslog_sender_0), status: {"internal_queue_size": 0, "is_connection_open": True}
    INFO OutputProcess::DevoSenderSyslogSenderManagerMonitor(internal_senders,devo_sender_0) -> Created a sender: {..
      INFO OutputProcess::DevoSender(standard_senders,devo_sender_0) -> Created a sender: {..

    Events delivery and Devo ingestion

    The event delivery module is in charge of receiving the events from the internal queues where all events are injected by the pullers and delivering them using the selected compatible delivery method.

    A successful run has the following output messages for the initializer module:

    Code Block
    INFO OutputProcess::SyslogSenderManagerMonitor(standard_senders,sidecar_0) -> Number of available senders: 1, sender manager internal queue size: 0
    INFO OutputProcess::SyslogSenderManagerMonitor(standard_senders,sidecar_0) -> enqueued_elapsed_times_in_seconds_stats: {}
    INFO OutputProcess::SyslogSenderManagerMonitor(standard_senders,sidecar_0) -> Sender: SyslogSender(standard_senders,syslog_sender_0), status: {"internal_queue_size": 0, "is_connection_open": True}
    INFO OutputProcess::SyslogSenderManagerMonitor(standard_senders,sidecar_0) -> Standard - Total number of messages sent: 44, messages sent since "2022-06-28 10:39:22.511671+00:00": 44 (elapsed 0.007 seconds)
    INFO OutputProcess::SyslogSenderManagerMonitor(internal_senders,sidecar_0) -> Number of available senders: 1, sender manager internal queue size: 0
    INFO OutputProcess::SyslogSenderManagerMonitor(internal_senders,sidecar_0) -> enqueued_elapsed_times_in_seconds_stats: {}
    INFO OutputProcess::SyslogSenderManagerMonitor(internal_senders,sidecar_0) -> Sender: SyslogSender(internal_senders,syslog_sender_0), status: {"internal_queue_size": 0, "is_connection_open": True}
    INFO OutputProcess::SyslogSenderManagerMonitor(internal_senders,sidecar_0) -> Internal - Total number of messages sent: 1, messages sent since "2022-06-28 10:39:22.516313+00:00": 1 (elapsed 0.019 seconds)
    Info

    By default, these information traces will be displayed every 10 minutes.

    Sender services

    The Integrations Factory Collector SDK has 3 different senders services depending on the event type to delivery (internal, standard, and lookup). This collector uses the following Sender Services:

    Sender services

    Description

    internal_senders

    In charge of delivering internal metrics to Devo such as logging traces or metrics.

    standard_senders

    In charge of delivering pulled events to Devo.

    Logging trace

    Description

    Number of available senders: 1

    Displays the number of concurrent senders available for the given Sender Service.

    sender manager internal queue size: 0

    Displays the items available in the internal sender queue.

    Info

    This value helps detect bottlenecks and needs to increase the performance of data delivery to Devo. This last can be made by increasing the concurrent senders.

    Total number of messages sent: 44, messages sent since "2022-06-28 10:39:22.511671+00:00": 21 (elapsed 0.007 seconds)

    Displayes the number of events from the last time and following the given example, the following conclusions can be obtained:

    • 44 events were sent to Devo since the collector started.

    • The last checkpoint timestamp was 2022-06-28 10:39:22.511671+00:00.

    • 21 events where sent to Devo between the last UTC checkpoint and now.

    • Those 21 events required 0.007 seconds to be delivered.

    Info

    By default these traces will be shown every 10 minutes.

    Expand
    titleCheck memory usage

    To check the memory usage of this collector, look for the following log records in the collector which are displayed every 5 minutes by default, always after running the memory-free process.

    • The used memory is displayed by running processes and the sum of both values will give the total used memory for the collector.

    • The global pressure of the available memory is displayed in the global value.

    • All metrics (Global, RSS, VMS) include the value before freeing and after previous -> after freeing memory

    Code Block
    INFO InputProcess::MainThread -> [GC] global: 20.4% -> 20.4%, process: RSS(34.50MiB -> 34.08MiB), VMS(410.52MiB -> 410.02MiB)
    INFO OutputProcess::MainThread -> [GC] global: 20.4% -> 20.4%, process: RSS(28.41MiB -> 28.41MiB), VMS(705.28MiB -> 705.28MiB)
    Info

    Differences between RSS and VMS memory usage:

    • RSS is the Resident Set Size, which is the actual physical memory the process is using

    • VMS is the Virtual Memory Size which is the virtual memory that process is using

    Expand
    titleEnable/disable the logging debug mode

    Sometimes it is necessary to activate the debug mode of the collector's logging. This debug mode increases the verbosity of the log and allows you to print execution traces that are very helpful in resolving incidents or detecting bottlenecks in heavy download processes.

    • To enable this option you just need to edit the configuration file and change the debug_status parameter from false to true and restart the collector.

    • To disable this option, you just need to update the configuration file and change the debug_status parameter from true to false and restart the collector.

    For more information, visit the configuration and parameterization section corresponding to the chosen deployment mode.

    Change log for v1.x.x

    ...

    Release

    ...

    Released on

    ...

    Release type

    ...

    Details

    ...

    Recommendations

    sidecar_0) -> Internal - Total number of messages sent: 1, messages sent since "2022-06-28 10:39:22.516313+00:00": 1 (elapsed 0.019 seconds)
    Info

    By default, these information traces will be displayed every 10 minutes.

    Sender services

    The Integrations Factory Collector SDK has 3 different senders services depending on the event type to delivery (internal, standard, and lookup). This collector uses the following Sender Services:

    Sender services

    Description

    internal_senders

    In charge of delivering internal metrics to Devo such as logging traces or metrics.

    standard_senders

    In charge of delivering pulled events to Devo.

    Sender statistics

    Each service displays its own performance statistics that allow checking how many events have been delivered to Devo by type:

    Logging trace

    Description

    Number of available senders: 1

    Displays the number of concurrent senders available for the given Sender Service.

    sender manager internal queue size: 0

    Displays the items available in the internal sender queue.

    Info

    This value helps detect bottlenecks and needs to increase the performance of data delivery to Devo. This last can be made by increasing the concurrent senders.

    Total number of messages sent: 44, messages sent since "2022-06-28 10:39:22.511671+00:00": 21 (elapsed 0.007 seconds)

    Displayes the number of events from the last time and following the given example, the following conclusions can be obtained:

    • 44 events were sent to Devo since the collector started.

    • The last checkpoint timestamp was 2022-06-28 10:39:22.511671+00:00.

    • 21 events where sent to Devo between the last UTC checkpoint and now.

    • Those 21 events required 0.007 seconds to be delivered.

    Info

    By default these traces will be shown every 10 minutes.

    Expand
    titleCheck memory usage

    To check the memory usage of this collector, look for the following log records in the collector which are displayed every 5 minutes by default, always after running the memory-free process.

    • The used memory is displayed by running processes and the sum of both values will give the total used memory for the collector.

    • The global pressure of the available memory is displayed in the global value.

    • All metrics (Global, RSS, VMS) include the value before freeing and after previous -> after freeing memory

    Code Block
    INFO InputProcess::MainThread -> [GC] global: 20.4% -> 20.4%, process: RSS(34.50MiB -> 34.08MiB), VMS(410.52MiB -> 410.02MiB)
    INFO OutputProcess::MainThread -> [GC] global: 20.4% -> 20.4%, process: RSS(28.41MiB -> 28.41MiB), VMS(705.28MiB -> 705.28MiB)
    Info

    Differences between RSS and VMS memory usage:

    • RSS is the Resident Set Size, which is the actual physical memory the process is using

    • VMS is the Virtual Memory Size which is the virtual memory that process is using

    Expand
    titleEnable/disable the logging debug mode

    Sometimes it is necessary to activate the debug mode of the collector's logging. This debug mode increases the verbosity of the log and allows you to print execution traces that are very helpful in resolving incidents or detecting bottlenecks in heavy download processes.

    • To enable this option you just need to edit the configuration file and change the debug_status parameter from false to true and restart the collector.

    • To disable this option, you just need to update the configuration file and change the debug_status parameter from true to false and restart the collector.

    For more information, visit the configuration and parameterization section corresponding to the chosen deployment mode.

    Change log

    Release

    Released on

    Release type

    Details

    Recommendations

    v1.9.0

    Status
    colourGreen
    titleIMPROVEMENT

    Status
    colourRed
    titleBUG FIX

    Improvements

    • Updated DCSDK from 1.12.4 to 1.13.1

    • Upgraded Base Docker Image to 1.3.1

    Bug Fix

    • Fixed ingestion stoppage issue

    Recommended version

    v1.8.0

    Status
    colourGreen
    titleIMPROVEMENT

    Improvements

    • Updated DCSDK from 1.10.2 to 1.12.4

    • Upgraded Base Docker Image to 1.3.0

    Recommended version

    v1.7.0

    Status
    colourGreen
    titleIMPROVEMENT
    Status
    colourPurple
    titleNEW FEATURE

    Improvements

    • Updated DCSDK from 1.8.0 to 1.10.2

    New features:

    • Added new alert types:

      • Access Approvals request

      • APNS certificate is expiring soon

      • APNS certificate has expired

      • MSA Billing

      • MSA Legal

      • MSA Product

      • MSA Security

      • Customer abuse detected

      • Drive settings changed

      • Email settings changed

      • Mobile settings changed

      • New user Added

      • Suspended user made active

      • User deleted

      • User granted Admin privilege

      • Users Admin privilege revoked

      • Users password changed

      • Reporting Rule

      • Account suspension warning

      • Chrome devices auto-update expiration warning

     

    Update

    v1.6.0

    Status
    colourGreen
    titleIMPROVEMENT

    Improvements:

    • Updated DCSDK from 1.4.1 to 1.8.0.

    Update

    v1.5.0

    Status
    colourGreen
    titleIMPROVEMENT

    New features:

    • We added to the Alerts puller the feature to restart the persistence when the config start_time  is updated at service level.

    Improvements:

    The performance has been improved after switching the internal delivery method. The events are delivered in batches instead of one by one

    Improvements:

    • The Google Workspace Collector has been divided into two: Google Workspace Alerts and Google Workspace Reports to improve the user experience.

    • Added base64 validation: Validates whether the credentials token is in the correct base64 format.

    Update

    v1.

    3

    4.

    0

    Status
    colourPurple
    titleNEW FEATURE

    New features:

    Added new alert types:

  • Data Loss Prevention

  • Apps outage

  • Primary admin changed

  • SSO profile added

  • SSO profile updated

  • SSO profile deleted

  • Super admin password reset

    2

    Status
    colourRed
    titleBUG FIX

    Bugs fixes:

    • Fixed a bug that prevented Syslog output from being enabled.

    Update

    v1.4.1

    Status
    colourGreen
    titleIMPROVEMENT

    Improvements:

    • Upgraded underlay Devo Collector SDK from v1.1.4 to v1.4.1.

    • The resilience has been improved with a new feature that restart the collector when the Devo connections is lost and it cannot be recovered.

    • When an exception is raised by the Collector Setup, the collector retries after 5 seconds. For consecutive exceptions, the waiting time is multiplied by 5 until hits 1800 seconds, which is the maximum waiting time allowed. No maximum retries are applied.

    • When an exception is raised by the Collector Pull method, the collector retries after 5 seconds. For consecutive exceptions, the waiting time is multiplied by 5 until hits 1800 seconds, which is the maximum waiting time allowed. No maximum retries are applied.

    • When an exception is raised by the Collector pre-pull method, the collector retries after 30 seconds. No maximum retries are applied.

    • Updated the underlying DevoSDK package to v3.6.4 and dependencies, this upgrade increases the resilience of the collector when the connection with Devo or the Syslog server is lost. The collector is able to reconnect in some scenarios without running the self-kill feature.

    • Support for stopping the collector when a GRACEFULL_SHUTDOWN system signal is received.

    • Re-enabled the logging to devo.collector.out for Input threads.

    • Improved self-kill functionality behavior.

    • Added more details in log traces.

    • Added log traces for knowing system memory usage.

    Update

    v1.

    4

    3.

    2

    0

    v1.5.0

    Status
    colourGreen
    titleIMPROVEMENT

    Improvements:

  • The Google Workspace Collector has been divided into two: Google Workspace Alerts and Google Workspace Reports to improve the user experience.

  • Added base64 validation: Validates whether the credentials token is in the correct base64 format.

    Status
    colourRedPurple
    titleBUG FIX

    Bugs fixes:

    • Fixed a bug that prevented Syslog output from being enabled.

    Update

    NEW FEATURE

    New features:

    • Added new alert types:

      • Data Loss Prevention

      • Apps outage

      • Primary admin changed

      • SSO profile added

      • SSO profile updated

      • SSO profile deleted

      • Super admin password reset

    Update

    v1.

    6

    2.0

    Status
    colourPurple
    titleNEW FEATURE

    Status
    colourGreen
    titleIMPROVEMENT

    Improvements:

    • Updated DCSDK from 1.4.1 to 1.8.0.

    Recommended version

    New features:

    • We added to the Alerts puller the feature to restart the persistence when the config start_time  is updated at service level.

    Improvements:

    • The performance has been improved after switching the internal delivery method. The events are delivered in batches instead of one by one.

    Update