icinga2/doc/3.06-groups.md

80 lines
2.0 KiB
Markdown

## <a id="groups"></a> Groups
Groups are used for combining hosts, services and users into
accessible configuration attributes and views in external (web)
interfaces.
Group membership is defined at the respective object itself. If
you have a hostgroup name `windows` for example, and want to assign
specific hosts to this group for later viewing the group on your
alert dashboard, first create the hostgroup:
object HostGroup "windows" {
display_name = "Windows Servers"
}
Then add your hosts to this hostgroup
object Host "mssql-srv1" {
groups = [ "windows" ],
macros = {
"mssql_port" = 1433
}
}
object Host "mssql-srv2" {
groups = [ "windows" ],
macros = {
"mssql_port" = 1433
}
}
> **Best Practice**
>
> Add the hostgroup membership into generic templates combined with
> other attributes and let all windows hosts inherit from that template.
> You can also define multiple group memberships.
template Host "windows-mssql-template" {
groups = [ "windows" ],
macros.mssql_port = 1433
}
}
object Host "mssql-srv1" {
import "windows-mssql-template"
}
object Host "mssql-srv2" {
import "windows-mssql-template"
}
This can be done for service and user groups the same way. Additionally
the user groups are associated as attributes in `Notification` objects.
object UserGroup "windows-mssql-admins" {
display_name = "Windows MSSQL Admins"
}
template User "generic-windows-mssql-users" {
groups = [ "windows-mssql-admins" ]
}
object User "win-mssql-noc" {
import "generic-windows-mssql-users",
macros.email = "noc@example.com"
}
object User "win-mssql-ops" {
import "generic-windows-mssql-users",
macros.email = "ops@example.com"
}
apply Service "ping4" {
import "generic-notification",
notification_command = "mail-notification",
user_groups = [ "windows-admins" ],
}