Правильные инструменты для реализации регистрации и мониторинга - PullRequest
0 голосов
/ 19 октября 2019

Моя команда и я недавно начали работать над новым проектом. Наш проект состоит из трех уровней: клиент (приложение Winforms), промежуточное программное обеспечение (.NET Core 3.0 Web API), база данных (PostgreSQL). Мне поручили найти оптимальный способ внедрения системы ведения журналов и мониторинга.

Нам нужно регистрировать каждое исключение (конечно), а также каждый запрос, который наше промежуточное программное обеспечение выполняет к нашей базе данных, а также некоторыежурналы аудита. Имейте в виду, что эти журналы будут появляться очень часто, поскольку пользователей одновременно более 200.

Сначала мой поиск начался с баз данных noSQL. Я думал о выборе MongoDb, Cassandra или ElasticSearch, так как они быстрые и не нуждаются в конкретной схеме и регистрируют все там. Но потом я наткнулся на эту замечательную запись в блоге Ника Крейвера - лидера архитектуры для Stack Exchange. Там он упоминает об использовании StackExchange.Exceptional , и я думаю, что это то, что нам действительно нужно. Но Я не уверен, как на самом деле его использовать и какое из всех тех замечательных решений, которые Ник предлагает мне, нужно для моего случая использования.

Поэтому я спрашиваю:

  1. если вы когда-либо использовали Exceptional, расскажите мне о его использовании
  2. мне также нужен OPServer для мониторинга журналов?
  3. мне все же лучше использовать только Mongo?

1 Ответ

1 голос
/ 19 октября 2019

Если вы спросите меня, я пойду со стеком ELKB. Я не использовал OPServer. Поэтому я не собираюсь комментировать это. Но я хотел бы поделиться своим мнением оasticsearch, как ваш сценарий использования может быть достигнут на этом.

Насколько я понимаю, вам нужно регистрировать две вещи:

  1. Каждое исключение / ошибки
  2. Промежуточное программное обеспечение Журналы запросов

ELKBСтек предназначен только для этих случаев использования. Там, где будет река, вид потока. Ваши журналы будут храниться в Elasticsearch.

Ниже приведены несколько шагов, описывающих, как вы можете добиться своего варианта использования:

Шаг 1 : Настройка Elasticsearch. Для этого вам не нужно быть профессионалом. Просто следуйте замечательному документу, который у них есть.
Шаг 2 : Настройте Logstash / Filebeat, который будет читать ваш файл журнала в реальном времени и продолжать вставлять в Elasticsearch.
Шаг 3 :Настройте Kibana на эластичный поиск. Вы получите полное представление о ваших журналах данных.
Шаг 4 : просто добавьте точку регистрации в вашем приложении, где вы получите исключения, или вы хотите регистрировать что-то еще.

PROS :

  1. Все инструменты уже готовы и используются многими другими организациями с очень интенсивным использованием. Так что он подойдет и для вашего случая использования.
  2. Очень хорошая документация и поддержка сообщества.
  3. Отличный просмотр данных от kibana. Вы можете создать свою собственную панель инструментов. Это похоже на одно представление для всех системных журналов.
  4. Уже есть некоторые доступные ритмы, такие как ритмы MySQL, ритмы Nginx, ритмы Apache, Mongo DB и т. Д. Здесь нужно просто подключить и начать использовать эти.
  5. Это будет ваша централизованная архитектура, когда вы захотите добавить новый тип журналов. Вам нужно просто начать запись в тот же файл журнала, и он начнет запись.

В Интернете вы найдете множество ссылок.

CONS :

  1. Вы можете настроить оповещение через этоиспользуя 'watcher', который оплачивается.
  2. Если вы хотите установить оповещение с открытым исходным кодом, вы можете перейти с alertmanager (Prometheus), где вам нужно сделать несколько дополнительных интеграций.

Ниже приведены несколько вариантов использования, которыми я хотел бы поделиться. Я уверен, что это поможет вам понять:

Dream11 : https://medium.com/@D11Engg/elasticsearch-dream11-30328d913cd5
Uber : https://eng.uber.com/elk/
Ebay : https://www.elastic.co/blog/monitoring-petabytes-of-logs-at-ebay-with-beats

...