nagios
Ansible Роль: Nagios
Устанавливает Nagios, NRPE (как клиент, так и сервер) и автоматически настраивает Nagios на основе существующего списка хостов Ansible. Цель состоит в том, чтобы иметь полную систему мониторинга Nagios в одной роли Ansible и без излишней ручной конфигурации.
Предварительные условия
Убедитесь, что работает разрешение имен DNS или /etc/hosts. Например, вы можете выполнить ping на web3 по адресу web3.example.com. Рекомендуется наличие электронной почты, доступны варианты Exim, Postfix и другие.
Переменные роли
Все переменные в директории defaults/ могут быть переопределены или изменены.
Контакты/Пользователи:
Добавьте пользователей, которые должны иметь возможность входить в веб-интерфейс Nagios в переменной nagios_users:
nagios_users:
- user: nagiosadmin
pass: Password1change
email: nagiosadmin@example.com
Другой и лучший способ добавить контакты и администраторов Nagios - это переменная users, совместимая с https://github.com/mivok/ansible-users.
Этот плейбук будет искать пользователей в группе sysadmin, и они станут администраторами Nagios.
Создайте переменную users, хорошим местом для этого является group_vars/all. Вот пример.
users:
- username: foo
name: Foo Barrington
groups: ['sysadmin']
uid: 1001
ssh_key:- "ssh-rsa AAAAA.... foo@machine"
- "ssh-rsa AAAAB.... foo2@machine"
htpasswd: $apr1$SheSL4Et$xry6RljdWWvUVrh42s7OA0
nagios:
pager: "nagiosadmin_pager@example.com"
email: "nagiosadmin@example.com"
Откуда пришло значение htpasswd? Сгенерируйте htpasswd вручную, а затем вставьте его в users.
htpasswd -n mario
mario:$apr1$SheSL4Et$xry6RljdWWvUVrh42s7OA0
Вы должны настроить как минимум одного пользователя sysadmin, как было уже объяснено, иначе контакты Nagios не будут работать.
Команды Nagios:
Команды nagios находятся в переменной nagios_commands, см. defaults/main.yml. Вы можете добавить больше команд, добавив к переменной или переопределив её.
Сервисы Nagios:
Сервисы nagios в данный момент находится в "checks" для каждой группы хостов в nagios_host_groups, см. defaults/main.yml. Вы можете добавить больше сервисов, добавив к переменной или переопределив её. Проверки сервисов для каждого хоста обрабатываются аналогично в переменной nagios_hosts в defaults/main.yml.
Хосты Nagios:
Хосты Ansible в группе 'all' преобразуются в хосты, находящиеся под мониторингом Nagios. Конфигурация не требуется.
Группы хостов Nagios:
Группы Ansible преобразуются в группы хостов Nagios. Конфигурация не требуется.
Пропуск хостов и групп хостов
Следующие значения установлены в defaults/main.yml:
nagios_hosts_ignore: ""
nagios_groups_ignore: ""
Их можно переопределить, чтобы включить хосты или группы хостов, которые следует полностью пропустить. Примеры:
nagios_hosts_ignore:
- host1_skip_this_host
nagios_groups_ignore:
- hostgroup_dev_to_skip
- and_this_one
Это определяет, какие хосты сервер Nagios будет игнорировать/пропускать, потому что эти хосты будут исключены из конфигураций.
Также стоит учитывать, должен ли плейбук Ansible выполняться на всех серверах. В примерном плейбуке default.yml указано "- hosts: all", что устанавливает клиент Nagios на всех известных серверах. Вы можете настроить свой верхний плейбук и установить другую директиву "hosts: ". Однако, вероятно, нормально устанавливать клиент мониторинга на все сервера.
Пример плейбука
Смотрите default.yml в корне этой роли.
Чтобы установить клиент:
roles:
- { role: 'sdarwin.nagios', run_nagios_client: true }
Чтобы установить сервер:
roles:
- { role: 'sdarwin.nagios', run_nagios_server: true }
Добавьте серверы Nagios в группу monitoring-servers в инвентаре Ansible. Пример:
[monitoring-servers]
monitor.example.com
URL Nagios будет иметь следующий формат: http://monitor.example.com/nagios/
Лицензия
BSD
Информация об авторе
Автор: Сэм Дарвин, 2016. Основано на существующих ролях, смотрите файл ACKNOWLEDGEMENTS.md. Отзывы и сообщения об ошибках приветствуются.
ansible-galaxy install sdarwin/Ansible-Nagios