We are trying to integrate Icinga2 with Grafana as the visualization platform. In our setup, MySQL is being used the data source for Grafana as we have used the same as the Icinga2 database.
our requirement is to bring the performance data into Grafana dashboard by adding panels that would show the utilization graphs.
Upon checking the Icinga database, we have seen the perfdata is being stored as text.
Much appreciated, if someone could help us in achieving this. We tried out few queries, in pulling the data.
I would setup something like InfluxDB and be done with it.
The Icinga IDO database is not a proper time series database and I don’t believe is meant to store historical performance data, so you will likely only have a current snapshot and not a historical view of your data.
The InfluxDB setup and integration is quick and easy, and very efficient on storage.
Mine is a distributed architecture which has two master servers and 4 satellites. In this setup, i have used a remote MySQL database by using (Icinga IDO database).
Following are my doubts:
can i disable the existing database connection with mysql and get it replace with influxdb. In the remote server, i will install influxdb and do the replacement.
What’s is the purpose of using idodb and having an influx db.
what happens if i disable existing ido connection and tries to connect to influxdb.
you should not replace the ido db like mysql or postgresql with influxdb. The installation of influxdb for grafana is additional!
The reason is, and that is what @0xliam wrote, influxdb is a time series database. Mysql/Mariadb, Postgresql are relational database.
Thanks Stevie for that info.
That really helps.
One more query is that what should be specification for each of these DB. If ido is going to store the real time data, then its specification can be low right when compared to influxdb which is going to store the historical data.
Also in the database from icinga and director are historical data. So I can’t give any recommendations from my side. Because there are so my dependencies:
- how many host/services you have to check
- check interval
- do you need historical data and how long you have to save them (keyword: SLA)
so you meant to say that the above mentioned statement is referring ido db or influx db - [Also in the database from Icinga and director are historical data.]
I am trying to understand here. Ido db as well as director which are installed in MySQL stores real time data and historical data. This will be be in string format.
Now if we have requirement to use Grafana dashboard, then influx dB comes into picture which will shows the time series data.
So all together, we have to keep two db - ido mysql for configurations and status information and influx db for time series data.
Icinga stores state changes. You will see this in the history tab in icingaweb
The director stores a history about the config deployment and everything it is needed for it.
Icinga writes metrics and performance data with the InfluxDbwriter feature into InfluxDB. Look at here: https://icinga.com/docs/icinga2/latest/doc/09-object-types/#influxdbwriter
And Grafana reads the written metrics and performance data from the InfluxDB to visualize it.
BTW: Instead of InfluxDB you could also use Graphite, if you prefer this way. In this case use have to install and configure the GraphiteWrite feature: https://icinga.com/docs/icinga2/latest/doc/09-object-types/#graphitewriter
Thanks Stevie for the update.
This really helps.