vitrage/doc/source/zabbix_vitrage.rst
Tovin Seven e2b21d516d Beautify, correct URLs in documentation files
- Beautify, re-indent, format code in a lot of doc files
- Use relative URLs instead of absolute github URLs
- Some absolute github urls are not corrected yet:
    + URL for enabling vitrage in devstack
    + URL for enabling vitrage in horizon
- Update year number in doc/source/config.py from 2013 to 2016

My thought: We should have a blueprint
    to create more concise and easy to access like other project
    (nova: http://docs.openstack.org/developer/nova/).
    Currently, that site for vitrage has not existed yet.

Notes: Change github URLs to relative URLs
    (or absolute URLs in docs.openstack.org/developers)
    will not work correctly
    if we do not have official documentation site.
    Hence, other people cannot follow the link to html page
    if they read vitrage documentation in github mirror.

Change-Id: Ifff8355c7e5291f68a7592d1617644053d790d5e
2016-11-18 04:34:55 +00:00

3.6 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 requires 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 trigger 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://<ip>/zabbix  # 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