Opserver is a monitoring system by the team at Stack Exchange, home of Stack Overflow. It is a tool for monitoring:
- servers
- SQL clusters/instances
- redis
- elastic search
- exception logs
- haproxy
- ... and more as we go
Known as “status” internally, Opserver provides a fast overall view of all our major systems that also allows drilling in for more detail. For an idea of the UI, you can see some screenshots from our Velocity 2013 talk.
Installation should be a snap, just build this project as-is and deploy it as an IIS website. If monitoring windows servers and using integrated auth sections (e.g. live polling, SQL, exception logs) then using a service account with needed permissions is all you need to do on the auth side. After that, configure Opserver to monitor your systems, keep reading for how.
/Config/SecuritySettings.config
contains the security settings for the Opserver website itself, there are a few built-in providers already:
- Active Directory ("ad")
- "Everyone's an admin" ("alladmin")
- "View All" (the default)
There is a SecuritySettings.config.example
as a reference. You can optionally add networks that can see the main dashboard without any authentication when using any provider. This is useful for fully automated screens like a TV in an office or data center.
The basic configuration implementation is via .json
files, for which .json.example
files are included in the /config
directory of the Opserver project. These .example
files are exactly what’s running in the Stack Exchange production environment, minus any passwords or internal-only URLs. You are also welcome to implement your own settings provider that has a completely different source, for example JSON from MongoDB, or SQL, or…whatever you can come up with. Settings changes will be hooked up to events but that isn’t complete just yet, since we build every change and Opserver restarts, this isn’t a priority.
We recommend using a service account with the necessary permissions for monitoring, this elimiates any passwords in your configuration files and makes management easier, that's the practice in place at Stack Exchange.
BookSleeve by Marc Gravell
Dapper by Stack Exchange
JSON.Net by James Newton-King
MiniProfiler by Stack Exchange
NEST by Martijn Laarman
StackExchange.Exceptional by Nick Craver
TeamCitySharp by Paul Stack
JavaScript:
d3.js by Michael Bostock
ColorBrewer by Cynthia Brewer and Mark Harrower
HTML Query Plan by Justin Pealing
isotope by Metafizzy
jQuery by The jQuery Foundation
jQuery cookie plugin by Klaus Hartl
jQuery autocomplete by Jörn Zaefferer
prettify by Google
Simple Modal by Eric Martin
TableSorter by Christian Bach
Toastr by John Papa and Hans Fjällemark
Opserver is licensed under the MIT License.