Table of Contents
Agent installation
Download the zabbix agent zip file on the VMS box.
Create a directory for Zabbbix agent, for example
$ create/dir dsa0:[zabbbixagt]
Extract the files from the downloaded .zip into the newly created directory
$ set default dsa0:[zabbbixagt] $ unzip dev:[dir]vms_agent_zabbix.zip
should give
Archive: dev:[dir]vms_agent_zabbix.zip;1 inflating: zabbix_agent_IA64.EXE inflating: zabbix_sender_IA64.EXE inflating: zabbix_sender_shr32.exe inflating: README inflating: ZABBIX_AGENT_STARTUP.COM inflating: zabbix_discover.com inflating: ZABBIX_STARTUP.COM inflating: PAGEF.COM inflating: freeheaders.com inflating: indexfmap.com inflating: zabbix_logicals.template creating: [.log] creating: [.scripts] creating: [.local] $
Copy the zabbix_logicals.template as a.com file
$ copy zabbix_logicals.template .com
Edit it and update it if needed. At least update line
$ define/system/nolog zabbix_server localhost !! "my.zabbix.server" !! or "123.123.123.123"
Launch it, so that the logicals names for zabbix are defined
$ @zabbix_logicals
The logical name table ZABBIX_TABLE_MON is created,
Then launch the zabbix_discover.com
$ @zabbix_discover
This will create JSON files in zabbix_def_dir: with definition for your specific environment (disks, network interfaces,batch and print queues…)
Example
$ @zabbix_discover ZABBIX_DEF_DIR:ZABBIX_SHAD_DISKS_DISCOVERY.JSON created with 2 devices ZABBIX_DEF_DIR:ZABBIX_NOSHAD_DISKS_DISCOVERY.JSON created with 2 devices ZABBIX_DEF_DIR:ZABBIX_IF_DISCOVERY.JSON created with 2 devices ZABBIX_DEF_DIR:ZABBIX_PQUEUES_DISCOVERY.JSON created with 3 Printer Queues ZABBIX_DEF_DIR:ZABBIX_BQUEUES_DISCOVERY.JSON created with 3 Batch Queues ZABBIX_DEF_DIR:ZABBIX_SQUEUES_DISCOVERY.JSON created with 3 Server Queues
Review the .JSON files and update them if needed
Example 1
The file ZABBIX_SHAD_DISKS_DISCOVERY.JSON
may contain
{ "data":[ {"{#DSNAME}":"DSA0:", "{#MCOUNT}":"2", "{#DSPCFREE}":10}, {"{#DSNAME}":"DSA1:", "{#MCOUNT}":"1", "{#DSPCFREE}":10}] }
This means that the device DSA0 has 2 members in its shadow, and an alarm is sent when
- the shadow has less than 2 members
- the free space is under 10%.
Example 2
The file ZABBIX_BQUEUES_DISCOVERY.JSON
may contain
{ "data":[ "{#QBNAME}":"SYS$BATCH_ITA123", "{#QBJOBPEND}":"2"}, "{#QBNAME}":"T4$BATCH_ITA123", "{#QBJOBPEND}":"2"}, "{#QBNAME}":"TEST", "{#QBJOBPEND}":"2"}] }
this means that any batch queue will trigger an alarm if it has 2 jobs or more in pending state, you may want to modify this value.
Then launch ZABBIX_STARTUP
$ @ZABBIX_STARTUP
This will create a process ZABBIX_AGENT, which can communicate with the zabbix server using the ports 10050 and 10051.
Example
> sh sys/proc=zabb* OpenVMS V8.3 on node ITA123 22-MAR-2018 11:19:48.18 Uptime 231 12:24:09 Pid Process Name State Pri I/O CPU Page flts Pages 0001FD59 ZABBIX_AGENT HIB 4 111 0 00:00:00.01 314 346
To stop Zabbix Agent, just
$ stop ZABBIX_AGENT
or
$ stop/id=pid_of_zabbix_agent_process
You should download the templates and load them on your Zabbix server, in order to save time to configure the various monitored items.
See the link at
Latest versions of OpenVMS templates
on the start page
What is included in the kit
freeheaders.com
needs the tool DFU that you can download at
https://www.digiater.nl/dfu.html
For each disk, it calculates the number of used headers and free headers, and sends it to the Zabbix server.
The last lines
$ ZABBIX_SENDER/key="trap[FREEHEADERS_''P1']"/host="''nodename'"/value='freeheaders' $ ZABBIX_SENDER/key="trap[COUNTHEADERS_''P1']"/host="''nodename'"/value='headercount'
indexfmap.com
does for each disk
DUMP/HEADER/BLOCK=COUNT=0 'disk'[000000]INDEXF.SYS
and checks the value for
- Map area words in use
- Maximum value is 155