mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-09 20:31:10 +00:00
write a readme
This commit is contained in:
parent
8b18d407d7
commit
4558cf9e6f
7 changed files with 116 additions and 4 deletions
67
README.md
67
README.md
|
|
@ -0,0 +1,67 @@
|
||||||
|
# lego-monitoring
|
||||||
|
|
||||||
|
Simple system monitoring service. Sends alerts in Telegram. Currently supports monitoring:
|
||||||
|
* CPU/RAM/network usage
|
||||||
|
* temperature readings
|
||||||
|
* [vulnix](https://github.com/nix-community/vulnix) readings (NixOS only)
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### NixOS
|
||||||
|
|
||||||
|
Only flake-based setups are supported.
|
||||||
|
|
||||||
|
Include the module in your `flake.nix`:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
# ... your other inputs ...
|
||||||
|
lego-monitoring = {
|
||||||
|
url = "git+https://gitlab.altau.su/lego/lego-monitoring.git";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
lego-monitoring,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# change `yourhostname` to your actual hostname
|
||||||
|
nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
|
||||||
|
# change to your system:
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
lego-monitoring.nixosModules.default
|
||||||
|
./configuration.nix
|
||||||
|
# ... your other modules ...
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
See [docs/nixos-options.md](docs/nixos-options.md) for available configuration options.
|
||||||
|
|
||||||
|
### Non-NixOS
|
||||||
|
|
||||||
|
Requires [uv](https://github.com/astral-sh/uv), systemd.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /opt
|
||||||
|
git clone https://gitlab.altau.su/lego/lego-monitoring.git
|
||||||
|
cd lego-monitoring
|
||||||
|
uv sync
|
||||||
|
cp config.example.json config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit `config.json` to suit your usage scenario. The default configuration only sends alerts on service's start and stop.
|
||||||
|
You may refer to the NixOS option documentation, as its options are the same, except JSON uses snake_case instead of lowerCamelCase.
|
||||||
|
|
||||||
|
Then enable and start the service:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ln -s /opt/lego-monitoring/lego-monitoring.service /etc/systemd/system/lego-monitoring.service
|
||||||
|
systemctl enable --now lego-monitoring
|
||||||
|
```
|
||||||
15
config.example.json
Normal file
15
config.example.json
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"log_level": "INFO",
|
||||||
|
"enabled_check_sets": [
|
||||||
|
"start",
|
||||||
|
"stop",
|
||||||
|
"remind"
|
||||||
|
],
|
||||||
|
"telegram": {
|
||||||
|
"creds_secret_path": "/opt/lego-monitoring/tg-creds.txt",
|
||||||
|
"roomId": "0"
|
||||||
|
},
|
||||||
|
"checks": {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -28,7 +28,16 @@ boolean
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List of enabled check sets\. Each check set is a module which checks something and generates alerts based on check results\.
|
List of enabled check sets\. Each check set is a module which checks something and generates alerts based on check results\. Available check sets:
|
||||||
|
|
||||||
|
- start – send an alert when lego-monitoring is started
|
||||||
|
- stop – send an alert when lego-monitoring is stopped
|
||||||
|
- remind – periodically (daily by default) remind about ongoing unresolved alerts
|
||||||
|
- cpu – alerts when CPU usage is above threshold
|
||||||
|
- ram – alerts when RAM usage is above threshold
|
||||||
|
- temp – alerts when temperature readings are above thresholds
|
||||||
|
- net – alerts when network usage is above threshold
|
||||||
|
- vulnix – periodically scans system for known CVEs, alerts if any are found (NixOS only)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
12
lego-monitoring.service
Normal file
12
lego-monitoring.service
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Lego-monitoring service
|
||||||
|
StartLimitBurst=3
|
||||||
|
StartLimitIntervalSec=20
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/opt/lego-monitoring/.venv/bin/lego-monitoring -c /opt/lego-monitoring/config.json
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
@ -38,7 +38,16 @@ in
|
||||||
"vulnix"
|
"vulnix"
|
||||||
]);
|
]);
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = "List of enabled check sets. Each check set is a module which checks something and generates alerts based on check results.";
|
description = ''
|
||||||
|
List of enabled check sets. Each check set is a module which checks something and generates alerts based on check results. Available check sets:
|
||||||
|
* start -- send an alert when lego-monitoring is started
|
||||||
|
* stop -- send an alert when lego-monitoring is stopped
|
||||||
|
* remind -- periodically (daily by default) remind about ongoing unresolved alerts
|
||||||
|
* cpu -- alerts when CPU usage is above threshold
|
||||||
|
* ram -- alerts when RAM usage is above threshold
|
||||||
|
* temp -- alerts when temperature readings are above thresholds
|
||||||
|
* net -- alerts when network usage is above threshold
|
||||||
|
* vulnix -- periodically scans system for known CVEs, alerts if any are found (NixOS only)'';
|
||||||
};
|
};
|
||||||
|
|
||||||
telegram = {
|
telegram = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "lego-monitoring"
|
name = "lego-monitoring"
|
||||||
version = "0.1.0"
|
version = "1.0.0"
|
||||||
description = "Monitoring software for the lego server"
|
description = "Monitoring software for the lego server"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
|
|
|
||||||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -22,7 +22,7 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lego-monitoring"
|
name = "lego-monitoring"
|
||||||
version = "0.1.0"
|
version = "1.0.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "alt-utils" },
|
{ name = "alt-utils" },
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue