Мониторинг — Отслеживайте Ход Выполнения Программы На Нескольких Серверах.

  • Автор темы Skalolazs
  • Обновлено
  • 22, Oct 2024
  • #1

У нас есть три сервера, на которых запущены программы Python, выполняющие задачи анализа данных внутри

tmux
session. The method we are using at the moment is ssh'ing into each of them connecting the
tmux
сеанс и наблюдая за выводом в командной строке.

Этот метод утомителен, поэтому мы ищем решение, которое автоматизирует мониторинг хода выполнения программы (вывод в CLI) для нескольких серверов одновременно. В идеале нам хотелось бы использовать решение с веб-интерфейсом, но CLI также вполне подойдет.

Спасибо за чтение.

#мониторинг

Skalolazs


Рег
13 Oct, 2011

Тем
73

Постов
185

Баллов
560
  • 25, Oct 2024
  • #2

Каждый раз, когда вы запускаете специальные долговременные команды, вам следует сделать шаг назад и переосмыслить свой процесс, поскольку он должен быть автоматизирован, включая обработку ошибок.

Вместо того, чтобы подключаться к серверам для просмотра статуса, лучший подход — отправить эту информацию наружу. Если вы хотите написать кучу собственного кода, вы можете делать самые разные вещи, но самое простое, вероятно, — это начать отправлять выходные данные через системный журнал в централизованную систему журналирования (сам системный журнал, или ELK, или что-то еще). Таким образом, вы можете контролировать все из централизованного местоположения.

Заглядывая вперед, отметим, что если это не разовая задача, то мониторинг следует автоматизировать. То есть вам никогда не придется просто просматривать журналы, чтобы увидеть, все ли идет так, как должно. Вместо этого вам следует предположить, что они есть (и продолжить другую работу). пока ваше оповещение не сработает. Это вложение времени в получение надежных и широко охватываемых оповещений, но по мере усложнения ваших систем это окупится, поскольку вам не придется отслеживать все в любой момент, когда ты меняешься что-либо.

 

Loop4you


Рег
30 Oct, 2019

Тем
68

Постов
186

Баллов
556
  • 25, Oct 2024
  • #3

Грейлог

Поскольку два человека уже посоветовали вам переосмыслить текущий процесс (я поддерживаю это, поскольку в какой-то момент из-за этого у вас будут бессонные ночи ;)), я пойду другим путем и порекомендую конкретное программное обеспечение, которое, по моему мнению, подходит для большинства ваши потребности: Грейлог.

Я реализовал и использовал пару ELK складывает как для агрегации журналов, так и для бизнес-аналитики, а также запускать/поддерживать Graylog уже около двух лет у моего нынешнего работодателя. Я рекомендую Graylog, поскольку он имеет следующие встроенные функции и, на мой взгляд, его немного проще в настройке и обслуживании:

  • Веб-интерфейс
  • Многопользовательские возможности
  • Оповещение

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

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

Идеи: отправьте электронное письмо или сообщение в Slack своей команде. Создайте новую машину, чтобы сбалансировать вычислительную нагрузку. Автоматически блокируйте диапазоны IP-адресов в брандмауэрах при обнаружении атаки.

Чтобы попробовать Graylog, я бы рекомендовал выполнить следующие два шага:

  • Настройте выделенный хост, доступный всем хостам приложений, для запуска Graylog (и его зависимостей MongoDB и ElasticSearch).
  • Отправляйте журналы из вашего приложения в Graylog (возможно, как ГЕЛЬФ сообщения)

Примечание. Эти два шага могут заполнить страницы передового опыта и должны вызвать хотя бы пару мыслей. Не говоря уже о том, что Graylog не является решением для мониторинга, а сам Graylog должен отслеживаться с помощью подходящего инструмента мониторинга (например, Icinga, Prometheus, Nagios и это лишь некоторые из них).

 

AndrewTig


Рег
01 Feb, 2014

Тем
59

Постов
198

Баллов
503
  • 25, Oct 2024
  • #4

Я согласен с @Xiong Chiamiov и хочу дать более уточняющий вариант. Если вы хотите, чтобы отслеживалась каждая строка в CLI, я бы предложил перенаправить весь вывод в конкретный файл и ошибку в другой файл, а затем использовать журнальный тайник или бит файла отправить оба этих файлаЭластичный поиск , то вы можете настроить Логтрил с Кибана

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

 

Tarantyla


Рег
13 Aug, 2014

Тем
77

Постов
219

Баллов
644
  • 25, Oct 2024
  • #5
tmux

централизованный

tmux
on one server that can reach all of the others. A good place for this would be a jump box or some other place that folks are commonly logged in anyway. Within this "central"
tmux
Хотя другие ответы более разумны и разумны в долгосрочной перспективе, я думаю, что стоит упомянуть быстрое хакерское решение CLI. Бегать ssh к каждому ящику на отдельной панели и запишите все необходимые файлы журналов. Вы можете использовать-Ctrl " б
tmux
. Now all someone has to do to check things is attach to the "central"
tmux
чтобы получить больше панелей на одной вкладке внутри

сеанс, и они смогут сразу увидеть весь кластер.

tmux
can save the day.

 

Ragnarok


Рег
13 May, 2007

Тем
61

Постов
182

Баллов
497
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно