Для нагиоса есть набор плагинов http://www.jhweiss.de/software/nagios.html. И в списке плагинов есть чекалка сертификатов check_certexp.pl. Однако если у вас сертификат нужно проверять на ipv6, то данный скрипт не работает. Я исправил текущий плагин для проверки сертификатов хоста по его имени для всех его ip, как ipv4 так и ipv6. Вот как его можно исправить для себя.
Подробнее...$_ - Используется по умолчанию во многих функциях и операциях, в том числе: в качестве области поиска в операциях сопоставления с образцом m//, замены s/// и транслитерации y///, когда область поиска не задана явно операцией связывания =~; в качестве области ввода, когда условное выражение оператора while состоит из единственной операции ввода <>; в качестве параметра функции chop, split, print; в качестве переменной цикла в операторе foreach, если переменная цикла не задана явно.
$nn - Переменные $1, $2,... содержат подобразы из соответствующих наборов круглых скобок в последней успешной операции сопоставления с образцом.
$& - Часть строки, найденная при последней успешной операции сопоставления с образцом.
$` - Часть строки, стоящая перед совпавшей частью при последней успешной операции сопоставления с образцом.
$' - Часть строки, стоящая после совпавшей части при последней успешной операции сопоставления с образцом.
Подробнее...При построении графиков в Nagios иногда возникает такая ситуация, что в пробник добавилось несколько исходных данных, по которым нужно построить график. Однако т.к. база RRD статична, то график, которые отрисовывает модуль pnp4nagios не появится, а будет зиять ошибка на пол экрана, что нет DS(datasource). Так вот я сейчас покажу как добавить новые данные в базу RRD.
Пишем такой совсем короткий скрипт:
#!/usr/bin/perl use strict; my $rrd = RRD::Simple->new(); |
И вызываем
./script.pl file.rrd ds GAUGE |
Где ds нужно взять из текста ошибки.
Итак, сразу к делу.
Самый простой скрипт для соединения с Cisco выглядит примерно так:
#!/usr/bin/perl $user = 'robot'; |
Однако если использовать версию протокола SSH v1 (protocol => '1') тогда всё запускается и работает, однако с версией SSH-2 (protocol => '2') выкидывает в ошибку:
Подробнее...Идея проекта заключается в оповещении ответственных в порядке их приоритетности по серверам.
Сервис должен собирать информацию о проблемных машинах, т.е. в случае падения нескольких сервисов или серверов втечение некоторого времени (назовем это время временем реакции на пробники, которое задается через веб интерфейсhttps://contacts.kds.corp.hostcomm.ru/cgi-bin/servers_new.pl (по умолчанию равно 100 секунд)), система должна распознать ответственного группы серверов и сформировать один вызов на мобильный телефон. Если абонент отвечает и нажимает цифру 1, тогда вызов считается принятым и ему приходит емейл со списком проблемных серверов. В случае неответа или отказа приниять вызов, система должна впоследствии пересобрать всю информацию о проблемах и вызвать следующего по списку ответственного и т.д. Совершая вызов необходимо сообщить абоненту краткую информацию о случившемся и дождаться реакции абонента.
Для решения такой задачи выбран подход с использованием внешней базы данных nagios_notify, в которой будет храниться информация по ответственным, информация о группах проектов, о всех серверах, о срабатывании пробников (т.е. алертов), о совершении вызовов.
Всё это добро работает на машине contacts.kds.corp.hostcomm.ru. Скрипты написаны на языке perl, веб интерфейсы на perl+javascript. Кого заинтересовало пишите в личку :)
Подробнее...Tablesorter - это плагин для JavaScript-библиотеки jQuery, который позволяет сортировать HTML-таблицы, включающие теги thead и tbody, без перезагрузки страницы на стороне клиента. Модуль Tablesorter в основе имеет функциональные возможности JavaScript библиотеки jQuery.
Для начала нам необходимо подключить к страничке библиотеку jQuery (например, https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js) и файл содержащий модуль jquery.tablesorter.min.js, который качаем с сайта разработчика http://tablesorter.com/
Это два обязательных компонента которые необходимы для работы модуля Tablesorter. Также подключим модуль jquery.tablesorter.pager.js для пагинации таблицы и подключим стили.
<link type="text/css" rel="stylesheet" href="/js/themes/blue/style.css"> |
Структура таблицы должна быть такой:
основной контейнер <table> </table>, в нем должен быть контейнер заголовков, оформленный при помощи <thead> </thead>,
а непосредственно в нем располагается строка с нужными данными, записанными в <th> </th>. И тело таблицы соответственно обрамить тегами <tbody> </tbody>.
Perl-скрипт мониторинга RAID массива MegaRaid. Скачаиваем утилиту MegaCli54 и юзаем код
#!/usr/bin/perl my $CMD="/usr/bin/sudo /usr/local/sbin/MegaCli64 -pdlist -aALL -NoLog"; my @result=`$CMD`; my $EXIT_CODE=0; my $MSG; my $slot_number; my $count=0; my $hsp_count=0; my $online_count=0; my %disks; foreach (@result) { |
Простенький пример как работать с POST запросами в Perl.
#!/usr/bin/perl -w |
Имеем в Nagios контактную группу, например kds. Когда пользователь, допустим kds-nagios-agent, входящий в группу kds, авторизовывается, то он будет видеть только те хосты и сервисы, которые разрешены в его группе.
Задача: сделать так, чтобы когда появляется или удаляется хост в системе Nagios пользователю приходило уведомление, что теперь ему доступен (или удален из его группы) новый хост для мониторинга.
У Nagios есть cgi скрипт который выводит в формате csv детализацию по хостам. Значит необходимо только распарсить сей вывод. Итого имеем скрипт:
Подробнее...Попалось однажды под руку куча фоток, которые нужно было смасштабировать (уменьшить на n%).
Так появилась следующая небольшая прога на языке Perl, в которой пользователю выдается графическое меню. Единственный минус - никак не смог побороть кириллическое название директорий, поэтому работает только с латиницей названными директориями.
Подробнее...