Home > HOWTOs > Fetch Monitoring Data from Item to CSV file.

Fetch Monitoring Data from Item to CSV file.

Have done some minor changes as per my need.
This script gets monitoring data from Items from Zabbix server and creates a CSV file. For a range of time given.
Time range is given in ‘yyyy-mm-dd hh:mm:ss’ format.
For the range we give start datetime and end datetime,
if only start datetime is specified then time period will be start datetime to now()
Script can do 2 things:
  1. Single key data into csv
  2. Multiple keys read from a file and creates a single csv, with all the keys (creates a .csv file).

Single key data into csv

This option will connect to Zabbix and collection a single key monitoring data.
CSV file is created with the key_name.csv format.
python -s 127.0.0.1 -h host-in-zabbix -u admin -p zabbix -k key-in-zabbix -t1 '2014-10-16 12:00:00' -v 1 

Multiple keys read from a file.

This option will connect to Zabbix and collection a multiple key monitoring data.
CSV file is created with the hostname.csv format.
A Text file or a zabbix export xml file can be use to get multiple keys from zabbix.
python -s 127.0.0.1 -h host-in-zabbix -u admin -p zabbix -f sample_key_file.txt -t1 '2014-10-16 12:00:00' -v 1 
python -s 127.0.0.1 -h host-in-zabbix -u admin -p zabbix -f sample_zabbix_export_file.xml -t1 '2014-10-16 12:00:00' -v 1

Sample Output CSV File.

CSV file created is in below format.
key timestamp value
TestKeyFromZabbix_VS.dlBytes 2014-10-14 12:00:00 0
TestKeyFromZabbix_VS.dlBytes 2014-10-14 12:05:00 0
TestKeyFromZabbix_VS.dlBytes 2014-10-14 12:10:00 0
TestKeyFromZabbix_VS.dlBytes 2014-10-14 12:15:00 3517
Here is a raw output. Rather a semicolon separated values (SSV).
key;timestamp;value
TestKeyFromZabbix_VS.dlBytes;2014-10-14 12:00:00;0
TestKeyFromZabbix_VS.dlBytes;2014-10-14 12:05:00;0
TestKeyFromZabbix_VS.dlBytes;2014-10-14 12:10:00;0
TestKeyFromZabbix_VS.dlBytes;2014-10-14 12:15:00;3517

Usage

usage: fetch_monitoring_data_to_csv.py [-h] -s SERVER_IP -n HOSTNAME
(-k KEY | -f FILE) -u USERNAME -p
PASSWORD [-o OUTPUT] -t1 DATETIME_START
[-t2 DATETIME_END] [-v DEBUG_LEVEL]

Fetch history from aggregator and save it into CSV file

optional arguments:
-h, --help show this help message and exit
-s SERVER_IP, --server-ip SERVER_IP
Server IP address
-n HOSTNAME, --hostname HOSTNAME
Hostname of the VM
-k KEY, --key KEY Zabbix Item key
-f FILE, --file FILE Zabbix Item key File. XML export file from Zabbix.
Text file with key in each line.Each Key will create
its own csv file.
-u USERNAME, --username USERNAME
Zabbix username
-p PASSWORD, --password PASSWORD
Zabbix password
-o OUTPUT, --output OUTPUT
Output file name, default key.csv (will remove all
special chars)
-t1 DATETIME_START, --datetime-start DATETIME_START
Start datetime, use this pattern '2014-10-15 19:12:00'
if only t1 specified then time period will be t1 to
now()
-t2 DATETIME_END, --datetime-end DATETIME_END
end datetime, use this pattern '2014-10-15 19:12:00'
-v DEBUG_LEVEL, --debug-level DEBUG_LEVEL
log level, default 0

Code Usage

Single key data into csv

from fetch_monitoring_data_to_csv import fetch_monitoring_data_to_csv

fetch_monitoring_data_to_csv('admin','zabbix', "http://127.0.0.1/zabbix", 'BLR-IN-DEVICE',
'key', '', '2014-10-14 12:00:00', '', 1)

Multiple keys read from a file.

from fetch_monitoring_data_to_csv import fetch_multi_key_monitoring_data_to_csv

fetch_multi_key_monitoring_data_to_csv('admin','zabbix', "http://127.0.0.1/zabbix", 'BLR-IN-DEVICE',
'file.txt', '', '2014-10-14 12:00:00', '', 1)

Code Location

Advertisements
Categories: HOWTOs
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: