Синкен (программное обеспечение)
Эта статья может чрезмерно полагаться на источники, слишком тесно связанные с предметом , что потенциально препятствует тому, чтобы статья была проверяемой и нейтральной . ( Май 2021 г. ) |
Оригинальный автор(ы) | Жан Габес |
---|---|
Первоначальный выпуск | 1 декабря 2009 г [1] |
Стабильная версия | 2.4.3
/ 10 марта 2016 г. [2] |
Репозиторий | |
Написано в | Питон |
Операционная система | Unix-подобный , Windows |
Тип | Мониторинг сети |
Лицензия | Я беру с собой Генеральную общественную лицензию |
Веб-сайт | www |
Shinken — это с открытым исходным кодом компьютерная система и для мониторинга сети, программное обеспечение совместимое с Nagios . Он наблюдает за хостами и службами, собирает данные о производительности и предупреждает пользователей при возникновении ошибок и снова при их устранении.
Архитектура Shinken призвана обеспечить более простую балансировку нагрузки и высокую доступность . Администратор управляет единой конфигурацией, система автоматически «разрезает» ее на части и распределяет по рабочим узлам. Он получил свое название от этой функции: Синкен — японский меч.
Shinken был написан Жаном Габесом как доказательство концепции новой архитектуры Nagios. Полагая, что новая реализация быстрее и гибче, чем старый код C , он предложил ее в качестве новой ветки разработки Nagios 4. [3] Это предложение было отклонено авторами Nagios, поэтому Shinken стал независимым для мониторинга сети, программным обеспечением совместимым с Nagios . [4]
Shinken предназначен для работы во всех операционных системах , где работает Python . Среда разработки находится под Linux , но также хорошо работает и в других вариантах Unix и Windows . Процесс реакции (отвечающий за отправку уведомлений) также можно запустить под ОС Android . Это бесплатное программное обеспечение , лицензированное на условиях Стандартной общественной лицензии Affero , опубликованной Фондом свободного программного обеспечения .
Обзор
[ редактировать ]- Дизайн
- Система мониторинга написана на 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 для создания новых сервисов и данных о производительности.
- Внешние интерфейсы системы
- Совместимый с Livestatus API, который предоставляет информацию о состоянии, конфигурации и производительности.
- Экспортирует данные в графические модули ( доступны 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, не обрабатывает команды.
- Реагировать
- Получает уведомления и обработчики событий от планировщика, выполняет плагины/скрипты и отправляет результаты планировщику.
- Маклер
- Имеет несколько модулей (обычно работающих в своих собственных процессах)
- Получает брокеры из планировщика и пересылает их модулям брокера.
- Модули решают, обрабатывают ли они брокер, в зависимости от типа брока (журнал, начальный статус службы/хоста, результат проверки, время начала/окончания простоя,...)
- Модули обрабатывают брокеры разными способами. Некоторые из модулей:
- webui — обновляет объекты в памяти и предоставляет веб-сервер для собственного графического интерфейса Shinken.
- livestatus — обновляет объекты в памяти, которые можно запрашивать с помощью API с помощью графических интерфейсов, таких как Thruk или Check_MK Multisite.
- графит — экспортирует данные в базу данных 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 размещена на вики.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Официальный выпуск в списке рассылки Nagios по адресу http://sourceforge.net/p/nagios/mailman/message/24087464/.
- ^ «Выпуск 2.4.2 / Некоторые ребята из мониторинга» .
- ^ Габес, Жан (1 декабря 2009 г.). «Синкен: новое предложение по реализации» . Гитхаб . Проверено 4 марта 2014 г.
Я хотел бы получить ваш отзыв о (незавершенной) повторной реализации Nagios под названием «Shinken», которую я написал на Python, которая быстрее и более модульна, чем текущая реализация Nagios на C.
- ^ Габес, Жан (1 июня 2010 г.). «Shinken: микс с Nagios невозможен» . Команда Синкен. Архивировано из оригинала 23 января 2014 г. Проверено 1 июня 2010 г.
Мы так и не получили ответа на первоначальное предложение Синкена, потому что нас считают проектом-ренегатом. Фактически, теперь мы можем сказать, что мы — форк.
- ^ Участники Shinken на Ohloh
- ^ исходный код на GitHub
Внешние ссылки
[ редактировать ]- Официальный сайт
- Плагины мониторинга — дом официальных плагинов.
- (на немецком языке) Статья Linux Magazin о Shinken в немецком Linux Magazin 04/2010
- Сетевое программное обеспечение на основе интернет-протокола
- Бесплатное программное обеспечение для управления сетью
- Программное обеспечение для управления мультиагентной сетью
- Бесплатное программное обеспечение, написанное на Python.
- Сетевые анализаторы
- Нагиос
- Программное обеспечение, использующее лицензию GNU AGPL.