sdarwin.nagios
Ansible 角色:Nagios
安装 Nagios、NRPE(包括客户端和服务器),并根据 Ansible 现有的主机清单自动配置 Nagios。目标是通过一个完整的 Ansible 角色来实现 Nagios 监控系统,而不需要过多的手动配置。
前提条件
确保 DNS 或 /etc/hosts 名称解析正常。例如,能够 ping 通 web3@web3.example.com。建议配置电子邮件,选择 Exim、Postfix 等。
角色变量
defaults/ 目录中的所有变量都可以被覆盖或更改。
联系人/用户:
在 nagios_users 变量中添加允许登录 Nagios 网页管理界面的用户:
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 服务目前在 nagios_host_groups 的“检查”中,查看 defaults/main.yml。您可以通过添加或覆盖该变量来添加更多服务。每个主机的服务检查在 defaults/main.yml 中的 nagios_hosts 变量中以类似方式处理。
Nagios 主机:
“all” 组中的 Ansible 主机会自动转换为 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 服务器添加到 Ansible 清单的 monitoring-servers 组中。示例:
[monitoring-servers]
monitor.example.com
Nagios 的 URL 格式为: http://monitor.example.com/nagios/
许可证
BSD
作者信息
由 Sam Darwin 编写,2016年。基于现有角色,参见 ACKNOWLEDGEMENTS.md 文件。欢迎反馈和 Bug 报告。
ansible-galaxy install sdarwin.nagios