Change-Id: I80819413759b4ffdda75a87beddc5dab1adc6bd3
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:
Create a new media type [Administration > 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}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: EnabledNote: Default
rabbit_user/rabbit_pass
for devstack rabbitmq isstackrabbit/secret
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 NotificationsDefault 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
- 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
- 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
- Create
/etc/vitrage/zabbix_conf.yaml
with this content
zabbix: - zabbix_host: Zabbix server type: nova.host name: Zabbix server
- Restart vitrage service in devstack/openstack