Monitoring databases, network devices, Linux and Windows servers and services with Zabbix.
The client had a very hard and not really handful (and paid) monitoring tool working called Logic Monitor. With MySQL, PostgreSQL, Oracle and SQL Server databases; the issue was getting all those different Databases monitored by Logic Monitor; as well as their Cisco networking devices.
Money was not an issue here, but the coolest tools are always open source. Aren’t they? :smile:
Required features for the new monitoring tool
With so many different databases, networking devices and OS to monitor, we came up with some ideas of which tool to use:
- It has to be able to monitor the following databases: Mysql, Oracle, SQL Server and PostgreSQL;
- It has to be able to monitor Cisco ASAs and its site-to-site VPNs;
- It has to be able to monitor Linux and Windows servers
- It has to be able to monitor API endpoints (with CURL maybe?)
- That it works with agents installed locally on the host you want to monitor;
- The customer had datacenters spreads across the globe, so, it’d be nice to have a server in each data centre;
We came across MRTG & Nagios, but then we’d need to look after two solutions, two different services to get what we wanted.
That was when the usage of Zabbix came across. Zabbix would allow us to have a zabbix proxy running inside those data centres. Plus it works with MySQL and/or PostgreSQL (We had already an in house expert). With zabbix, we would also be able to monitor all of our network devices as well as our servers and API endpoints. Plus: Zabbix is free! :smile:
Getting Zabbix ready
With servers in Australia and New Zealand, we wanted to be able to monitor them without any interruptions (i.e if the internet access between those two countries goes down). Zabbix has a solution called “Zabbix Proxy” which allows us to have a server running in Australia and another one in New Zealand.
But what if the New Zealand Infra goes down? That would mean that the Zabbix server will go down with it. For that, we decided to have the Zabbix Server running in AWS Sydney, then 1x zabbix proxy in NZ and 1x Zabbix proxy in AU.
Zabbix stores everything in the Database, which can be either PostgreSQL or MySQL. We chose MySQL as we have others applications running in MySQL. The database being the most crucial for Zabbix, we decided to have a MySQL slave server running in AWS with daily snapshots done using this solution.
We are also monitoring the replication between our main Oracle Database and its slave, as well as our PostgreSQL and MySQL databases.
We have integrated Zabbix with Slack and our SMS provider [SMSGlobal]https://github.com/lpossamai/send_smsglobal_zabbix. So when there is an issue we get notified by email, Slack and SMS.
We are now monitoring 38 hosts (and growing) in two different countries with Zabbix and MySQL (DB size 10GB). We’re expecting two add two more servers in 2018 and at least 5 in 2019.
You can check how Zabbix dashboard looked like below: