If you run a blog or other web service, on a single (virtual) machine, hosted somewhere or maybe on a raspberyPI at home, and you want to set up some monitoring for it, read on for what I think should work for you. I assume you don’t want to spend too much money and that your webserver is not your playground for experimenting with new technologies or setups. You just want the blog up and running, and for playing with Riemann and Sensu and what not, you have your lab at work, right?
1. APM
Let’s start with monitoring application performance. There is number of players on the market, NewRelic and AppDynamics being very well known. Both offer free plans with limited data retention and limited functionality (i.e. RUM not available in free plans)
Both monitoring services support range of backend technologies, the installation is straightforward and takes not much time, example doc for NewRelic PHP plugin instalation: https://docs.newrelic.com/docs/agents/php-agent/getting-started/new-relic-php
2. Availability
Of course you want to know when your service goes down. Again, there is number of services you can choose from, one well known and cool is Pingdom which in free plan allows you to set up only one check, but the check can be of the transaction type with which you can easily create scenario based test. Other service I like very much is UptimeRebot, which allows you to create 50 checks in it’s free plan.
3. System metrics
Setting up anything like even quite lightweight Ganglia for a single VM is kind of overkill to me. So since we already have, say, NewRelic doing APM on the server, why not use it to collect CPU, RAM and I/O metrics as well?
It creates some basic overview graphs as well as nice visualizations of per process memory and CPU consumption, top like rankings and graphs.
4. Log collection and analysis
You want your make sens of your logs, but you don’t have enough resources to set up ELK stack. Logentries and Loggly and probably other players too, have free plans with data retention and volume limitations.
That’s it! Setting all that up should take not much time and it’s all free and doesn’t eat too much of resources on your server, so WordPress will not starve 😉