docs: update site types to mokowaas/mokocrm/other
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
# Site Monitoring
|
||||
|
||||
Panopticon-style monitoring for Joomla and Dolibarr client sites using Prometheus, Grafana, and the Joomla Web Services API.
|
||||
Endpoint monitoring for MokoWaaS (Joomla) and MokoCRM (Dolibarr) client sites using Prometheus, Grafana, and the Joomla Web Services API.
|
||||
|
||||
---
|
||||
|
||||
@@ -15,13 +15,20 @@ sites.json (source of truth)
|
||||
│ ├── blackbox-http.json → Prometheus file_sd (uptime, SSL, response time)
|
||||
│ ├── blackbox-ssl.json → Prometheus file_sd (certificate expiry)
|
||||
│ ├── joomla-monitor.conf → joomla-monitor.sh (Joomla API metrics)
|
||||
│ └── Grafana dashboards → one per client (auto-generated)
|
||||
│ └── Grafana dashboards → MokoWaaS / MokoCRM dashboards
|
||||
│
|
||||
├── joomla-monitor.sh (cron every 30m)
|
||||
│ └── joomla-sites.prom → node-exporter textfile collector
|
||||
│
|
||||
└── Grafana Dashboard
|
||||
└── Client: {name} — Panopticon-style panels
|
||||
├── site-uptime-alert.sh (cron every 5m)
|
||||
│ └── ntfy alert-critical → DOWN/RECOVERED notifications
|
||||
│
|
||||
└── Grafana Dashboard (MokoWaaS)
|
||||
├── Site Health table
|
||||
├── Joomla Core & Extensions table
|
||||
├── Backup Status table
|
||||
├── Performance (response time + duration)
|
||||
└── Uptime History (30d availability)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -35,14 +42,14 @@ Central definition file at `moko-platform/monitoring/sites.json`. Defines all mo
|
||||
"grafana": {
|
||||
"baseUrl": "https://bench.mokoconsulting.tech",
|
||||
"apiKey": "glsa_...",
|
||||
"dashboardFolder": "Clients",
|
||||
"dashboardFolderUid": "cfldz4r88nhfkc"
|
||||
"dashboardFolder": "Endpoints",
|
||||
"dashboardFolderUid": "..."
|
||||
},
|
||||
"sites": [
|
||||
{
|
||||
"name": "clientname-live",
|
||||
"url": "https://example.com",
|
||||
"type": "joomla",
|
||||
"type": "mokowaas",
|
||||
"client": "ClientName",
|
||||
"joomlaToken": "...",
|
||||
"akeebaSecret": "",
|
||||
@@ -51,7 +58,7 @@ Central definition file at `moko-platform/monitoring/sites.json`. Defines all mo
|
||||
{
|
||||
"name": "clientname-dev",
|
||||
"url": "https://clientname.dev.mokoconsulting.tech",
|
||||
"type": "joomla",
|
||||
"type": "mokowaas-dev",
|
||||
"client": "ClientName",
|
||||
"joomlaToken": "...",
|
||||
"tlsVerify": false
|
||||
@@ -64,11 +71,13 @@ Central definition file at `moko-platform/monitoring/sites.json`. Defines all mo
|
||||
|
||||
| Type | Description |
|
||||
|------|-------------|
|
||||
| `joomla` | Joomla CMS (uses Joomla Web Services API) |
|
||||
| `dolibarr` | Dolibarr ERP |
|
||||
| `gitea` | Gitea instance |
|
||||
| `grafana` | Grafana instance |
|
||||
| `generic` | HTTP probe only |
|
||||
| `mokowaas` | MokoWaaS — Joomla CMS (uses Joomla Web Services API) |
|
||||
| `mokowaas-dev` | MokoWaaS development instance |
|
||||
| `mokowaas-demo` | MokoWaaS demo instance |
|
||||
| `mokocrm` | MokoCRM — Dolibarr ERP |
|
||||
| `mokocrm-dev` | MokoCRM development instance |
|
||||
| `mokocrm-demo` | MokoCRM demo instance |
|
||||
| `other` | HTTP probe only (gitea, grafana, etc.) |
|
||||
|
||||
### Multiple Endpoints per Client
|
||||
|
||||
@@ -86,7 +95,7 @@ monitor_site_add(name, url, type, client, joomlaToken, akeebaSecret, tlsVerify)
|
||||
|
||||
### Manual
|
||||
|
||||
1. Edit `monitoring/sites.json` -- add site entries
|
||||
1. Edit `monitoring/sites.json` — add site entries
|
||||
2. Run `monitoring/generate-targets.sh`
|
||||
3. Copy generated files to server:
|
||||
- `generated/blackbox-http.json` → `/opt/.../monitoring/targets/`
|
||||
@@ -101,7 +110,7 @@ monitor_site_add(name, url, type, client, joomlaToken, akeebaSecret, tlsVerify)
|
||||
monitoring/generate-targets.sh --deploy
|
||||
```
|
||||
|
||||
The `--deploy` flag auto-pushes generated targets to the server AND creates/updates Grafana dashboards (one per client) via the Grafana API. Dashboard UIDs are stable -- they are derived from a hash of the client name, so re-running `--deploy` updates existing dashboards rather than creating duplicates.
|
||||
The `--deploy` flag auto-pushes generated targets to the server AND creates/updates Grafana dashboards via the Grafana API. Dashboard UIDs are stable — they are derived from a hash of the client name, so re-running `--deploy` updates existing dashboards rather than creating duplicates.
|
||||
|
||||
---
|
||||
|
||||
@@ -145,22 +154,23 @@ Backup status is collected via the Akeeba Backup JSON API v2:
|
||||
|
||||
---
|
||||
|
||||
## Grafana Dashboards
|
||||
## Grafana Dashboard
|
||||
|
||||
Template at `monitoring/grafana/client-joomla-dashboard.json` in the client template repo.
|
||||
Dashboard: **MokoWaaS** (UID: `mokowaas`) in the Endpoints folder.
|
||||
|
||||
### Panel Layout
|
||||
### Table Layout
|
||||
|
||||
| Row | Content |
|
||||
|-----|---------|
|
||||
| **Row 1 -- Status** | Site UP/DOWN, Joomla ONLINE/OFFLINE, HTTP status, SSL cert days, API reachable, last check |
|
||||
| **Row 2 -- Updates** | Joomla version, core update available, extensions total/enabled/disabled |
|
||||
| **Row 3 -- Performance** | Response time breakdown, DNS lookup, total duration, TLS version, HTTP version |
|
||||
| **Row 4 -- Backup** | Last backup status, backup age, backup record count |
|
||||
| **Row 5 -- History** | 30-day availability timeline |
|
||||
| Section | Columns |
|
||||
|---------|---------|
|
||||
| **Site Health** | Endpoint (clickable → front page), Online, Status, HTTP (→ Wikipedia), API, SSL days, Last Scrape |
|
||||
| **Joomla Core & Extensions** | Endpoint (clickable → /administrator/), Version, System update, Ext Updates, Total, Enabled, Disabled |
|
||||
| **Backup Status** | Endpoint (clickable → Akeeba Manage), Status (OK/FAILED), Age, Records |
|
||||
| **Performance** | Response time chart (transfer + processing), Total duration gauge |
|
||||
| **Uptime History** | 30-day availability timeline |
|
||||
|
||||
### Dashboard Organization
|
||||
### Alerting
|
||||
|
||||
<<<<<<< Updated upstream
|
||||
| Folder | Contents |
|
||||
|--------|----------|
|
||||
| `Clients/` | Per-client dashboards (auto-generated by `generate-targets.sh --deploy`) |
|
||||
@@ -209,3 +219,6 @@ Template at `monitoring/grafana/client-joomla-dashboard.json` in the client temp
|
||||
| Revision | Date | Author | Description |
|
||||
|---|---|---|---|
|
||||
| 1.0 | 2026-05-09 | Moko Consulting | Initial version |
|
||||
=======
|
||||
`site-uptime-alert.sh` runs every 5 minutes and sends to ntfy `alert-critical` when any `mokowaas.*` site goes DOWN, with a recovery notification when it comes back UP.
|
||||
>>>>>>> Stashed changes
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# Sites Monitoring
|
||||
|
||||
The monitor MCP integrates with `sites.json` to manage monitored Joomla and Dolibarr sites. This provides a single source of truth for all client endpoints, driving Prometheus blackbox probes, Joomla API metrics, and Grafana dashboards.
|
||||
The monitor MCP integrates with `sites.json` to manage monitored MokoWaaS (Joomla) and MokoCRM (Dolibarr) sites. This provides a single source of truth for all client endpoints, driving Prometheus blackbox probes, Joomla API metrics, and Grafana dashboards.
|
||||
|
||||
## How it works
|
||||
|
||||
@@ -18,7 +18,7 @@ The monitor MCP integrates with `sites.json` to manage monitored Joomla and Doli
|
||||
├── blackbox-http.json → Prometheus
|
||||
├── blackbox-ssl.json → Prometheus
|
||||
├── joomla-monitor.conf → cron script
|
||||
└── Grafana dashboards → one per client
|
||||
└── Grafana dashboards → MokoWaaS / MokoCRM
|
||||
```
|
||||
|
||||
## sites.json format
|
||||
@@ -28,14 +28,14 @@ The monitor MCP integrates with `sites.json` to manage monitored Joomla and Doli
|
||||
"grafana": {
|
||||
"baseUrl": "https://bench.mokoconsulting.tech",
|
||||
"apiKey": "glsa_...",
|
||||
"dashboardFolder": "Clients",
|
||||
"dashboardFolderUid": "cfldz4r88nhfkc"
|
||||
"dashboardFolder": "Endpoints",
|
||||
"dashboardFolderUid": "..."
|
||||
},
|
||||
"sites": [
|
||||
{
|
||||
"name": "clientname-live",
|
||||
"url": "https://example.com",
|
||||
"type": "joomla",
|
||||
"type": "mokowaas",
|
||||
"client": "ClientName",
|
||||
"joomlaToken": "sha256:...",
|
||||
"akeebaSecret": "",
|
||||
@@ -49,20 +49,22 @@ The monitor MCP integrates with `sites.json` to manage monitored Joomla and Doli
|
||||
|
||||
| Type | Probes | API Monitoring |
|
||||
|------|--------|----------------|
|
||||
| `joomla` | HTTP, SSL | Version, updates, extensions, backup (via Joomla API) |
|
||||
| `dolibarr` | HTTP, SSL | Planned |
|
||||
| `gitea` | HTTP, SSL | -- |
|
||||
| `grafana` | HTTP, SSL | -- |
|
||||
| `generic` | HTTP, SSL | -- |
|
||||
| `mokowaas` | HTTP, SSL | Version, updates, extensions, backup (via Joomla API) |
|
||||
| `mokowaas-dev` | HTTP, SSL | Same as mokowaas |
|
||||
| `mokowaas-demo` | HTTP, SSL | Same as mokowaas |
|
||||
| `mokocrm` | HTTP, SSL | Planned |
|
||||
| `mokocrm-dev` | HTTP, SSL | Planned |
|
||||
| `mokocrm-demo` | HTTP, SSL | Planned |
|
||||
| `other` | HTTP, SSL | -- |
|
||||
|
||||
## Multiple endpoints per client
|
||||
|
||||
A single client can have multiple monitored endpoints sharing the same `client` label:
|
||||
|
||||
```json
|
||||
{"name": "acme-live", "url": "https://acme.com", "type": "joomla", "client": "ACME"},
|
||||
{"name": "acme-dev", "url": "https://acme.dev.mokoconsulting.tech", "type": "joomla", "client": "ACME", "tlsVerify": false},
|
||||
{"name": "acme-staging", "url": "https://acme-staging.com", "type": "joomla", "client": "ACME"}
|
||||
{"name": "acme-live", "url": "https://acme.com", "type": "mokowaas", "client": "ACME"},
|
||||
{"name": "acme-dev", "url": "https://acme.dev.mokoconsulting.tech", "type": "mokowaas-dev", "client": "ACME", "tlsVerify": false},
|
||||
{"name": "acme-staging", "url": "https://acme-staging.com", "type": "mokowaas", "client": "ACME"}
|
||||
```
|
||||
|
||||
Grafana dashboard dropdowns auto-populate from Prometheus `site_name` and `site_type` labels.
|
||||
@@ -83,7 +85,7 @@ Grafana dashboard dropdowns auto-populate from Prometheus `site_name` and `site_
|
||||
generate-targets.sh --deploy
|
||||
```
|
||||
|
||||
The `--deploy` flag now also auto-creates Grafana dashboards (one per client) via the Grafana API. Dashboard UIDs are stable (derived from client name hash), so re-running updates existing dashboards rather than creating duplicates.
|
||||
The `--deploy` flag also auto-creates Grafana dashboards via the Grafana API. Dashboard UIDs are stable (derived from client name hash), so re-running updates existing dashboards rather than creating duplicates.
|
||||
|
||||
## Template-Client-WaaS workflow files
|
||||
|
||||
@@ -96,8 +98,8 @@ The client template repo (`Template-Client-WaaS`) includes two Gitea Actions wor
|
||||
|
||||
## Related
|
||||
|
||||
- [SITE_MONITORING](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/SITE_MONITORING) -- full architecture docs in moko-platform wiki
|
||||
- [JOOMLA_SYNC](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/JOOMLA_SYNC) -- SFTP sync between dev/live servers
|
||||
- [SITE_MONITORING](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/SITE_MONITORING) — full architecture docs in moko-platform wiki
|
||||
- [JOOMLA_SYNC](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/JOOMLA_SYNC) — SFTP sync between dev/live servers
|
||||
]]>
|
||||
|
||||
---
|
||||
@@ -107,3 +109,4 @@ The client template repo (`Template-Client-WaaS`) includes two Gitea Actions wor
|
||||
| Revision | Date | Author | Description |
|
||||
|---|---|---|---|
|
||||
| 1.0 | 2026-05-09 | Moko Consulting | Initial version |
|
||||
| 1.1 | 2026-05-12 | Moko Consulting | Update site types to mokowaas/mokocrm/other |
|
||||
|
||||
Reference in New Issue
Block a user