salt.modules.zabbix module

Support for Zabbix

configuration:

This module is not usable until the zabbix user and zabbix password are specified either in a pillar or in the minion's config file. Zabbix url should be also specified.

For example:

zabbix.user: Admin
zabbix.password: mypassword
zabbix.url: http://127.0.0.1/zabbix/api_jsonrpc.php

Connection arguments from the minion config file can be overridden on the CLI by using arguments with _connection_ prefix.

For example:

zabbix.apiinfo_version _connection_user=Admin _connection_password=zabbix _connection_url=http://host/zabbix/
codeauthor:

Jiri Kotlin <jiri.kotlin@ultimum.io>

salt.modules.zabbix.apiinfo_version(**connection_args)

Retrieve the version of the Zabbix API.

Args:
optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
On success string with Zabbix API version, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.apiinfo_version
salt.modules.zabbix.host_create(host, groups, interfaces, **connection_args)

Create new host.

Args:

host: technical name of the host groups: groupids of host groups to add the host to interfaces: interfaces to be created for the host

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

visible_name: string with visible name of the host, use 'visible_name' instead of 'name' parameter
to not mess with value supplied from Salt sls file.

all standard host properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/object#host

Returns:
ID of the created host, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_create technicalname 4 interfaces='{type: 1, main: 1, useip: 1, ip: "192.168.3.1", dns: "", port: 10050}' visible_name='Host Visible Name'
salt.modules.zabbix.host_delete(hostids, **connection_args)

Delete hosts.

Args:

hostids: Hosts (hostids) to delete.

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the deleted hosts, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_delete 10106
salt.modules.zabbix.host_exists(host=None, hostid=None, name=None, node=None, nodeids=None, **connection_args)

Checks if at least one host that matches the given filter criteria exists.

Args:

host: technical name of the host hostids: Hosts (hostids) to delete. name: visible name of the host node: name of the node the hosts must belong to (zabbix API < 2.4) nodeids: IDs of the node the hosts must belong to (zabbix API < 2.4)

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the deleted hosts, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_exists 'Zabbix server'
salt.modules.zabbix.host_get(host=None, name=None, hostids=None, **connection_args)

Retrieve hosts according to the given parameters.

Args:

host: technical name of the host name: visible name of the host hostids: ids of the hosts

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all optional host.get parameters: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/get

Returns:
Array with convenient hosts details, False if no host found or on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_get 'Zabbix server'
salt.modules.zabbix.host_list(**connection_args)

Retrieve all hosts.

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
Array with details about hosts, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_list
salt.modules.zabbix.host_update(hostid, **connection_args)

Update existing hosts.

Args:

hostid: ID of the host to update

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

visible_name: string with visible name of the host, use 'visible_name' instead of 'name' parameter
to not mess with value supplied from Salt sls file.

all standard host and host.update properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/update https://www.zabbix.com/documentation/2.4/manual/api/reference/host/object#host

Returns:
ID of the updated host, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.host_update 10084 name='Zabbix server2'
salt.modules.zabbix.hostgroup_create(name, **connection_args)

Create a host group.

Args:

name: name of the host group

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard host group properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/hostgroup/object#host_group

Returns:
ID of the created host group, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_create MyNewGroup
salt.modules.zabbix.hostgroup_delete(hostgroupids, **connection_args)

Delete the host group.

Args:

hostgroupids: IDs of the host groups to delete

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
ID of the deleted host groups, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_delete 23
salt.modules.zabbix.hostgroup_exists(name=None, groupid=None, node=None, nodeids=None, **connection_args)

Checks if at least one host group that matches the given filter criteria exists.

Args:

name: names of the host groups groupid: host group IDs node: name of the node the host groups must belong to (zabbix API < 2.4) nodeids: IDs of the nodes the host groups must belong to (zabbix API < 2.4)

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
True if at least one host group exists, False if not or on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_exists MyNewGroup
salt.modules.zabbix.hostgroup_get(name=None, groupids=None, **connection_args)

Retrieve host groups according to the given parameters.

Args:

name: names of the host groups groupid: host group IDs node: name of the node the host groups must belong to nodeids: IDs of the nodes the host groups must belong to

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard hostgroup.get properities: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.2/manual/api/reference/hostgroup/get

Returns:
Array with host groups details, False if no convenient host group found or on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_get MyNewGroup
salt.modules.zabbix.hostgroup_list(**connection_args)

Retrieve all host groups.

Args:
optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
Array with details about host groups, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_list
salt.modules.zabbix.hostgroup_update(groupid, name=None, **connection_args)

Update existing hosts group.

Args:

groupid: ID of the host group to update name: name of the host group

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard host group properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/hostgroup/object#host_group

