Shinken (программное обеспечение)

Программное обеспечение для мониторинга сети
Синкэн
Оригинальный автор(ы)Жан Габес
Первоначальный выпуск1 декабря 2009 г. ; 14 лет назад [1] ( 2009-12-01 )
Стабильный релиз
2.4.3 / 10 марта 2016 г. [2] ( 2016-03-10 )
Репозиторий
  • github.com/naparuba/shinken
Написано вПитон
Операционная системаUnix-подобный , Windows
ТипМониторинг сети
ЛицензияAffero Генеральная публичная лицензия
Веб-сайтwww.shinken-monitoring.org

Shinken — это программное обеспечение для мониторинга компьютерной системы и сети с открытым исходным кодом, совместимое с Nagios . Оно отслеживает хосты и службы, собирает данные о производительности и оповещает пользователей при возникновении ошибок и повторно при их устранении.

Архитектура Shinken направлена ​​на обеспечение более легкой балансировки нагрузки и высокой доступности . Администратор управляет одной конфигурацией, система автоматически «разрезает» ее на части и отправляет рабочим узлам. Название происходит от этой функциональности: Shinken — японский меч.

Shinken был написан Жаном Габесом как доказательство концепции новой архитектуры Nagios. Полагая, что новая реализация будет быстрее и гибче старого кода C , он предложил ее в качестве новой ветви разработки Nagios 4. [3] Это предложение было отклонено авторами Nagios, поэтому Shinken стал независимым программным приложением для мониторинга сети, совместимым с Nagios . [4]

Shinken предназначен для работы на всех операционных системах , где работает Python . Среда разработки находится под Linux , но также хорошо работает на других вариантах Unix и Windows . Процесс Reactionner (отвечающий за отправку уведомлений) также может быть запущен на ОС Android . Это свободное программное обеспечение , лицензированное в соответствии с условиями Affero General Public License , опубликованными Free Software Foundation .

