SQL Server alerting.
Busard is runinng in a Docker container (or wherever you want), connects to SQL Server, monitor whatever you want, and sends alerts wherever you want.
- an extended event session, gathering errors and blocked process reports event (class
Busard.SqlServer.Monitoring.IssuesWatcher
) - AlwaysOn Availability group status changes (class
Busard.SqlServer.Monitoring.AlwaysOnWatcher
) ERRORLOG
information. For now, alerts when a certain number of login failed is reached (classBusard.SqlServer.Monitoring.ErrorLogWatcher
)
Work in progress or possible additions :
- SQL Server performance counters (class
Busard.SqlServer.Monitoring.PerformanceCountersWatcher
) - you can add other extended event session (class
Busard.SqlServer.Monitoring.XEventsWatcherBase
)
- email (class
Busard.Core.Notification.EmailNotifier
) - Telegram (class
Busard.Core.Notification.TelegramNotifier
) - a SQL Server table (class
Busard.Core.Notification.SqlServerTableNotifier
)
Any notification target should be easy to add : just implement Busard.Core.Notification.NotifierBase
, send a pull request and I'll add it to Busard ;), or ask for it. It will be hepful to have WhatsApp, Signal, Slack and Teams notification.
Clone the repository to get the source : git clone https://github.com/rudi-bruchez/Busard.git
Busard can be deployed manually in a docker container, or using CI/CD. You can also compile it manually and run it using dotnet
. It is targeting .NET 6.
A Dockerfile
can be found in the root folder. I believe it is easy to understand by itself. You can build it using the docker image build
command.
you can also find in the root folder a docker-compose.yml
for Docker Compose, to inject the configuration files at the right place in the Docker image.
Configuration files are (in the Busard.Watcher
project) :
config.global.yaml
— all the configuration needed, except the secrets : SQL Server connection passwords et Telegram token for instance.config.secret.yaml
— the secrets. Useful for handling secrets in Kubernetes.
You need to add a login for Busard, example is given here : 01.logins-and-permissions.sql.
You need to create the issues extended event session, look at 02.xevent.sql