2
4 Comments

Monitoring of applications/servers

Hi,
I am running my applications with docker swarm on multiple servers in the cloud. Currently I am looking into ways how I can monitor my servers and applications, my first goal would be to:

  • Monitor servers: CPU, RAM, Storage
  • Applications: Bundle log files and make them searchable, send alerts on specific triggers

I would prefer open-source solutions.

Any recommendations or what are you currently using?

on November 27, 2020
  1. 4

    I am on Kubernetes and use Prometheus + Grafana stack. I am sure you can use this stuff on Swarm too.

  2. 3

    Check out the Elastic stack. They're quite easy to use, with little setup. You install the agents and connect them to your Elasticsearch cluster, view your data in Kibana. And you can create custom visualisations and dashboards. Plus the agents share a common schema, so, for instance, you can filter by a specific server or container and find all metrics and logs from there.

    • Metricbeat handles the hardware monitoring
    • Filebeat handles everything logs. Automatically tags your logs with relevant data too, so you can easily filter.
    • Elastic APM agents for different languages handler application monitoring, tracing, exception tracking
    • Elasticsearch Watcher (or Kibana Alerts) handle alerting. You can alert on anything in your Elasticsearch cluster.

    It's free and open-source, but maintaining Elasticsearch can be a bit of a hassle, so maybe find a hosted offer like Elastic Cloud.

    1. 1

      Thanks, the Elastic stack looks great, I'll try it out.

  3. 1

    For monitoring, you can go for Prometheus and Grafana. You can also get Netdata.

    For logs, you can try Loki with Grafana. Or, go with ELK stack.