Zimbra App AndreyNasonov

Zimbra — открытый программный продукт для автоматизации и упрощения совместной деятельности. Почтовый сервер, протоколы POP/POPS и IMAP/IMAPS
Фильтрация спама и антивирусная проверка почты при помощи ClamAV
сервис мгновенного обмена сообщениями (Jabber),
Календарь с возможностью планирования событий, систему управления контактами,
систему обмена документами с полноценным WYSIWYG редактором Zimbra Document. И множество других функций и задач.
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Zimbra App AndreyNasonov

Сообщение Артём Мамзиков »

Рекомендую посмотреть более обширный шаблон Шаблон Zimbra-zabbix

Оригинал шаблона взят с zabbix-zimbra-monitoring от 10 May 2016

Далее был переведен и немного переделан

Скачать
github-andreynasonov-zimbra-zabbix 10 May 2016.zip
github-andreynasonov-zimbra-zabbix 10 May 2016.zip
(6.61 КБ) 4 скачивания
Данные о работе служб получаем из файла лога
tail -n 1000 /var/log/zimbra-stats.log | grep STATUS | cut -d ':' -f 10 | sort | uniq
Шаблон Zimbra App andreynasonov
Шаблон Zimbra App andreynasonov
Группа элементов данных: Статус сервисов Zimbra

