RainGauge, the new killer tool ?

I’m sure you’ve heard of Box Anemometer from the Box (MySQL) team, an excellent UI tool based on pt-query-digest. Now the guys from the box team offer us another killer UI tool based on pt-stalk, and I’m sure you will really appreciate to use it !

What is it ?

 
RainGauge” consists of three parts :

  • A set of scripts that collect data about the health of your system and your databases (based on pt-stalk)
  • A process that push these data on a centralised place
  • A very simple interface to navigate in the collected data
But the collection begins only when specific conditions are triggered, and you choose what these conditions are. Find below the general flowsheet :

 

 

How to install it ?

 
You can find a quick start procedure on the project page but I would like to add my contribution.
The installation is quite simple but it’s important to understand how to configure the tool and on which servers.

All the collected data are stored in files, you don’t need to install and configure a database to store these data.
Apache and PHP5 are needed on the web server that hosts the centralized data.
Curl is needed on all the databases server you want to monitor. RainGauge uses Curl to push the local collected data to the web server.

Now, let me explain how to install RainGauge :

  • Of course you have to download the tool here and push it in your web server and your databases servers (in /tmp for example)
  • On the databases server side :
    • Create a new database user for RainGauge : grant [ALL|...] on *.* to ‘raingauge’@’localhost’ identified by <pass>
      • (I haven’t had time to analyze exactly what rights are needed by this user)
    • Copy the scripts (consider that the source directory is /tmp) :
      • cp /tmp/RainGauge/scripts/raingauge_package_and_send.sh /usr/bin/
      • cp /tmp/RainGauge/scripts/pt-stalk-raingauge /usr/bin/
      • cp /tmp/RainGauge/scripts/raingauge_rc /etc/raingauge_rc
      • cp /tmp/RainGauge/scripts/raingauge_service /etc/init.d/raingauge
    • Edit this file : /usr/bin/raingauge_package_and_send.sh
      • Add  authentication information for this line : PORT=$(mysql -uraingauge -p<pass> -h localhost -e “select @@port” -ss)
      • Modify localhost with the name of the web server : SERVER=”localhost” => SERVER=”mywebserver”
    • Edit this file : /etc/raingauge_rc
      • Add the password of the mysql user previously created : PT_MYSQL_PASS=’<pass>
      • These lines indicate the defaults condition and threshold : PT_STALK_VARIABLE=”Threads_running” / PT_STALK_THRESHOLD=”100
        • By default RainGauge starts to collect data only if there is more than 100 running threads on the databases server
        • You can change these condition and threshold on your own
    • Start the daemon : /etc/init.d/raingauge start
  • On the web server side :
    • Just copy all the files in your www directory : cp -r /tmp/RainGauge /var/www
    • Make sure the http daemon has write permissions in the “collected” directory
    • Keep in mind that all the collected data are centralized on this server in the “collected” directory
    • When you use the web interface, files are extracted to /tmp

How to use it ?

 

Open you browser and enter the URL of your web server and play :
(click to enlarge)

 

 

I’m sure you’re downloading this tool now…

 

Congratulations, you've read this post till the end !
If you enjoyed this article, please leave a comment


You can also subscribe to RSS feed or by email to automatically receive real-time notification of new posts

Thanks for your visit on MySQL+. Cédric

2 Comments

Leave a Comment.