Cato API Только для чтения - события

Prev Next

Обзор событий API-запроса

Запрос API событий предоставляет способ получения сводной информации о событиях, сгенерированных для учетной записи, без необходимости сначала извлекать отдельные события и выполнять анализ.  

Примеры анализа, включаемые в события API:

  • Количество пользователей SDP, вошедших в систему за определенный период времени

  • Процент событий блокировки и разрешения фаерволла

  • Показать количество (кардинальность) событий, сгенерированных для каждого типа событий за предыдущие 30 дней.

Аргументы для событий

Это аргументы, которые вы можете передать в вызов API событий для изменения его работы:

  • accountID

  • measures

  • filters

  • dimensions

  • сортировать 

  • timeFrame

Аргумент accountID

Это accountID для учетной записи, по которой вы выполняете запрос.

Заметка:

Этот ID учетной записи не отображается в Приложении Управления Cato, вместо этого это номер в URL для Приложения Управления Cato. Например, ID учетной записи - это 26 для следующего URL: https://cc.catonetworks.com/#!/26/topology.

Аргумент measures

Аргумент measures позволяет вам определить поля, которые вы хотите, чтобы запрос событий исследовал, и то, как должны быть агрегированы результаты. Для каждого поля, которое вы хотите проанализировать, вы должны определить следующее: 

  • fieldName - определяет поле, которое вы хотите агрегировать

  • aggType - определяет, как вы хотите выполнить агрегацию (например, count_distinct)

Следующий пример показывает синтаксис measures для запроса, который возвращает сумму полей event_count: 

 "measures": [
    {"fieldName":"event_count","aggType":"sum"}
]

Аргумент filters

Аргумент filters позволяет вам определить фильтр, который приведет к проверке только ограниченной части событий. Для каждого фильтра вы должны определить следующее:

  • fieldName - определяет имя поля, которое вы хотите отфильтровать

  • operator - определяет операцию фильтрации, которая должна быть использована для фильтрации поля

  • values - определяет значение фильтра, которое используется с оператором

Вот пример аргумента filters, используемого для выбора только событий с event_type Security:

"filters": [
    {
        "fieldName": "event_type", 
        "operator": "is",
        "values": ["Безопасность"]
    }
]

Аргумент dimensions

Используйте аргумент dimensions, чтобы сгруппировать поля с одинаковыми значениями в сводные строки.

Вот пример, который группирует файлы в соответствии с event_type:

"dimensions": [
    {"fieldName": "event_type"}
]

Аргумент sort

Аргумент sort определяет, как должны быть отсортированы возвращенные данные. Вот пример использования аргумента sort

  'sort': [ 
    {'fieldName': 'event_count', 'order': 'desc'},
    {'fieldName': 'event_type', 'order': 'asc'}
 ]

Аргумент timeFrame

Определяет временные рамки запроса. Это указывается с использованием формата, определенного спецификацией ISO 8601. Вот пример, как вы могли бы указать временные рамки за последние 30 дней:

"timeFrame": "last.P30D" 

Примечания:

  • Максимальная длина времени, которая может быть указана для аргумента timeFrame в настоящее время составляет 89 дней.

  • Фактическую спецификацию ISO 8601 можно получить здесь, но она не бесплатна. Вы также можете обратиться к этой статье в Википедии для получения дополнительной информации о том, как определить этот аргумент.

Пример запроса событий

Пример запроса

query events(
    $accountID: ID!,
    $measures: [EventsMeasure],
    $dimensions: [EventsDimension],
    $filters: [EventsFilter!],
    $sort: [EventsSort!],
    $timeFrame: TimeFrame!,
    $limit: Int,
    $from: Int) { 
    events(
        accountID: $accountID
        timeFrame: $timeFrame
        measures: $measures
        dimensions: $dimensions
        filters: $filters
        sort: $sort ) {
    id 
    from
    total
    records(limit: $limit, from: $from) {
        fieldsMap
    }
}
}

Значения переменных

{ 
    "accountID": "1234",
    "measures": [ {
        "fieldName": "event_sub_type",
        "aggType": "count_distinct"
        }
    ],
    "filters": [ {
        "fieldName": "event_type",
        "operator": "is", "values": ["Безопасность"]
        } 
    ], 
    "timeFrame": "last.P1M"
}

Пример вывода событий

{ 
    "data": {
        "events": {
            "id": "xxx",
            "from": "2023-01-26T00:00:00Z",
            "to": "2023-02-27T00:00:00Z",
            "total": 1,
            "records": [ 
                { 
                    "fieldsMap": { 
                        "event_sub_type": "6"
                    }
                }
            ]
        }
    }
}