Перейти к публикации
iT4iT.CLUB

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 17.08.2015 во всех областях

  1. 1 балл
    Для данной процедуры использую автоматическое архивирование которое происходит при записи изменений в NVRAM. Архивы хранятся на удаленном TFTP сервере. Настройка маршрутизатора: Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#archive Router(config-archive)#path tftp://10.10.10.10/OBJ-NAME/$H Router(config-archive)#write-memory Router(config-archive)#^Z Router#writeOBJ-NAME - папка с именем агрегата\помещения\т.п (должна уже быть на TFTP сервере) для удобства поиска т.к это все потом будет съедать другая программа$H - имя устройства (устройство знает этот макрос как и $T - время создания архива)write-memory - создание архива происходит при изменении (записи в nvram) конфигурацииМожно сделать автоматическое создание архивов раз в день или как душе угодно Router(config-archive)#time-period 1440Просмотр созданных архивов Router#show archiveСравнение архивов Router#show archive config differences tftp://10.10.10.10/router-1 tftp://10.10.10.10/router-2Восстановление конфигурации из множества источников Router#configure replace ? archive: URL of config file that will replace running-config cns: URL of config file that will replace running-config flash: URL of config file that will replace running-config ftp: URL of config file that will replace running-config http: URL of config file that will replace running-config https: URL of config file that will replace running-config null: URL of config file that will replace running-config nvram: URL of config file that will replace running-config rcp: URL of config file that will replace running-config scp: URL of config file that will replace running-config system: URL of config file that will replace running-config tar: URL of config file that will replace running-config tftp: URL of config file that will replace running-config usbflash0: URL of config file that will replace running-config xmodem: URL of config file that will replace running-config ymodem: URL of config file that will replace running-configTFTP Router#configure replace tftp://10.10.10.10/router-1USB Router#configure replace usbflash0:router-1
  2. 1 балл
    Необходимо ограничить доступ к TFTP серверу на который сохраняются различные конфигурационные файлы. В моем случае на сервер ходят только маршрутизаторы со статическими ip адресами. Следовательно доступ органическим существам необходимо строго-настрого запретить. В Linux имеются два замечательных файла, названия которых говорят сами за себя: /etc/hosts.allow/etc/hosts.denyСинтаксис файлов: <служба или ALL>: <IP, имя хоста или подсеть>Я использую демона tftpd для организации TFTP сервера. Идем в /etc/hosts.allow и добавляем в конец файла секцию описывающую каким хостам разрешено работать с демоном: # --------------------------------------------------------------------------- # TFTP # --------------------------------------------------------------------------- # router 1 in.tftpd: 10.10.10.1 # router 2 in.tftpd: 10.10.10.2 # router 3 in.tftpd: 10.10.10.3 # router 4 in.tftpd: 10.10.10.4Теперь идем в /etc/hosts.deny и добавляем секцию в которой красуется короткая и лаконичная запись "ты кто такой давай до свидания": # --------------------------------------------------------------------------- # TFTP # --------------------------------------------------------------------------- in.tftpd: ALLЕстественно Вы можете указать любую службу: smtp, http, mysqld, sshd ... Spawn Позволяет выполнить код при наступление определенного события соответствующего правилам описанным выше. Добавим логирование событий чтобы знать о всех неудачных попытках подключения к TFTP серверу. Модифицируем /etc/hosts.deny # --------------------------------------------------------------------------- # TFTP # --------------------------------------------------------------------------- in.tftpd: ALL : spawn /bin/echo $(/bin/date +"%%d-%%m-%%y %%T") отказано в доступе %h>>/var/log/tftp.access.logМожно использовать следующие макросы: %a Адрес клиента%A Адрес сервера%c Информация о клиенте: user@host, user@address, имя хоста или просто адрес%d Имя демона/процесса%h Имя хоста клиента или адрес, если имя хоста недоступно%H Имя хоста сервера или адрес, если имя хоста недоступно%n Имя хоста клиента (либо 'unknown' или 'paranoid')%N Имя хоста сервера (либо 'unknown' или 'paranoid')%p Идентификатор процесса (PID)%s Информация о сервере: daemon@host, daemon@address или просто имя демона%u Имя пользователя клиента (или 'unknown')%% Одиночный символ '%'Теперь мы будем знать о всех неудачных попытках подключения к TFTP серверу. Полученный в итоге файл можно скормить Zabbix'у и сигнализировать при его изменении администратору сервера!
  3. 1 балл
    Еще один интересный вариант, это воспользоваться планировщиком задач. Любопытно, что CRON у CISCO называется KRON! Ну, Бог с ним, лишь бы работал. Делаем копию текущей конфигурации раз в день, в час ночи: cisco-test#configure terminal cisco-test(config)#kron policy-list put_config_tftp cisco-test(config-kron-policy)#cli show startup-config | redirect tftp://10.10.10.10/cisco-test-running-config cisco-test(config-kron-policy)#exit cisco-test(config)#kron occurrence daily at 1:00 recurring cisco-test(config-kron-occurrence)#policy-list put_config_tftp cisco-test(config-kron-occurrence)#^Z cisco-test#write
  4. 1 балл
    Речь пойдет о мониторинге источников бесперебойного питания, в моём случае SMART-UPS 5000 RM, по протоколу SNMP. Версия Zabbix 2.4. Использовать Ethernet для этих целей очень выгодно т.к это избавляет от лишнего звена в виде компьютера подключенного по COM или USB, но ИБП должен быть укомплектован сетевой платой Apc Network Management Card (NMC). У меня все прекрасно заработало на ИБП: SMART-UPS 1000\1500\5000\8000. Уверен, что все получится и с другими моделями. Доступное мне оборудование использует NMC: AP9617, AP9619, AP9631. И так, к делу. Первоначально необходимо произвести сброс настроек NMC. На лицевой стороне NMC есть еле заметное отверстие с красующейся надписью Reset. Ковырять там, разогнутой скрепкой, можно на работающем устройстве. Я использовал два вида кабелей COM to COM - ID 940-1524D USB to COM - ID 940-0272A Для подключения можно использовать как специализированный софт, так и обычный терминал. Я использовал PuTTY, что и Вам советую. Со скоростью поэкспериментируйте (у меня диалог с железкой завязался на 2400). После подключения жмем Enter и появляется запрос на авторизацию. По умолчанию логин и пароль: apc Настройка реализована в виде диалога с вариантами ответа как в дешевой квест-рпг игре. Пример начального квеста: Теперь продолжить настройку ИБП можно через Web интерфейс. Там все еще проще, описывать нет смысла, главное настройте SNMP COMMUNITY. Переходим к Zabbix. Для начала необходимо создать макрос {$SNMP_COMMUNITY} со значением SNMP COMMUNITY которое выставлено в настройках ИБП. Теперь необходимо пройти в Администрирование -> Общие -> Преобразование значений и импортировать список преобразований. Соответствующий файл есть в архиве. Без этих таблиц, во время импортирования шаблона вылетит ошибка и операция будет остановлена. Теперь можно импортировать сам шаблон, он как всегда, во вложении к данному посту. Что имеется на данные момент: Элемента данных Версия прошивки микропроцессора Верхний порог (V) для перехода на работу от батареи Время, прошедшее с момента как ИБП перешел на работу от батареи Входное максимальное зарегистрированное напряжение Входное минимальное зарегистрированное напряжение Входное напряжение Выходная потребляемая нагрузка в амперах Выходное напряжение Индикатор замены батареи Модель устройства Напряжение батареии Нижний порог (V) для перехода на работу от батареи Оставшееся время автономной работы Причина последнего перехода на работу от батареи Серийный номер микропроцессора Статус ONLINE\OFFLINE Статус батареи Текущая нагрузка Текущее состояние ИБП Температура батареи Температура внутри ИБП Уровень заряда батареи Частота входной линии Частота выходной линии Триггеры ИБП: Работает от батареи ИБП: батарея в аварийном состоянии ИБП: батарея разряжена ИБП: выключен или с ним нет связи по Ethernet ИБП: заряд батареи менее 25% ИБП: заряд батареи менее 50% ИБП: заряд батареи менее 75% ИБП: зафиксирован высокий скачек напряжения на входной линии ИБП: зафиксировано сильное падение напряжения на входной линии ИБП: нагрузка превысила 80% ИБП: нагрузка превысила 85% ИБП: нагрузка превысила 90% ИБП: нагрузка превысила 100% ИБП: необходимо заменить батарею ИБП: температура батареи превысила 40 градусов С Графики Входное и выходное напряжение Нагрузка (A, %) Оставшееся время автономной работы Состояние батареи Частота входной и выходной линии (Гц) Ниже добавлю несколько изображений с графиками, но для полноты данных они взяты уже не с 5000 серии, а с 1500. PS: Хочу добавить, что некоторые данные могут не поступать, например температура батареи. Это, как я понял, зависит от комплектации конкретного ИБП.
  5. 1 балл
    Мониторинг ИБП через USB с помощью пакета apcupsd. Все манипуляции производились на операционной системе Linux Ubuntu 13.10 и Zabbix 2.2 Установка проста до невозможности: sudo apt-get install apcupsdПосле установки погружаемся в конфиг: nano /etc/apcupsd/apcupsd.confПри беглом изучении файла выяснилось, что для базовой настройки достаточно изменить пару строк. Привожу пример опять же для USB: # Имя ИБП, может быть любым UPSNAME ups-name # Используемый кабель UPSCABLE usb # Тип подключения. UPSTYPE usb # Закомментируем строку указанную по умолчанию #DEVICE /dev/ttyS0 # Указываем как часто сохранять информацию в "статус-файл", по умолчанию 0 и говорит о том, что файл создан не будет STATTIME 30 # Куда сохранять информацию о статусе ИБП, оставляем по умолчанию, но путь до файла запомнили STATFILE /var/log/apcupsd.statusДалее необходимо организовать сбор и передачу данных на zabbix. Захламлять конфиг демона десятками UserParameter нет совершенно никакого желания. Душа просит эстетики и мы начинаем конструировать велосипед. Нам понадобится скрипт который будет посредником между zabbix агентом и apcupsd. Для подобных фокусов у меня имеется каталог "/usr/local/etc/scripts/". Создаем там файл "/usr/local/etc/scripts/apcupsd.status.sh" права 750 владелец root группа zabbix Сам скрипт. Сильно впечатлительным и отцам программирования придется пролить слезу: #!/bin/bash if [[ -z "$1" || -z "$2" ]]; then exit 1 fi if [ -s "$1" ]; then if [[ "$2" =~ DATE|VERSION|CABLE|DRIVER|UPSMODE|STARTTIME|MODEL|LASTXFER|STATFLAG|FIRMWARE|'END APC' ]]; then QUERY=`cat "$1" | grep -iw "$2" | cut -d':' -f 2,3,4,5 | head -n1` else QUERY=`cat "$1" | grep -iw "$2" | cut -d':' -f 2 | awk '{print \$1}'` fi if [ "$2" = "STATUS" ]; then if [[ "${QUERY}" = *ONLINE* ]]; then echo "1" else echo "0" fi else echo "${QUERY}" fi else exit 1 fiОбращаю внимание, что в файле "/var/log/apcupsd.status" используется разделитесь ":", в то время как этот же символ может фигурировать и в самих данных, что приведет к потери части строки. В довесок к этому, некоторые данные отдаются с описанием их единиц измерения, а нам необходимо передать в zabbix эти значения как INT или FLOAT т.к если получать их как STRING, то мы не сможем ими манипулировать в дальнейшем. Например использовать в собственных расчетах и формулах. В общем, для всех этих фильтраций мы используем cut, head и awk. Как обрабатывать тот или иной параметр задано в условии формирующем переменную QUERY. Параметр STATUS отдаёт нам значение имеющее тип STRING и не подходящее нам для использования в графиках или других расчетах. Из тех вариантов, что мы получаем, нас интересует только определение типа его работы (от сети или от аккумулятора), для этого мы преобразуем для zabbix STRING в INT и отдаём "1" (работа от сети) или "0" (работа от батареи). ВАЖНО: Я использовал не все параметры указанные в спецификации apcupsd. Для более подробной информации и добавлению нужных Вам данных стоит почитать тут http://www.apcupsd.org/manual/manual.html Велосипед готов. Идем в конфиг агента "/usr/local/etc/zabbix_agentd.conf" и добавляем в конце файла строку которая будет отвечать за сбор параметров у скрипта: UserParameter=ups[*],/usr/local/etc/scripts/apcupsd.status.sh "/var/log/apcupsd.status" "$1"Тут все просто: ups[*] - массив в котором будут храниться данные от ИБП и по совместительству являться ключами в zabbix/usr/local/etc/scripts/apcupsd.status.sh - путь до скрипта"/var/log/apcupsd.status" - путь до "статус-файла" apcupsd"$1" - запрашиваемый параметрПерезапускаем zabbix агент и идем добавлять шаблон для всей этой кухни. Сам шаблон описывать сильно не буду, а просто добавлю его к посту. PS: На данный момент я отказался от подключения через USB и использую только SNMP описанный в посте выше. Но данный вариант отлично подходит для ИБП без сетевого интерфейса. Можно легко представить ситуацию, что ИБП отвечает за работу автоматизированной станции где нибудь в малообитаемой местности и для доступа к нему используется Raspberry Pi с установленным Zabbix Agent'ом. Хм... дешево и сердито, учитывая стоимость "APC Network Management Card". template_APCUPSD.xml apcupsd.status.zip
×
×
  • Создать...