Tor Relay Bandwidth Plugin für Nagios/Icinga

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Tor Relays produzieren sehr viel Traffic. Den „Verbrauch“ kann man sehr schön mit Nagios/Icinga und Grafana visualisieren. Das sieht dann zum Beispiel so aus:

bandwidth-small

Auf dem Bild sind die letzten 6 Stunden vom heutigen Tag abgebildet. Vor allem Abends ist die Auslastung permanent am Limit.

Um die Performance Daten zu bekommen habe ich ein Script geschrieben, dass sich mit dem UNIX Control Socket des Tor Daemons verbindet, die konfigurierten Limits ausliest und mit den letzten 60 Einträgen aus den BW-Cache (das entspricht den letzten 60 Sekunden) Durchschnittswert des Traffics bildet.

Das Script steht wie immer auf GitHub zur Verfügung. Um die oben gezeigte Grafik mit eigenen Werten zu generieren kann man folgendes Grafana Panel verwenden:

{
 "aliasColors": {
 "Bandwidth burst": "#BF1B00",
 "Bandwidth burst (Hard Limit)": "#890F02",
 "Bandwidth rate": "#EF843C",
 "Bandwidth rate (Soft Limit)": "#F9934E",
 "Current speed": "#629E51",
 "Current speed write": "#5195CE",
 "Data Out (Piping into the Tor network)": "#447EBC",
 "Data out (Piping into the Tor network)": "#70DBED",
 "Network Out": "#70DBED",
 "Network Out (Piping into the Tor network)": "#447EBC",
 "Reject Rules": "#DEDAF7",
 "Reject rules": "#DEDAF7"
 },
 "bars": false,
 "datasource": null,
 "decimals": 2,
 "editable": true,
 "error": false,
 "fill": 1,
 "grid": {
 "leftLogBase": 1,
 "leftMax": null,
 "leftMin": null,
 "rightLogBase": 1,
 "rightMax": null,
 "rightMin": null,
 "threshold1": null,
 "threshold1Color": "rgba(54, 28, 184, 0.27)",
 "threshold2": null,
 "threshold2Color": "rgba(234, 112, 112, 0.22)",
 "thresholdLine": false
 },
 "id": 9,
 "leftYAxisLabel": "Speed in bytes/second",
 "legend": {
 "alignAsTable": true,
 "avg": true,
 "current": true,
 "hideEmpty": false,
 "max": true,
 "min": true,
 "rightSide": false,
 "show": true,
 "total": false,
 "values": true
 },
 "lines": true,
 "linewidth": 2,
 "links": [],
 "nullPointMode": "connected",
 "percentage": false,
 "pointradius": 5,
 "points": false,
 "renderer": "flot",
 "rightYAxisLabel": "",
 "seriesOverrides": [
 {
 "alias": "Data in (Downloading from the web)",
 "fill": 8,
 "linewidth": 2,
 "stack": "A",
 "yaxis": 1,
 "zindex": -3
 },
 {
 "alias": "Bandwidth rate",
 "fill": 0,
 "linewidth": 2,
 "stack": false,
 "yaxis": 1
 },
 {
 "alias": "Bandwidth burst",
 "fill": 0,
 "linewidth": 2,
 "stack": false,
 "yaxis": 1
 },
 {
 "alias": "Data out (Piping into the Tor network)",
 "fill": 8,
 "linewidth": 2,
 "stack": "A",
 "yaxis": 1,
 "zindex": -2
 },
 {
 "alias": "icinga2.mineralwasser.services.tor-bandwidth.tor-bandwidth.perfdata.rejectCount.value",
 "yaxis": 2
 },
 {
 "alias": "Reject Rules",
 "yaxis": 2
 }
 ],
 "span": 12,
 "stack": false,
 "steppedLine": false,
 "targets": [
 {
 "hide": false,
 "refId": "A",
 "target": "alias(icinga2.mineralwasser.services.tor-bandwidth.tor-bandwidth.perfdata.read.value, 'Data in (Downloading from the web)')",
 "textEditor": false
 },
 {
 "hide": false,
 "refId": "E",
 "target": "alias(icinga2.mineralwasser.services.tor-bandwidth.tor-bandwidth.perfdata.write.value, 'Data out (Piping into the Tor network)')",
 "textEditor": false
 },
 {
 "hide": false,
 "refId": "B",
 "target": "alias(icinga2.mineralwasser.services.tor-bandwidth.tor-bandwidth.perfdata.read.min, 'Bandwidth rate (Soft Limit)')"
 },
 {
 "hide": false,
 "refId": "D",
 "target": "alias(icinga2.mineralwasser.services.tor-bandwidth.tor-bandwidth.perfdata.read.max, 'Bandwidth burst (Hard Limit)')"
 }
 ],
 "timeFrom": null,
 "timeShift": null,
 "title": "Tor exit relay average speed",
 "tooltip": {
 "shared": true,
 "value_type": "individual"
 },
 "transparent": false,
 "type": "graph",
 "x-axis": true,
 "y-axis": true,
 "y_formats": [
 "Bps",
 "none"
 ]
}

 


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück