sdarwin.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.nagios