Awesome monitoring framework with unlimited integration possibilities
Sensu Go is a powerful framework to build an event pipeline tailored to the needs of their users. Events can be gathered via various different ways and processed highly accurate via handlers. Sensu Go has its strength in dynamic environments and when it is interconnected with other tools of the IT environment used by administrators and managers.
The monitoring framework following the microservice approach gives users the ability to fully embed Sensu Go into their environment and workflows. The strengths of Sensu Go consist in giving users endless possibilities to process events using the event pipeline with filters and mutators. Handlers represent the integration to 3rd party tools, which could be everything you can think of. Every event is processed as a json object, what makes it very easy to build interfaces between Sensu Go and $product - you name it. On the other hand the agent is able to gather information in different ways. It supports several plugin output formats, what gives the possibility to choose from a pool of thousands plugins, scraping Prometheus Exporters, or just using in-house developments. Furthermore it supports to accept events/metrics via Agent API or the built-in StatsD listener. The documentation is awesome and complete. Since it is API-driven, users are able to fully automate Sensu Go using configuration management tools like Ansible, Chef, Puppet or Salt. The slack community is big and you can get help quickly.
A powerful monitoring event pipeline
Sensu provides an extremely flexible monitoring event pipeline for users of all sizes. Sensu is available as an open source, MIT licensed product allowing even the smallest organizations to leverage Sensu to provide a robust and flexible monitoring pipeline for all of their environments. Additionally, Sensu provides enterprise features (LDAP, AD, native external integrations) along with an incredible support team for their enterprise version.
Sensu provides native primitives that allow users to significantly reduce alert fatigue via filters, dependencies, aggregations, and scheduled silences. These primitives increase the value of Sensu monitoring event pipelines allowing "robots" to do the initial alert remediation and only notifying a human when there's real issues.
Sensu Core and Sensu Go both provide dashboards. In my experience, the larger the Sensu installation, the harder the provided dashboards become to use. However, Sensu Go now has native RBAC controls and appears to be significantly improving the dashboard with each release.
Big improvement over Nagios, but still room for growth
After maintaining a Nagios XI installation for a few years, I decided to switch to Sensu because I can tell that Nagios is a creaking giant that doesn't meet the needs of the modern world especially well without a *lot* of elbow grease.
Sensu's backend and deployment is considerably easier than Nagios, but the GUI and documentation still need a lot of work.
Some of Sensu's best features, like assets, tarballs that package up programming language runtimes for easy deployment, aren't easy for smaller teams like mine to implement because the documentation talks about them as if you already know how to implement them.
I've already been in touch with our Sensu account manager, and to their credit, they arranged for a meeting with one of their higher-ups to discuss our concerns. I think Sensu still has room for improvement before it's a truly good fit for a small business environment like mine, but it's still a solid improvement in some ways over what I was using with Nagios XI.
Sensu Go, the new version, is easy to deploy, and it's considerably easier to manage and scale as compared to Nagios, which we had been using.
The GUI interface still needs a lot of work; it's quite spartan compared to Nagios XI. The documentation isn't especially beginner-friendly; it lacks "hello world" examples and seems to assume that you're already intimately familiar with some of the concepts.
Best monitoring Framework, not the best monitoring product
I have used sensu for 4+ years and have become a maintainer in the last couple years. I really love seeing the diverse use cases that sensu helps organizations accomplish with core features as well as the community maintained plugins. Sensu has a really great community where I have had the benefit of leveraging many community contributions but been able to give back to such an awesome community. If you ever want to get involved with `core`, `sensu-plugins`, or the various CM (config management) projects reach out to me on the community https://slack.sensu.io
While many monitoring solutions try to be an out of box solution that is easy to get going and perform a prescriptive path Sensu took a step back and said instead of building a product we should build a framework. By taking the stance of framework first and product second what you get is a truly great experience where things work with little to no effort to get it spun up and going you can do so much more with it than the developers ever imagined people would use it. If you are willing to write code you can do pretty much anything you want by leveraging their framework and event pipeline. This can include writing new checks, metric gathering scripts, TSDB shippers, automated triage, automated remediation, etc.
Losing a lot of flexibility with filters in the transition from `sensu-ruby` to `sensu-go` but for most use cases you probably won't notice.
I Enjoy Using Sensu
I like how customizable and flexible Sensu is. It lets us get very granular so we can set different thresholds for different servers, and send different alerts from the same server to different teams. It is not all or nothing per servers. You can also have multiple handlers for each check, so you can send events to more than one place. There are a lot of different TSDB handlers as well.
Out of the box, it doesn't really do much aside from send keepalives. It would be nice if it came predefined with CPU/Memory/Disk checks
Great features but lacks maintainers
Sensu is amazing and i'm going to continue to use it. The community features such as the plugins and slack channels are awesome. I hope they keep listening to the community and once Sensu Go is more stable I will be moving there as well.
So many important features and integrations. Awesome community plugins.
Most people do not manually instal sensu, they use config management, yet the documentations on how to get up and running using ansible or chef is very weak. This is present inside the community plugins and handlers. Do you know how hard it was to try and link sensu/chef/slack using the community plugins? There was no mentions of a sensu_snippet any where in the docs.
As an administrator, I like the product. I haven't tested sensu go, hopefully it will be better than the current version.
I did several PoC of Sensu and demonstrated it to a handful of clients. What I found from my PoC is that, unanimously everyone liked the solution.
I personally found it interesting enough to propose it to the clients. The ease of configuration is definitely worth a mention, specially so with the ansible repository.
It perfectly does what it advertises. I haven't dug very deep into the myriad customization available because I didn't need to. As a monitoring solution it pretty much serves perfectly.
The graphical dashboard (uchiwa) is pretty bare bones. It would be useful to have some more elegance (UI/UX wise) and bells and whistles into it.
Another feedback that I obtained is that some folks wanted to set up monitoring/alerting from a graphical interface. I don't know whether open source sensu provides that.
keep tabs on your system health and performance
useful monitoring tool with enough flexibility and ease of use to be worthwhile.
easy to configure and maintain service monitoring via json files. Works with existing Nagios plugins, as well as a suite of plugins for sensu written in ruby. integrates well via webhooks with other notification tools (slack, pagerduty).
some seemingly simple functions like service dependencies can be tricky to implement properly. Can't set a different retry interval once a problem is detected, like you can in nagios. documentation is just ok. Initial setup can be challenging to troubleshoot.