- tocdepth
2
Настройка отправки событий бакета OBS на внешний syslog-сервер
С помощью этой инструкции вы сможете настроить отправку событий платформенного сервиса на внешний приемник.
В качестве платформенного сервиса будет использоваться Object Storage (OBS). В роли приемника — внешний syslog-сервер.
По аналогии можно отправлять события из других платформенных сервисов, которые интегрируются с сервисом Simple Message Notification.
Шаги по настройке:
Также с помощью дополнительной инструкции Отправка сообщений на сервер в облаке Advanced можно настроить отправку событий не на внешний приемник, а на сервер в облаке Advanced.
Шаг 1. Создание SMN-топика
Simple Message Notification (SMN) — сервис для настройки email- и HTTP/HTTPS-уведомлений по принципу «publish/subscribe». В SMN есть две роли:
издатель — публикует сообщения в топике;
подписчик — получает сообщения из топиков.
Топик — это набор сообщений и точка доступа, через которую издатель и подписчик взаимодействуют друг с другом.
Чтобы создать топик:
Войдите в консоль управления Advanced:
Чтобы открыть список сервисов, нажмите Service List.
В списке сервисов в разделе Application выберите Simple Message Notification.
В меню слева перейдите в раздел
.В правом верхнем углу нажмите Create Topic.
В поле Topic Name введите название топика.
В поле Display Name введите отображаемое имя отправителя сообщения.
В поле Enterprise Project выберите корпоративный проект, которому будет принадлежать топик.
Нажмите OK.
Топик создан. Перейдите к следующему шагу.
Шаг 2. Привязка SMN-топика к событиям бакета OBS
Object Storage (OBS) — сервис хранения и управления объектным хранилищем данных.
Чтобы привязать SMN-топик к событиям бакета OBS:
В списке всех сервисов в разделе Storage выберите Object Storage Service.
Нажмите на название бакета, события которого нужно отправлять на syslog-сервер. При необходимости создайте новый бакет.
В меню слева перейдите в раздел
.Нажмите Create.
В поле Name введите название уведомления.
В поле Events отметьте все события — ObjectCreated и ObjectRemoved.
В поле Notification Method сначала выберите проект, в котором находится SMN-топик, а затем выберите сам SMN-топик, который вы создали ранее.
Нажмите OK.
SMN-топик привязан к событиям бакета OBS.
Шаг 3. Создание функции отправки событий на внешний syslog-сервер
FunctionGraph (FG) позволяет размещать и запускать код в бессерверной среде. Функция запускается при срабатывании триггера, определенного пользователем.
Чтобы создать и настроить функцию, которая отправляет syslog-сообщения на внешний syslog-сервер:
В списке всех сервисов в разделе Computing выберите FunctionGraph.
В меню слева перейдите в раздел
.В правом верхнем углу нажмите Create Function.
В поле Function name введите название функции.
В поле Enterprise Project выберите корпоративный проект, которому будет принадлежать функция.
В поле Runtime выберите Python 3.6.
Оставшиеся параметры оставьте по умолчанию и нажмите Create Function.
В онлайн-редакторе на вкладке Code вставьте Python-код:
# -*- coding:utf-8 -*- import json import logging import logging.handlers def handler (event, context): my_logger = logging.getLogger('MyLogger') my_logger.setLevel(logging.DEBUG) handler = logging.handlers.SysLogHandler(address = ('10.10.1.10',514)) my_logger.addHandler(handler) my_logger.debug(event) print("success") return { "statusCode": 200, "isBase64Encoded": False, "body": "OK", "headers": { "Content-Type": "application/json" } }
IP-адрес
10.10.10.10
и порт514
замените на IP-адрес и порт вашего syslog-сервера.Чтобы сохранить код, в правом верхнем углу нажмите Save.
Чтобы привязать функцию к SMN-топику, нужно создать и настроить триггер. Для этого переключитесь на вкладку Triggers и нажмите Create Trigger.
В поле Trigger Type выберите сервис Simple Message Notification (SMN).
В поле Topic Name выберите топик, созданный на первом шаге.
Нажмите OK.
Настройка отправки событий сервиса OBS на внешний syslog-сервер завершена.
Отправка сообщений на сервер в облаке Advanced
Если syslog-сообщения нужно отправлять на сервер/коллектор, который расположен в облаке Advanced, привяжите созданную функцию к виртуальной сети VPC:
В списке всех сервисов в разделе Management & Deployment выберите Identity and Access Management.
В меню слева перейдите в раздел Agencies.
В правом верхнем углу нажмите Create Agency.
В поле Agency Name введите название агентства.
В поле Agency Type выберите Cloud Service.
В поле Cloud Service выберите сервис FunctionGraph.
Нажмите Next.
Отметьте права VPC Admin. Для удобства можно воспользоваться поиском в правом верхнем углу.
Нажмите Next.
Нажмите OK и Finish.
В списке всех сервисов в разделе Computing выберите FunctionGraph.
В меню слева перейдите в раздел
.Нажмите на название ранее созданной функции.
Перейдите на вкладку Configuration.
В поле Agency выберите ранее созданное агентство.
Активируйте параметр VPC Access.
В поле VPC выберите виртуальную сеть, в которой расположен целевой syslog-сервер.
В поле Subnet выберите подсеть, в которой расположен целевой syslog-сервер.
В правом верхнем углу нажмите Save.
Настройка завершена.
Была ли статья полезной?
для Dev & Test