dorancemc.ansible_nagioscore
Nagios Core
部署 Nagios Core 的角色
要求
无
角色变量
对象在 YAML 文件中定义,并从模板转换为配置文件。
您可以在 default/main 文件夹中查看变量的更多详细信息。
每个操作系统定义的变量存储在 vars/ 文件夹中。
请替换 vars.yaml 文件中的默认值,并加密该文件。
要修改变量数据,请将 main 文件夹中的 nagios 文件夹复制到您的本地清单文件夹,最好是 group_vars/ 或 host_vars/ 文件夹中。
- 主机和服务
主机和服务可以在一个变量中定义,也可以按文件分别定义。
在 localhost.yaml 中,您会找到定义新主机的示例。
将 files/nagios 文件夹复制到您喜欢的位置。
您可以按主机创建文件以定义主机和服务。创建文件夹并更新变量以指示文件的路径位置。# nagios_hosts_path: inventory/nagios_hosts
在 inventory 文件夹中创建一个如下所示的文件:
_host:
host_name: 主机名 # 必填
address: 192.168.0.1 # 如果未定义,将用名称代替
alias: 服务器描述
use: template # 如果未定义,使用 nagios_host_template_default 作为默认模板
_services:
servicename: servicecommand!arguments # 使用 'nagios_service_template_default' 作为服务模板
servicename-other:
use: service_template
check_command: servicecommand!arguments!arguments # 语法: <command_name>!$ARG1$!$ARG2$
# 查看 commands.yaml 文件以验证 servicecommand 和参数
在 nagios_hostgroups
和 nagios_servicegroups
变量中定义主机组和服务组,
然后您可以添加主机和服务属于哪个组。
- 联系人
查看 contacts.yaml 以获取有关变量的更多详细信息。
要确保用户已从 httpasswd 文件中删除,请在联系人定义中添加数据 state: absent
,
该用户将从联系人定义和 htpasswd 文件中删除。
- 联系人组
联系人组是处理通知的最佳方式,创建联系人并加入组。
如果在主机上定义了 contact_group,则所有服务都将继承相同的联系人组,
或者您可以为每个服务定义一个联系人组。
依赖关系
无
示例剧本
定义您的 nagios 组并在此包含所有 nagios 服务器。
[nagios]
nagios.example.com ansible_host=192.168.243.220
在您的剧本默认中包含以下内容:
- hosts: nagios
roles:
- { role: dorancemc.ansible-nagioscore, tags: [ nagioscore ] }
运行您的剧本以应用此角色:
ansible-playbook --limit ubuntu playbook.yaml --tags nagioscore
如果您只想应用配置,您可以只应用 nagios_config
标签:
ansible-playbook --limit ubuntu playbook.yaml --tags nagios_config
Grafana
此部署支持与 Grafana 的集成。部署后,您可以手动安装 Grafana
并按照此说明完成集成。
https://support.nagios.com/kb/article/nagios-core-using-grafana-with-pnp4nagios-803.html#Grafana_Config
或者使用 Ansible 配方并配置这些变量以完成集成。
https://github.com/cloudalchemy/ansible-grafana
grafana_plugins:
- sni-pnp-datasource
grafana_datasources:
- name: PNP
type: sni-pnp-datasource
isDefault: true
access: proxy
url: 'http://127.0.0.1/pnp4nagios/'
basicAuth: false
许可证
BSD
作者信息
Dorance Martinez @dorancemc
ansible-galaxy install dorancemc.ansible_nagioscore