Need advice about which tool to choose?Ask the StackShare community!
Elasticsearch vs Prometheus vs Zabbix: What are the differences?
Key Differences between Elasticsearch, Prometheus, and Zabbix
Elasticsearch, Prometheus, and Zabbix are three popular tools used for monitoring and analytics. While they all serve similar purposes, there are some key differences between them.
1. Data Storage and Querying Capabilities: Elasticsearch is a highly scalable search and analytics engine built on top of the Apache Lucene library. It excels at storing, searching, and analyzing large volumes of structured and unstructured data. On the other hand, Prometheus is specifically designed for monitoring and time series data, making it ideal for collecting and querying metrics. Zabbix, meanwhile, is more of a traditional network monitoring tool that provides a centralized platform for collecting and analyzing data from various sources.
2. Data Model and Collection Methods: Elasticsearch and Prometheus have different data models. Elasticsearch stores data in a hierarchical structure of indices, types, and documents, while Prometheus uses a pull-based model where it scrapes metrics from various endpoints. Zabbix, on the other hand, follows a hybrid approach and supports both passive and active monitoring methods to collect data from different devices.
3. Alerting and Notification Capabilities: While all three tools support alerting and notifications, they differ in their approaches. Elasticsearch provides the foundation for building custom alerting systems based on its powerful query capabilities. Prometheus has a built-in alerting system that allows users to define rules and send notifications via various channels. Zabbix, being a comprehensive monitoring solution, offers advanced alerting features such as flexible trigger dependencies and escalation scenarios.
4. Distributed Monitoring and Scalability: Elasticsearch and Prometheus are designed to be distributed and scalable, allowing the addition of more nodes to handle increased data volumes and workloads. Elasticsearch leverages its distributed architecture to achieve high availability and fault tolerance. Prometheus, on the other hand, uses a federation model to aggregate data from multiple instances. Zabbix, while it supports distributed monitoring, has limitations in terms of scalability compared to the other two tools.
5. Monitoring Types and Integrations: Prometheus and Zabbix have broader support for infrastructure and application monitoring compared to Elasticsearch. Prometheus focuses on time series data from systems and services, with extensive integrations available for cloud-native technologies. Zabbix, being a comprehensive network monitoring tool, supports monitoring various protocols, devices, and applications. Elasticsearch, although capable of monitoring, is more commonly used for log and event data analysis.
6. Ease of Use and Learning Curve: In terms of ease of use, Elasticsearch and Prometheus can have a steeper learning curve compared to Zabbix. Elasticsearch and Prometheus require some level of configuration and setup, and a good understanding of query syntax or configuration files. Zabbix, on the other hand, provides a user-friendly web interface and pre-configured templates, making it easier for users to get started quickly.
In summary, Elasticsearch is best suited for large-scale search and analytics use cases, Prometheus is ideal for time series metrics monitoring, and Zabbix excels in network monitoring with its comprehensive features and ease of use.
Looking for a tool which can be used for mainly dashboard purposes, but here are the main requirements:
- Must be able to get custom data from AS400,
- Able to display automation test results,
- System monitoring / Nginx API,
- Able to get data from 3rd parties DB.
Grafana is almost solving all the problems, except AS400 and no database to get automation test results.
You can look out for Prometheus Instrumentation (https://prometheus.io/docs/practices/instrumentation/) Client Library available in various languages https://prometheus.io/docs/instrumenting/clientlibs/ to create the custom metric you need for AS4000 and then Grafana can query the newly instrumented metric to show on the dashboard.
Hi, We have a situation, where we are using Prometheus to get system metrics from PCF (Pivotal Cloud Foundry) platform. We send that as time-series data to Cortex via a Prometheus server and built a dashboard using Grafana. There is another pipeline where we need to read metrics from a Linux server using Metricbeat, CPU, memory, and Disk. That will be sent to Elasticsearch and Grafana will pull and show the data in a dashboard.
Is it OK to use Metricbeat for Linux server or can we use Prometheus?
What is the difference in system metrics sent by Metricbeat and Prometheus node exporters?
Regards, Sunil.
If you're already using Prometheus for your system metrics, then it seems like standing up Elasticsearch just for Linux host monitoring is excessive. The node_exporter is probably sufficient if you'e looking for standard system metrics.
Another thing to consider is that Metricbeat / ELK use a push model for metrics delivery, whereas Prometheus pulls metrics from each node it is monitoring. Depending on how you manage your network security, opting for one solution over two may make things simpler.
Hi Sunil! Unfortunately, I don´t have much experience with Metricbeat so I can´t advise on the diffs with Prometheus...for Linux server, I encourage you to use Prometheus node exporter and for PCF, I would recommend using the instana tile (https://www.instana.com/supported-technologies/pivotal-cloud-foundry/). Let me know if you have further questions! Regards Jose
My team is divided on using Centreon or Zabbix for enterprise monitoring and alert automation. Can someone let us know which one is better? There is one more tool called Datadog that we are using for cloud assets. Of course, Datadog presents us with huge bills. So we want to have a comparative study. Suggestions and advice are welcome. Thanks!
I work at Volvo Car Corporation as a consultant Project Manager. We have deployed Zabbix in all of our factories for factory monitoring because after thorough investigation we saw that Zabbix supports the wide variety of Operating Systems, hardware peripherals and devices a Car Manufacturer has.
No other tool had the same amount of support onboard for our production environment and we didn't want to end up using a different tool again for several areas. That is the major strong point about Zabbix and it's free of course. Another strong point is the documentation which is widely available; Zabbix Youtube channel with tutorial video's, Zabbix share which holds free templates, the Zabbix online documentation and the Zabbix forum also helped us out quite a bit. Deployment is quite easy since it uses templates, so almost all configuration can be done on server side.
To conclude, we are really pleased with the tool so far, it helped us detect several causes of issues that were a pain to solve in the past.
Centreon is part of the Nagios ecosystem, meaning there is a huge number of resources you may find around in the community (plugins, skills, addons). Zabbix monitoring paradigms are totally different from Centreon. Centreon plugins have some kind of intelligence when they are launched, where Zabbix monitoring rules are configured centrally with the raw data collected. Testing both will help you understand :) Users used to say Centreon may be faster for setup and deployment. And in the end, both are full of monitoring features. Centreon has out of the box a full catalog of probes from cloud to the edge https://www.centreon.com/en/plugins-pack-list/ As soon as you have defined your monitoring policies and template, you can deploy it fast through command line API or REST API. Centreon plays well in the ITSM, Automation, AIOps spaces with many connectors for Prometheus, ServiceNow, GLPI, Ansible, Chef, Splunk, ... The polling server mode is one of the differentiators with Centreon. You set up remote server(s) and chose btw multiple information-exchange mechanisms. Powerful and resilient for remote, VPN, DMZ, satellite networks. Centreon is a good value for price to do a data collection (availability, performance, fault) on a wide range of technologies (physical, legacy, cloud). There are pro support and enterprise version with dashboards and reporting. IT Central Station gathers many user feedback you can rely on both Centreon & Zabbix https://www.itcentralstation.com/products/centreon-reviews
We highly recommend Zabbix. We have used it to build our own monitoring product (available on cloud -like datadog- or on premise with support) because of its flexibility and extendability. It can be easily integrated with the powerful dashboarding and data aggregation of Grafana, so it is perfect. All configuration is done via web and templates, so it scales well and can be distributed via proxies. I think there also more companies providing consultancy in Zabbix (like ours) than Centreon and community is much wider. Also Zabbix roadmap and focus (compatibility with Elasticsearch, Prometheus, TimescaleDB) is really really good.
Hi Vivek, what's your stack? If huge monitoring bills are your concern and if you’re using a number of JVM languages, or mostly Scala / Akka, and would like “one tool to monitor them all”, Kamon might be the friendliest choice to go for.
Kamon APM’s major benefit is it comes with a built-in dashboard for the most important metrics to monitor, taking the pain of figuring out what to monitor and building your own dashboards for weeks out of the monitoring.
Hey everybody! (1) I am developing an android application. I have data of around 3 million record (less than a TB). I want to save that data in the cloud. Which company provides the best cloud database services that would suit my scenario? It should be secured, long term useable, and provide better services. I decided to use Firebase Realtime database. Should I stick with Firebase or are there any other companies that provide a better service?
(2) I have the functionality of searching data in my app. Same data (less than a TB). Which search solution should I use in this case? I found Elasticsearch and Algolia search. It should be secure and fast. If any other company provides better services than these, please feel free to suggest them.
Thank you!
Hi Rana, good question! From my Firebase experience, 3 million records is not too big at all, as long as the cost is within reason for you. With Firebase you will be able to access the data from anywhere, including an android app, and implement fine-grained security with JSON rules. The real-time-ness works perfectly. As a fully managed database, Firebase really takes care of everything. The only thing to watch out for is if you need complex query patterns - Firestore (also in the Firebase family) can be a better fit there.
To answer question 2: the right answer will depend on what's most important to you. Algolia is like Firebase is that it is fully-managed, very easy to set up, and has great SDKs for Android. Algolia is really a full-stack search solution in this case, and it is easy to connect with your Firebase data. Bear in mind that Algolia does cost money, so you'll want to make sure the cost is okay for you, but you will save a lot of engineering time and never have to worry about scale. The search-as-you-type performance with Algolia is flawless, as that is a primary aspect of its design. Elasticsearch can store tons of data and has all the flexibility, is hosted for cheap by many cloud services, and has many users. If you haven't done a lot with search before, the learning curve is higher than Algolia for getting the results ranked properly, and there is another learning curve if you want to do the DevOps part yourself. Both are very good platforms for search, Algolia shines when buliding your app is the most important and you don't want to spend many engineering hours, Elasticsearch shines when you have a lot of data and don't mind learning how to run and optimize it.
Rana - we use Cloud Firestore at our startup. It handles many million records without any issues. It provides you the same set of features that the Firebase Realtime Database provides on top of the indexing and security trims. The only thing to watch out for is to make sure your Cloud Functions have proper exception handling and there are no infinite loop in the code. This will be too costly if not caught quickly.
For search; Algolia is a great option, but cost is a real consideration. Indexing large number of records can be cost prohibitive for most projects. Elasticsearch is a solid alternative, but requires a little additional work to configure and maintain if you want to self-host.
Hope this helps.
We're looking for a Monitoring and Logging tool. It has to support AWS (mostly 100% serverless, Lambdas, SNS, SQS, API GW, CloudFront, Autora, etc.), as well as Azure and GCP (for now mostly used as pure IaaS, with a lot of cognitive services, and mostly managed DB). Hopefully, something not as expensive as Datadog or New relic, as our SRE team could support the tool inhouse. At the moment, we primarily use CloudWatch for AWS and Pandora for most on-prem.
I worked with Datadog at least one year and my position is that commercial tools like Datadog are the best option to consolidate and analyze your metrics. Obviously, if you can't pay the tool, the best free options are the mix of Prometheus with their Alert Manager and Grafana to visualize (that are complementary not substitutable). But I think that no use a good tool it's finally more expensive that use a not really good implementation of free tools and you will pay also to maintain its.
this is quite affordable and provides what you seem to be looking for. you can see a whole thing about the APM space here https://www.apmexperts.com/observability/ranking-the-observability-offerings/
Our primary source of monitoring and alerting is Prometheus
, also have APM in Elasticsearch
, for all incidents trigger we route to Opsgenie
. Kubernetes
is for Deployment, RabbitMQ
is for Eventbus, Golang
in Backend and Postgresql
for Database.
We use Holistics
to log all segmentation for our tracker.
Pros of Elasticsearch
- Powerful api328
- Great search engine315
- Open source231
- Restful214
- Near real-time search200
- Free98
- Search everything85
- Easy to get started54
- Analytics45
- Distributed26
- Fast search6
- More than a search engine5
- Great docs4
- Awesome, great tool4
- Highly Available3
- Easy to scale3
- Potato2
- Document Store2
- Great customer support2
- Intuitive API2
- Nosql DB2
- Great piece of software2
- Reliable2
- Fast2
- Easy setup2
- Open1
- Easy to get hot data1
- Github1
- Elaticsearch1
- Actively developing1
- Responsive maintainers on GitHub1
- Ecosystem1
- Not stable1
- Scalability1
- Community0
Pros of Prometheus
- Powerful easy to use monitoring47
- Flexible query language38
- Dimensional data model32
- Alerts27
- Active and responsive community23
- Extensive integrations22
- Easy to setup19
- Beautiful Model and Query language12
- Easy to extend7
- Nice6
- Written in Go3
- Good for experimentation2
- Easy for monitoring1
Pros of Zabbix
- Free21
- Alerts9
- Service/node/network discovery5
- Templates5
- Base metrics from the box4
- Multi-dashboards3
- SMS/Email/Messenger alerts3
- Grafana plugin available2
- Supports Graphs ans screens2
- Support proxies (for monitoring remote branches)2
- Perform website checking (response time, loading, ...)1
- API available for creating own apps1
- Templates free available (Zabbix Share)1
- Works with multiple databases1
- Advanced integrations1
- Supports multiple protocols/agents1
- Complete Logs Report1
- Open source1
- Supports large variety of Operating Systems1
- Supports JMX (Java, Tomcat, Jboss, ...)1
Sign up to add or upvote prosMake informed product decisions
Cons of Elasticsearch
- Resource hungry7
- Diffecult to get started6
- Expensive5
- Hard to keep stable at large scale4
Cons of Prometheus
- Just for metrics12
- Bad UI6
- Needs monitoring to access metrics endpoints6
- Not easy to configure and use4
- Supports only active agents3
- Written in Go2
- TLS is quite difficult to understand2
- Requires multiple applications and tools2
- Single point of failure1
Cons of Zabbix
- The UI is in PHP5
- Puppet module is sluggish2