We are building a (Zabbix-based) monitoring system for our applications; hovewer, I'm having difficulties in defining what to monitor?
I have so far come up with the following general categories:
- hardware data: cpu, ram, swap, etc.
- middleware data: perfomance/health for MySQL instantces, Tomcat instances, JVMs, etc.
- logical or application data: the current status/health of the system, e.g. number of active users, page request, etc.
- kpi data: data for business, e.g. user registration over time.
- dashboard: quick overview of the system (e.g. microservices are running or not).
Are there any other fundamental categories for to monitor? Or is there another category system to use?
UPDATE: the purpose of the monitoring is
- the see if the system functions correctly (at high-level, e.g. no services are down, etc. - much like a smoke-test)
- see, if there are any indicators, that the system is likely to crash (e.g. historical data predicts that we will run out of disk space)
- if any of these occur, send a warning to the appropriate staff (e.g. via e-mail)
UPDATE: the complexity of our system does not demand an extra application for reporting (e.g. monitoring KPIs); also, we are running in local/local cloud infrastructure, so the cost of the application is not (that)relevant - but it might be someday :-)