Поиск по блогу

29 апр. 2016 г.

Zabbix snmp builder (2.4.7)

Дано: устройство и MIB файл. Еще у нас есть zabbix и нам надо добавить это устройство в мониторинг. Можно взять готовый шаблон (если он есть), смотреть вывод snmpwalk или MIB-браузером и создавать итемы. Но добрые люди запилили snmp builder для zabbix.
Скачиваем zabbix-snmpbuilder, патчим zabbix, распаковываем картинки, удаляем лишнее.
Правим переменную пути для записи импортированных MIB (дать доступ вебсерверу):
$mibs_dir = '/usr/share/snmp/mibs';
Подключаемые MIB регулируем константой MIBS_ALL_PATH:
define('MIBS_ALL_PATH', "/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp");
Скачать нужные нам MIB; посмотреть каталоги для MIB по умолчанию:
aptitude install snmp snmp-mibs-downloader
download-mibs
net-snmp-config --default-mibdirs
Создаем шаблон, открываем SNMP Builder, выбираем шаблон, указывает snmp параметры (IP узла, версию SNMP, Community), выбираем MIB. Слева появится дерево доступных OID. Выбираем нужные OID , указываем параметры элементов данных и добавляем в шаблон.
Проверяем шаблон, добавляем группы и т.п. Юзаем.

26 апр. 2016 г.

Интернет в debian через proxy

Понадобилось одному серверу на Debian ползать в инет за обновлениями и т.п., а белых адресов и ната нет - прогоняем его через прокси.
  • Apt/aptitude. В файл /etc/apt/apt.conf.d/httpProxy добавим
Acquire::http::proxy "http://login:password@ip:port";
Acquire::https::proxy "http://login:password@ip:port";
Acquire::ftp::proxy "http://login:password@ip:port";
Acquire::socks::proxy "http://login:password@ip:port";
Acquire::::Proxy "true";
  • wget. В /etc/wgetrc добавим
http_proxy = http://login:password@ip:port
https_proxy = http://login:password@ip:port
ftp_proxy = http://login:password@ip:port
use_proxy = on
  • Остальные. В /etc/environment добавим (или в ~/.bashrc или выполним команды вручную)
export http_proxy="http://login:password@ip:port";
export https_proxy="http://login:password@ip:port";
export ftp_proxy="http://login:password@ip:port";

25 апр. 2016 г.

Про техподдержку

В этой серии я выскажу свое мнение о работе первой линии техподдержки. Техподдержки именно в технических компаниях, где есть и другие линии поддержки. В разных компания она работает по разному, думаю это не секрет.
Это происходит из-за особенностей работы мозга человека. При возникновении "технической неисправности" у клиента, сотрудник 1-й линии, а точнее его мозг ищет самый наименее затратный способ ее решить (экономия энергии любой ценой, долго думать энергетически не выгодно), не включая "осознание" данной неисправности. Он (мозг) просто помнит, что в поле зрения есть 2-я линия и решает идти к ним ногами и сообщить о неисправности. В этот момент он не включает "осознание" того, что, возможно, по данной неисправности есть готовые кейсы, что 2-я линия в данный момент занимается не менее важными задачами и что труд 2-й линии обычно стоит для компании дороже. Он просто дает команду идти. При этом дополнительно включается в работу "быстрая память" если такая беготня уже была и была успешной с точки зрения "передачи/решения неисправности".
А далее, при работе 2-й линии включаются уже следующие особенности работы мозга, защитные механизмы - острая потребность перекусить, смена внимания на второстепенные задачи и т.п., и сотрудник 2-й линии вылетает из "состояния потока" решения своей задачи.
В общем необходимо вернуть "проблему" назад на "медленное осмысление", чтобы мозг начал обрабатывать факты.
Предполагаемые способы решения проблемы:
  • Инструкции в виде блок-схем по распространенным неисправностям, что, куда, зачем и почему; под роспись.
  • Первая и 2-я линия техподдержки должны находиться в разных помещениях. Если это одно помещение - как минимум разграничение пространства, чтобы 1-я линия не могла при каждом обращении клиента бегать до 2-й линии (двери, перегородки).
  • БитьСанкции за обращения ко 2-й линии если при этом нет подробностей неисправности (в стиле у абонента что-то сломалось или "телефон не работает") и намека на "тикет" (т.е. обработка не по блок-схеме).
  • Абоненты не должны знать прямые номера 2-й линии и не могли просто так позвонить им напрямую (тут зависит от размера компании и количества клиентов). VIP-клиентов все равно фильтровать через ТП с пропуском выше.
Ну и хорошо проветриваемые помещения (угасание активности мозга при малом количестве кислорода), даже можно поставить датчики углекислого газа.

Посчитать размер файлов найденных find и др.