Обзор

  • Дизайн
    • Система мониторинга, написанная на Python
    • Распределенная архитектура с использованием удаленных объектов Pyro
  • Активные и пассивные методы мониторинга
    • Мониторинг сетевых служб ( SMTP , POP3 , HTTP , NNTP , ICMP , SNMP , FTP , SSH )
    • Мониторинг ресурсов хоста ( загрузка процессора , использование диска , системные журналы) в большинстве сетевых операционных систем , включая Microsoft Windows
      • Использование таких агентов, как NSClient++, send_nsca, Check MK , Thrift TSCA
      • Использование агентов, позволяющих удаленно запускать скрипты через Nagios Remote Plugin Executor (встроенная реализация на чистом Python включена в Shinken)
      • Использование безагентных методов, таких как SNMP, WMI , скриптовый SSH или HTTP(SSL)
      • Отправлять результаты проверки напрямую из программ с помощью Apache Thrift (Java, Python, Ruby)
    • Мониторинг систем, которые имеют возможность отправлять собранные данные по сети в специально написанные плагины (например, VMWare ESX3/4/5, Collectd)
    • Удаленный мониторинг поддерживается через зашифрованные туннели SSH или SSL .
    • Простая конструкция плагина, которая позволяет пользователям легко разрабатывать собственные проверки служб в зависимости от потребностей, используя инструменты по выбору ( скрипты оболочки , C++ , Perl , Ruby , Python , PHP , C# и т. д.)
    • Возможность расчета ключевых показателей эффективности на основе данных о состоянии и производительности в ядре Shinken для создания новых услуг и данных о производительности
  • Внешние интерфейсы системы
    • API, совместимый с Livestatus, который предоставляет информацию о состоянии, конфигурации и производительности
    • Экспортирует данные в графические модули (доступны PNP4Nagios, Graphite и другие)
    • Поддержка собственного API обмена сообщениями Android
    • Экспорт данных событий в системы регистрации с помощью syslog и RabbitMQ
    • Модули можно присоединять к любому процессу Shinken, чтобы максимально эффективно расширить его возможности.
  • Производительность
    • Доступны параллельные проверки служб и хостов
    • Возможность распределения процессов опроса на нескольких серверах
    • Поддержка внедрения легко избыточных и сбалансированных по нагрузке хостов мониторинга
    • Поддержка нескольких избыточных внешних интерфейсов
    • Возможность перенаправлять проверки выделенным поллерам (процессам, специализирующимся на выполнении плагинов)
  • Корреляция и бизнес-аналитика
    • Отношения между родителями и детьми
      • Возможность определения иерархии сетевых хостов с использованием «родительских» хостов, что позволяет обнаруживать и различать неработающие и недоступные хосты.
      • 1 к 1, 1 к N
    • Свободные деревья зависимостей между любым сервисом и хостом
      • 1 к 1, 1 к N
    • Поддержка интегрированных бизнес-правил
      • Расчетные хосты или службы, представляющие состояние бизнес-службы
      • Поддержка назначения бизнес-влияния каждой услуге, хосту или бизнес-процессу
    • Возможность показывать только основные проблемы
    • Автоматически изменяет состояние дочернего элемента на «неизвестно», когда родительский элемент недоступен
  • Другие особенности
    • Уведомления о контактах при возникновении проблем с обслуживанием или хостом и их решении (по электронной почте , пейджеру , SMS или любым другим определяемым пользователем способом через систему плагинов)
    • Возможность определения обработчиков событий, которые будут запускаться во время обслуживания или хост-событий для упреждающего решения проблем
    • Возможность переопределения серьезности оповещения на основе правил регулярных выражений
    • Поддержка имен объектов UTF-8
    • Поддержка мониторинга нескольких клиентов с помощью одной точки администрирования
    • Поддержка повторяющихся простоев с помощью атрибута maintenance_period
    • Расширенная система шаблонов с наследованием и перегрузкой

Архитектура

Установка Shinken состоит из нескольких процессов, каждый из которых оптимизирован для определенной задачи.

  • Арбитр
    • Загружает файлы конфигурации и отправляет объекты хоста и службы планировщику(ам)
    • Сторожевой таймер для всех остальных процессов, отвечающий за инициирование отказоустойчивости в случае обнаружения ошибки.
    • Может направлять события результатов проверки от приемника к связанному с ним планировщику.
    • Модули арбитра
      • Существует множество модулей для управления данными конфигурации.
  • Планировщик
    • Планирует следующий запуск проверок хоста и сервиса
    • Отправляет чеки избирателям
    • Вычисляет состояние и зависимости
    • Применяет триггеры KPI
    • Создает уведомления и отправляет их реагирующим лицам.
    • Обновляет файл хранения (или другие бэкэнды хранения)
    • Отправляет брокерам (внутренние события любого рода)
  • Поллер
    • Получает проверки от планировщика, выполняет плагины или интегрированные модули опроса и отправляет результаты планировщику
    • Модули опроса
      • NRPE — выполняет активный сбор данных для агентов Nagios Remote Plugin Executor
      • SNMP — выполняет активный сбор данных для агентов с поддержкой SNMP (находится в стадии бета-тестирования с использованием PySNMP)
      • CommandPipe — получает данные о пассивном состоянии и производительности из скрипта check_mk, не обрабатывает команды.
  • Реакционер
    • Получает уведомления и обработчики событий от планировщика, выполняет плагины/скрипты и отправляет результаты планировщику.
  • Маклер
    • Имеет несколько модулей (обычно работающих в собственных процессах)
    • Получает брокеры от планировщика и пересылает их в модули брокера.
    • Модули решают, обрабатывать ли им брок, в зависимости от типа брок (журнал, начальное состояние сервиса/хоста, результат проверки, начало/конец простоя, ...)
    • Модули обрабатывают broks разными способами. Вот некоторые из модулей:
      • webui — обновляет объекты в памяти и предоставляет веб-сервер для собственного графического интерфейса Shinken
      • livestatus — обновляет объекты в памяти, которые можно запросить с помощью API с помощью графических интерфейсов, таких как Thruk или Check_MK Multisite
      • graphite — экспортирует данные в базу данных Graphite
      • ndodb - обновляет базу данных ndo (MySQL или Oracle)
      • simple_log - централизовать журналы всех процессов Shinken
      • status_dat — записывает в файл status.dat, который может быть прочитан классическим графическим интерфейсом на основе cgi
  • Приемник (опционально)
    • Пассивно получает данные из локальных или удаленных протоколов.
    • Пассивный прием данных, который буферизуется перед отправкой соответствующему Планировщику (или Арбитру для глобальных команд)
    • Позволяет настроить «ферму» приемников для обработки большого количества входящих событий.
    • Модули для приемников
      • NSCA - приемник протокола NSCA
      • Collectd — получение данных о производительности от collectd через сеть
      • CommandPipe — получение команд, обновлений статуса и данных о производительности
      • TSCA — интерфейс Apache Thrift для отправки результатов проверки с использованием высокоскоростного буферизированного TCP-соединения непосредственно из программ
      • Веб-сервис — веб-сервис, принимающий http-сообщения с результатами проверки (бета-версия)

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

Shinken WebUI — это встроенный веб-интерфейс, который предоставляет информацию о состоянии, конфигурации и взаимодействии практически в режиме реального времени, а также панель инструментов для визуализации данных о тенденциях из баз данных Graphite и визуализацию графиков деревьев зависимостей.

Shinken skonfUI — это независимый веб-интерфейс, используемый для управления процессом обнаружения и задачами настройки.

Скрипт CLI shinken-admin используется для управления аспектами уровня процесса системы во время выполнения, такими как изменение уровней ведения журнала и получение отчетов о работоспособности.

Скрипт CLI install.sh — это основной скрипт управления для установки, удаления или обновления Shinken и связанного с ним программного обеспечения.

Разработка

Shinken имеет открытый и основанный на тестировании подход к разработке, при котором участники проекта предоставляют новые функции, занимаются рефакторингом кода, улучшают его качество и исправляют ошибки. [5]

Исходный код размещен на GitHub . [6] Интеграционный сервер запускает тесты при каждом коммите и углубленные тесты через регулярные промежутки времени.

Документация Shinken размещена на вики.

Смотрите также

Ссылки

  1. Официальный релиз в списке рассылки Nagios по адресу http://sourceforge.net/p/nagios/mailman/message/24087464/
  2. ^ "Выпуск 2.4.2 / Некоторые ребята из службы мониторинга".
  3. ^ Габес, Жан (2009-12-01). "Shinken: новое предложение по реализации". GitHub . Получено 2014-03-04 . Я хотел бы получить ваши отзывы о (незаконченной) повторной реализации Nagios под названием "Shinken", которую я написал на Python, которая быстрее и более модульная, чем текущая реализация Nagios на C.
  4. ^ Габес, Жан (2010-06-01). "Shinken: смешение с Nagios невозможно". Команда Shinken. Архивировано из оригинала 2014-01-23 . Получено 2010-06-01 . Мы так и не получили ответа на первоначальное предложение Shinken, потому что нас считают ренегатским проектом. Фактически, теперь мы можем сказать, что мы являемся форком.
  5. ^ Участники Shinken на Ohloh
  6. ^ исходный код на GitHub
  • Официальный сайт
  • Плагины мониторинга — дом официальных плагинов
  • (на немецком языке) Статья Linux Magazin о Shinken в немецком Linux Magazin 04/2010
Retrieved from "https://en.wikipedia.org/w/index.php?title=Shinken_(software)&oldid=1212391815"