vitrage/doc/source/zabbix_vitrage.rst
Tovin Seven 184d885eed Clarify zabbix with vitrage installation guide
- Add notice about docker image
- Add notice to install oslo.messaging, oslo.config
- Hint about default devstack rabbitmq username and password
- Correct the order of zabbix configure action
- Add url to create triggers in zabbix
- Add vitrage configuration section for zabbix
    + Data sources in vitrage.conf
    + Zabbix section in vitrage.conf
    + Mapping resource name and resource type in zabbix_conf.yaml

Change-Id: I1d1ffcdf1f8cbdd9c57e0f92eb08c866533e1517
2016-10-20 02:53:18 +00:00

3.5 KiB

Zabbix-Vitrage Gateway

Consolidate Zabbix alerts from across multiple sites into a single "at-a-glance" console by using a custom Zabbix [alertscript](https://www.zabbix.com/documentation/3.0/manual/config/notifications/media/script).

Installation

Note: Don't try to use zabbix with docker image to test, because zabbix_vitrage.py require some openstack libraries (oslo.messaging and oslo.config).

Copy the zabbix_vitrage.py script into the Zabbix servers' AlertScriptsPath directory which is by default /usr/lib/zabbix/alertscripts and make it executable:

$ wget https://raw.githubusercontent.com/openstack/vitrage/master/vitrage/datasources/zabbix/auxiliary/zabbix_vitrage.py
$ cp zabbix_vitrage.py /usr/lib/zabbix/alertscripts/
$ chmod 755 /usr/lib/zabbix/alertscripts/zabbix_vitrage.py

Install oslo.messaging and oslo.config to zabbix host (may require root):

$ pip install oslo.messaging oslo.config

Zabbix web ui configuration

To forward zabbix events to Vitrage a new media script needs to be created and associated with a user. Follow the steps below as a Zabbix Admin user:

  1. Create a new media type [Admininstration > Media Types > Create Media Type]

    Name: Vitrage Notifications
    Type: Script
    Script name: zabbix_vitrage.py
    Script parameters:
       1st line: {ALERT.SENDTO}
       2nd line: {ALERT.SUBJECT}
       3rd line: {ALERT.MESSAGE}
  2. Modify the Media for the Admin user [Administration > Users]

    Type: vitrage Notifications
    Send to: rabbit://rabbit_user:rabbit_pass@127.0.0.1:5672/ <--- Vitrage message bus url
    When active: 1-7,00:00-24:00
    Use if severity: tick all options
    Status: Enabled

    Note: Default rabbit_user/rabbit_pass for devstack rabbitmq is stackrabbit/secret

  3. Configure Action [Configuration > Actions > Create Action > Action]

    Name: Forward to Vitrage
    Default Subject: {TRIGGER.STATUS}
    Add an operation:
      Send to Users: Admin
      Send only to: Vitrage Notifications
    Default Message:
      host={HOST.NAME1}
      hostid={HOST.ID1}
      hostip={HOST.IP1}
      triggerid={TRIGGER.ID}
      description={TRIGGER.NAME}
      rawtext={TRIGGER.NAME.ORIG}
      expression={TRIGGER.EXPRESSION}
      value={TRIGGER.VALUE}
      priority={TRIGGER.NSEVERITY}
      lastchange={EVENT.DATE} {EVENT.TIME}
    To send events add under the Conditions tab:
      (A) Maintenance status not in maintenance

For a full list of trigger macros see https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location

To test zabbix events and vitrage alarms, please see zabbix trgger documentation: https://www.zabbix.com/documentation/3.2/manual/config/triggers/trigger

Vitrage configuration

  1. Add zabbix to list of datasources in /etc/vitrage/vitrage.conf
[datasources]
types = zabbix,nova.host,nova.instance,nova.zone,static_physical,aodh,cinder.volume,neutron.network,neutron.port,heat.stack
  1. Add following section to /etc/vitrage/vitrage.conf
[zabbix]
url = http://135.248.18.30  # URL to zabbix
password = zabbix
user = admin
config_file = /etc/vitrage/zabbix_conf.yaml
  1. Create /etc/vitrage/zabbix_conf.yaml with this content

zabbix: - zabbix_host: Zabbix server type: nova.host name: Zabbix server

  1. Restart vitrage service in devstack/openstack

DONE