Необходимо примерно оценить количество и размер записей mixmonitor где не было ANSWER.
Количество файлов получаем так:
find . -size -5k  -type f | wc -l
А их суммарный размер как-то так:
find . -size -5k  -type f -exec du -b {} + | awk '{sum = sum+$1 }; END { print sum/1000000 "Мб" }'
Еще некоторые рецепты find из старых записей:
  • поиск файлов и изменение прав на них
find . -name "*.tar.bz2" -exec chmod 600 {} \;
  • переместить файлы после поиска
find . -mame "template" -type f -exec mv -t /path/to/folder/ {} \+
  • копировать найденные файлы
find . -name "*.log" -exec cp {} /path/to/folder/  \;

22 апр. 2016 г.

Обновление BGBilling с 5.1 до 6.2


  • Делаем бекап базы и файлов.
  • Добавляем новую конфигурацию сервера и модулей на основе старых: статусы договоров по модулям, дебетовые абонплаты.
  • Останавливаем сервер биллинга, планировщик, dataloader. Перемещаем старые файлы в сторонку.
  • Конвертируем движок в InnoDB, всех кроме  %log% (только за текущий месяц).
  • Конвертируем базу в UTF-8.
  • Загружаем jdk 1.8, новую версию activemq, BGBillingServer 6.2, правим data.properties, копируем новую лицензию и хранилище.
  • Тарифы: если у вас были тарифы с "элементами каталога" меняем в базе type=cat на catalog, к data добавляем folder&.
  • Обновляем ядро bg_installer.sh update_6.2.zip!.
  • Обновляем модули bg_installer.sh update.
  • Запускаем TaskConverter.
  • Запускаем сервер биллинга.
  • Загружаем клиент 6.2, добавляем -Dlocal.setting.file.name=config_v6 (и желательно -Dshared.client.distribution=1), запускаем,  ставим галочку "загружать обновления с этого сервера", подключаемся.
  • Проверяем договора, права пользователей, справочники, тарифы, параметры тарификации.
  • Загружаем BGRadiusVoip 6.2, распаковываем, правим настройки, обновляем через штатную update.sh, запускаем.
  • Делаем тестовые звонки, смотрим ошибки.
  • Радуемся.

20 апр. 2016 г.

Быстрая настройка voip-шлюзов по dhcp

Если вы предоставляете услуги телефонной связи или у вас много голосовых шлюзов вам в какой-то момент времени, возможно, надоест настраивать каждый шлюз руками. Эта заметка про быстрый начальный этап настройки.
При включении нового голосового шлюза или после сброса на WAN порту включен режим DHCP. Посмотрим wireshark что присылает голосовой шлюз (spa2102) dhcp-серверу:
Option 12 - Host Name: SipuraSPA
Option 60 - Vendor class identifier: LINKSYS SPA-2102
Option 61 - Client MAC address: CiscoLin_XX:XX:XX (00:0e:08:XX:XX:XX)
Cisco и Linksys сразу присылают нормальный Vendor class identifier.
Dlink делает это только после указания Hostname и Vendor Class ID на шлюзе.
Eltex TAU-2M.IP отличился больше всех, прислав [VENDOR:Eltex][DEVICE:TAU-2M.IP][HW:1.0][SN:VI39000XXX][WAN:A8:F9:4B:XX:XX:XX][LAN:02:20:80:XX:XX:XX][VERSION:1.13.0.119], но нормальный host-name "TAU-2M.IP".

Поднимем простенький dhcp-сервер (если у вас есть мега dhcp-сервер на всю сеть или с dhcp-relay'ми в сегментах, то все круто). Установим isc-dhcp-server и настроим INTERFACES="ethX" в файле /etc/default/isc-dhcp-server (или dpkg-reconfigure isc-dhcp-server).
Произведем базовую настройку, /etc/dhcp/dhcpd.conf:
class "spa2102" {
    match if (option vendor-class-identifier = "LINKSYS SPA-2102") or (substring(hardware, 1,3) = 00:0e:08);
}
subnet 192.168.0.0 netmask 255.255.255.0 {
    option domain-name "192.168.0.XXX";
    default-lease-time 1800;
    max-lease-time 1800;
    pool {
        allow members of "spa2102";
        range 192.168.0.XXX 192.168.0.XXX;
        option tftp-server-name "192.168.0.XXX";
    }
Пулы для других шлюзов/вендоров настроим по аналогии.

Установим стандартный tftpd-hpa сервер и настроим его, /etc/default/tftpd-hpa:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --verbose --verbosity 7"
В /srv/tftp/ закинем файл конфигурации spa2102.cfg, этого хватит чтобы быстренько настроить голосовой шлюз.
В следующих сериях можно написать небольшую систему управления конфигурациями с использованием provisioning.
А вообще, пользуйтесь ACS с TR-69.