Returns:
IDs of updated host groups, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.hostgroup_update 24 name='Renamed Name'
salt.modules.zabbix.user_addmedia(users, medias, **connection_args)

Add new media to multiple users.

Args:

users: Users (userids) to add the media to. madias: media to create for the given users

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the created media, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_addmedia 16 medias='{mediatypeid: 1, sendto: "support@example.com", active: 0, severity: 63, period: "1-7,00:00-24:00"}'
salt.modules.zabbix.user_create(alias, passwd, usrgrps, **connection_args)

Create new zabbix user.

Args:

alias: user alias passwd: user's password usrgrps: user groups to add the user to

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

firstname: string with firstname of the user, use 'firstname' instead of 'name' parameter to not mess
with value supplied from Salt sls file.

all standard user properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.0/manual/appendix/api/user/definitions#user

Returns:
On success string with id of the created user, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_create james password007 '[7, 12]' firstname='James Bond'
salt.modules.zabbix.user_delete(users, **connection_args)

Delete zabbix users.

Args:

users: array of users (userids) to delete

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
On success array with userids of deleted users, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_delete 15
salt.modules.zabbix.user_deletemedia(mediaids, **connection_args)

Delete media by id.

Args:

mediaids: IDs of the media to delete

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the deleted media, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_deletemedia 27
salt.modules.zabbix.user_exists(alias, **connection_args)

Checks if user with given alias exists.

Args:

alias: user alias

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
True if user exists, else False.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_exists james
salt.modules.zabbix.user_get(alias=None, userids=None, **connection_args)

Retrieve users according to the given parameters.

Args:

alias: user alias userids: return only users with the given IDs

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
Array with details of convenient users, False on failure of if no user found.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_get james
salt.modules.zabbix.user_list(**connection_args)

Retrieve all of the configured users.

Args:
optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
Array with user details, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_list
salt.modules.zabbix.user_update(userid, **connection_args)

Update existing users.

Args:

userid: id of the user to update

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard user properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.0/manual/appendix/api/user/definitions#user

Returns:
Id of the updated user, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_update 16 visible_name='James Brown'
salt.modules.zabbix.user_updatemedia(users, medias, **connection_args)

Update media for multiple users.

Args:

users: Users (userids) to update. madias: Media to replace existing media. If a media has the mediaid property defined it will be updated,

otherwise a new media will be created.
optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the updated users, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.user_updatemedia 17 medias='{mediaid: 24, mediatypeid: 1, sendto: "support_new@example.com", active: 0, severity: 63, period: "1-7,00:00-24:00"}'
salt.modules.zabbix.usergroup_create(name, **connection_args)

Create new user group.

Args:

name: name of the user group

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard user group properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.0/manual/appendix/api/usergroup/definitions#user_group

Returns:
IDs of the created user groups, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_create GroupName
salt.modules.zabbix.usergroup_delete(usergroupids, **connection_args)

Delete user groups by id.

Args:

usergroupids: IDs of the user groups to delete

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
IDs of the deleted user groups, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_delete 28
salt.modules.zabbix.usergroup_exists(name=None, node=None, nodeids=None, **connection_args)

Checks if at least one user group that matches the given filter criteria exists

Args:

name: names of the user groups node: name of the node the user groups must belong to (This will override the nodeids parameter.) nodeids: IDs of the nodes the user groups must belong to

optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
True if at least one user group that matches the given filter criteria exists, else False.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_exists Guests
salt.modules.zabbix.usergroup_get(name=None, usrgrpids=None, **connection_args)

Retrieve user groups according to the given parameters.

Args:

name: names of the user groups usrgrpids: return only user groups with the given IDs

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all usergroup_get properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/usergroup/get

Returns:
Array with convenient user groups details, False if no user group found or on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_get Guests
salt.modules.zabbix.usergroup_list(**connection_args)

Retrieve all enabled user groups.

Args:
optional connection_args:
_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)
Returns:
Array with enabled user groups details, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_list
salt.modules.zabbix.usergroup_update(usrgrpid, **connection_args)

Update existing user group.

Args:

usrgrpid: ID of the user group to update.

optional connection_args:

_connection_user: zabbix user (can also be set in opts or pillar, see module's docstring) _connection_password: zabbix password (can also be set in opts or pillar, see module's docstring) _connection_url: url of zabbix frontend (can also be set in opts or pillar, see module's docstring)

all standard user group properties: keyword argument names differ depending on your zabbix version, see:

https://www.zabbix.com/documentation/2.4/manual/api/reference/usergroup/object#user_group

Returns:
IDs of the updated user group, False on failure.

CLI Example: .. code-block:: bash

salt '*' zabbix.usergroup_update 8 name=guestsRenamed