Ох уж этот Zabbix
Решил я пересмотреть свое хозяйство серверное, и понять, что же я могу сделать для него хорошего.
А самое лучшее для сервера что ? – чтобы чуствовал он себя хорошо
Существует великое множество инструментов для мониторинга, я решил начать с Zabbix.
Я не сильно заморачивался с установкой, ограничевшись установкой пакетов.
Установив zabbix-server на сервере, и zabbix-agent на клиенте, я начал свои дьявольские игрища.
Немного о клиенте. Клиент является сервером проекта IPVoice . Обслуживающий GSM шлюзы.
Для справки – проект IPVoice ( http://ipvoice.com.ua) предоставляет в аренду миниАТС , и GSM порты по очень смешным ценам, но качество старается держать на высоте, собственно поэтому мониторинг и нужен.
Мне было интересно мониторить 3 параметра -
- Жив ли сервер.
- Поднят ли на сервере весь нужный софт
- Текущее количество звонков через GSM каналы для мониторинга нагрузки.
Тут то и началось веселье.
Для начала пришлось настроить клиента, ничего сложного, но на подкорке валялась мысль, что все уже было настроено из пакетов, а не тут то было. Параметры в конфиге понятные, поэтому заморачиваться не буду.
А вот на настройе параметров мониторинга произошла загвоздочка. Для мониторинга сервера нам нужно запускать скрипт от суперпользователя, а скрипт запускается от имени пользователя Zabbix.Дада, для этого есть sudo, но
zabbix ALL=NOPASSWD:/usr/sbin/asterisk
Даже эта строчка есть в /etc/sudoers, но ничего не работает вс рав но ((((
Оказалось, что SUDO поменял свое поведение, и чтобы вернуть все как было, нужно еще добавить строку
Defaults visiblepw
Для справки, новый стиль поведения заключался в том, что sudo требовался терминала, либо ввода пароля , но ни того ни другого у нас не было, ведь мы вызывали скрипт из фона
После этого у меня появилась уникальная возможность , и я смогу получить параметры добавив пару строк в файлик /etc/zabbix/zabbix_agentd.conf
UserParameter=active.calls,sudo /usr/sbin/asterisk -rvvvvvx ‘core show channels’|grep –text -i ‘active call’|awk ‘{print $1}’
И теперь могу видеть количество активных звонков, чего я и хотел
Собственно проверка на то, жив ли сервер делается строкой
UserParameter=asterisk.alive,ps aux | grep asterisk | wc -l
А проверка поднята ли железка просто пингом
Вот и все покачто