Правила обнаружения
Имя: Zimbra service discovery
Тип: Zabbix agent
Ключ: zimbra.discoverya
Интервал обновления: 3600
Zimbra service discovery
Zimbra service discovery
Прототипы элементов данных
Имя: {#ZIMBRASERVICE} Статус
Тип: Zabbix agent
Ключ: zimbra.statusa[{#ZIMBRASERVICE}]
Тип информации: Числовой (целое положительное)
Интервал обновления: 120
Отображение значения: Service state
Группа: Статус сервисов Zimbra
Создать активированным: V
Прототип ZIMBRASERVICE Статус
Прототип ZIMBRASERVICE Статус
Прототипы триггеров
Имя: Служба Zimbra ({#ZIMBRASERVICE}) не работает на {HOSTNAME}
Важность: Средняя
Выражение: {Zimbra App andreynasonov:zimbra.statusa[{#ZIMBRASERVICE}].last(0)}=0
Прототип Триггера Служба Zimbra ZIMBRASERVICE не работает
Прототип Триггера Служба Zimbra ZIMBRASERVICE не работает
Скрипт zimbra_monitoring.sh
zimbra_monitoring.sh
Показать
#!/bin/bash

# Сравниваем что входные не пустые выполняем скрипт далее, -z строка "пустая", т.е. имеет нулевую длину, если пусто выходим
if [[ -z "$1" ]]; then
exit 1
fi

# Переменные
zimbra_log_file="/var/log/zimbra-stats.log"
zimbra_discovery="$(tail -n 1000 /var/log/zimbra-stats.log | grep STATUS | cut -d ':' -f 10 | sort | uniq)"

# При входном discovery обнаруживаем службы, входные имена служб если пустые входные данные выходим, если имя службы есть подставляем в команду, если служба Running передает 1 если нет 0
case "$1" in
discovery)
echo -n '{"data":['
for service in $zimbra_discovery; do
echo -n "{\"{#ZIMBRASERVICE}\": \"$service\"},";
done |sed -e 's:\},$:\}:'
echo -n ']}'
exit 0;
;;
*)
if [ $1 = "" ]; then
echo "ОШИБКА: требуется аргумент"
exit 1
fi

state="$(/usr/bin/tail -n 1000 $zimbra_log_file | grep STATUS | grep $1 | tail -1 | cut -d ':' -f 11|sed -e 's/^ *//')"

if [ "$state" != "Running" ]; then
echo 0
else
echo 1
fi
;;
esac

exit 0;
Копируем скрипт на наблюдаемый хост
Скрипты.jpg
Скрипты.jpg
я сразу прописал пользовательские параметры в конфигурации заббикс агента
UserParameter=zimbra.statusa[*],/usr/local/bin/zimbra_monitoring.sh "$1"
UserParameter=zimbra.discoverya,/usr/local/bin/zimbra_monitoring.sh discovery
Конфигурация заб агент на скрипты от root
Конфигурация заб агент на скрипты от root
У автора данные команды лежат в userparameter_zimbra_monitoring.conf , а затем включите в файл конфигурации агента zabbix ("Include=/etc/zabbix/zabbix_agentd.d/").

после делаем рестарт агента

После цепляем шаблон к узлу все должно заработать.
Инструкция автора
Показать
# zabbix-zimbra-мониторинг
Мониторинг состояний служб Zimbra с помощью zabbix.

####файлы в репозитории:
1)zbx_zimbra_template.xml - шаблон для мониторинга zimbra. Импорт на сервере zabbix.

2)zabbix-read-logs.te - модуль для selinux (если включен режим selinux). Разрешить агенту zabbix читать файлы журнала zimbra. Если заббикс агент работает от root пункт можно поропустить
Установите с помощью команды
"checkmodule -M -m -o zabbix-read-logs.mod zabbix-read-logs.te && semodule_package -m zabbix-read-logs.mod -o zabbix-read-logs.pp && semodule -i zabbix-read-logs.pp"

3)userparameter_zimbra_monitoring.conf - Конфигурация с настройками пользовательских параметров.
Поместите его в каталог /etc/zabbix/zabbix_agentd.d/ (или что-то в этом роде), а затем включите в файл конфигурации агента zabbix ("Include=/etc/zabbix/zabbix_agentd.d/").

Или копируем скрипт zimbra_monitoring.sh в /etc/zabbix/scripts/ (возможно нужно будет дать права на выполнение chmod 777 zimbra_monitoring.sh)
прописать в конфигурации заббикс агента для пути со скриптом /etc/zabbix/scripts/
UserParameter=zimbra.statusa[*],/etc/zabbix/scripts/zimbra_monitoring.sh "$1"
UserParameter=zimbra.discoverya,/etc/zabbix/scripts/zimbra_monitoring.sh discovery

После выполнить перезапуск заббикс агента

4)zimbra_monitoring.sh - сценарий мониторинга. Поместите в каталог скриптов мониторинга zabbix (в моем случае это "/etc/zabbix/scripts/")
Команды проверки
Показать
tail -n 1000 /var/log/zimbra-stats.log | grep STATUS | cut -d ':' -f 10 | sort | uniq
Ответ
amavis
antispam
antivirus
cbpolicyd
ldap
logger
mailbox
memcached
mta
opendkim
service
snmp
stats
zimbra
zimbraAdmin
zimlet
zmconfigd

su - zimbra -c "/opt/zimbra/bin/zmcontrol status"| grep -v ^Host | awk '{$(NF--)=""; print}' | sed 's/^/\t{ \"{#ZIMBRASERVICE}\":\"/' | sed 's/\ $/\" },/'

su - zimbra -c "/opt/zimbra/bin/zmcontrol status"
Host csv35.ru
amavis Running
antispam Running
antivirus Running
cbpolicyd Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
service webapp Running
snmp Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running+


Через скрипт
/etc/zabbix/scripts/zimbra_monitoring.sh discovery
Ответ
{"data":[{"{#ZIMBRASERVICE}": "amavis"},{"{#ZIMBRASERVICE}": "antispam"},{"{#ZIMBRASERVICE}": "antivirus"},{"{#ZIMBRASERVICE}": "cbpolicyd"},{"{#ZIMBRASERVICE}": "ldap"},{"{#ZIMBRASERVICE}": "logger"},{"{#ZIMBRASERVICE}": "mailbox"},{"{#ZIMBRASERVICE}": "memcached"},{"{#ZIMBRASERVICE}": "mta"},{"{#ZIMBRASERVICE}": "opendkim"},{"{#ZIMBRASERVICE}": "service"},{"{#ZIMBRASERVICE}": "snmp"},{"{#ZIMBRASERVICE}": "stats"},{"{#ZIMBRASERVICE}": "zimbra"},{"{#ZIMBRASERVICE}": "zimbraAdmin"},{"{#ZIMBRASERVICE}": "zimlet"},{"{#ZIMBRASERVICE}": "zmconfigd"}]}root@csv35:/etc/zabbix/scripts# /etc/zabbix/scripts/zimbra_monitoring.sh

Статутс служб
/usr/bin/tail -n 1000 /var/log/zimbra-stats.log | grep STATUS | grep Имя службы | tail -1 | cut -d ':' -f 11|sed -e 's/^ *//'
Пример zmconfigd
/usr/bin/tail -n 1000 /var/log/zimbra-stats.log | grep STATUS | grep zmconfigd | tail -1 | cut -d ':' -f 11|sed -e 's/^ *//'
Ответ Running
/etc/zabbix/scripts/zimbra_monitoring.sh zmconfigd
Ответ 1
количество слов: 550

Вернуться в «Zimbra»