For more open source projects, please check: A list focusing on recommending .Net open source projects
After the project is released, for us programmers, the project is not really over. It is also very important to ensure the stable operation of the project, and the monitoring of the server is one of the means to ensure stable operation. The monitoring of some middleware such as database, Redis, ES, etc. is also very important.
Therefore, today I recommend a lightweight open source monitoring solution to everyone.
Project Description
This is an open source monitoring product with Stack Overflow, based on the monitoring solution developed by .Net Core. It can monitor multiple systems independently. The monitoring information includes CPU, memory, network, hardware and other related information. It provides an overall monitoring information for each monitored system, which is convenient for us to check the server status and locate problems in operation and maintenance.
Technology Architecture
1. Cross-platform: Based on .NetCore development, it supports Windows, Mono, Liunx, Windows Azure, and Docker.
2. Technology stack. Net Core 6.0 + Asp. Net Mvc.
Monitorable service
-
Server/Switch
-
SQL Server singleton vs. cluster
-
Redis
-
Elasticsearch
-
HAProxy
-
PagerDuty
-
CloudFlare DNS
project structure
Opserver.Core is the core code, and Opserver.Web is the monitoring site.
Configuration example
security configuration
{
"provider": "EveryonesAnAdmin",
"apiKey": "<Global API Key>",
"internalNetworks": [
{
"name": "My Internal",
"cidr": "10.0.0.0/8"
}
],
"viewEverythingGroups": "Opserver-View",
"adminEverythingGroups": "Opserver-Admins;Opserver-MoreAdmins",
"scopes": [ "openid", "email" ],
"clientId": "<Client ID>",
"clientSecret": "<Client Secret>",
"authorizationUrl": "https://example.org/oauth2/authorize",
"accessTokenUrl": "https://example.org/oauth2/token",
"userInfoUrl": "https://example.org/oauth2/token",
"nameClaim": "nameIdentifier",
"groupsClaim": "groups"
}
SqlServer monitoring configuration
"Sql": {
"defaultConnectionString": "Data Source=127.0.0.1;Initial Catalog=master;User ID=sa;Password=123456",
"clusters": [
{
"name": "127.0.0.1",
"refreshIntervalSeconds": 20,
"nodes": [
{
"name": "127.0.0.1",
"connectionString": "Data Source=127.0.0.1;Initial Catalog=master;User ID=sa;Password=123456"
}
]
}
],
"instances": [
{
"name": "work",
"connectionString": "Data Source=127.0.0.1;Initial Catalog=master;User ID=sa;Password=123456"
}
]
},
Monitoring screenshot
login interface
Monitoring main interface
task list
project address
https://github.com/opserver/Opserver
- End -
recommended reading
A WinForm open source UI component framework supporting .Net 7
Inventory of 3 WMS warehouse management systems developed by .Net
A powerful .Net image manipulation library that supports more than 100 formats
Based on .NetCore+React single sign-on system
Recommend an open source project for Websocket group chat and private chat developed by .Net Core