zabbix_screen – Create/update/delete Zabbix screens

Synopsis

  • This module allows you to create, modify and delete Zabbix screens and associated graph data.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6

  • zabbix-api >= 0.5.4

Parameters

Parameter Choices/Defaults Comments
http_login_password
string
Basic Auth password
http_login_user
string / required
Basic Auth login
login_password
string / required
Zabbix user password.
login_user
string / required
Zabbix user name.
screens
list / elements=dictionary / required
List of screens to be created/updated/deleted (see example).
graph_height
integer
Graph height will be set in graph settings.
graph_names
list / elements=string
Graph names will be added to a screen. Case insensitive.
Required if state=present.
graph_width
integer
Graph width will be set in graph settings.
graphs_in_row
integer
Default:
3
Limit columns of a screen and make multiple rows.
host_group
string
Host group will be used for searching hosts.
Required if state=present.
screen_name
string / required
Screen name will be used.
If a screen has already been added, the screen name won't be updated.
sort
boolean
    Choices:
  • no ←
  • yes
Sort hosts alphabetically.
If there are numbers in hostnames, leading zero should be used.
state
string
    Choices:
  • absent
  • present ←
present - Create a screen if it doesn't exist. If the screen already exists, the screen will be updated as needed.
absent - If a screen exists, the screen will be deleted.
server_url
string / required
URL of Zabbix server, with protocol (http or https). url is an alias for server_url.

aliases: url
timeout
integer
Default:
10
The timeout of API request (seconds).
validate_certs
boolean
added in 2.5
    Choices:
  • no
  • yes ←
If set to False, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.

Notes

Note

  • Too many concurrent updates to the same screen may cause Zabbix to return errors, see examples for a workaround if needed.

  • If you use login_password=zabbix, the word “zabbix” is replaced by “****” in all module output, because login_password uses no_log. See this FAQ for more information.

Examples

# Create/update a screen.
- name: Create a new screen or update an existing screen's items 5 in a row
  local_action:
    module: zabbix_screen
    server_url: http://monitor.example.com
    login_user: username
    login_password: password
    screens:
      - screen_name: ExampleScreen1
        host_group: Example group1
        state: present
        graph_names:
          - Example graph1
          - Example graph2
        graph_width: 200
        graph_height: 100
        graphs_in_row: 5

# Create/update multi-screen
- name: Create two of new screens or update the existing screens' items
  local_action:
    module: zabbix_screen
    server_url: http://monitor.example.com
    login_user: username
    login_password: password
    screens:
      - screen_name: ExampleScreen1
        host_group: Example group1
        state: present
        graph_names:
          - Example graph1
          - Example graph2
        graph_width: 200
        graph_height: 100
      - screen_name: ExampleScreen2
        host_group: Example group2
        state: present
        graph_names:
          - Example graph1
          - Example graph2
        graph_width: 200
        graph_height: 100

# Limit the Zabbix screen creations to one host since Zabbix can return an error when doing concurrent updates
- name: Create a new screen or update an existing screen's items
  local_action:
    module: zabbix_screen
    server_url: http://monitor.example.com
    login_user: username
    login_password: password
    state: present
    screens:
      - screen_name: ExampleScreen
        host_group: Example group
        state: present
        graph_names:
          - Example graph1
          - Example graph2
        graph_width: 200
        graph_height: 100
  when: inventory_hostname==groups['group_name'][0]

Status

Authors

  • Cove (@cove)

  • Tony Minfei Ding (!UNKNOWN)

  • Harrison Gu (@harrisongu)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.