Dieser Beitrag wurde im Oktober 2016 geschrieben
"Hagfish" (der Schleimaal) heisst der Dienst, der die minütliche Abrechnung der Nutzung von Triton ermöglicht. Dies bezieht die aktuelle Konfiguration, die Instanzgröße, die verbrauchte Netzwerkbandbreite und den Plattenplatzverbrauch mit ein.
Jeder Telemetrieeintrag besteht aus einem kompletten JSON Objekt, unterteilt durch ASCII Zeilenumschaltungen. Es wird für jede Instanz, auf jedem Compute Node ein Eintrag generiert - egal ob sie gerade eingeschaltet ist. Dies geschieht alle 60 Sekunden. Dabei werden Dateien erzeugt, in denen alle Datenpunkte einer UTC-Stunde gesammelt sind.
Eine weitere Komponente für die Erfassung der Nutzdaten ist der Hermes-Archivdienst. Dieser lädt - sofern entsprechend konfiguriert - die Nutzungsdaten in den Manta-Objektstore hoch. Vorher sammelt Hermes die Daten von jedem Compute Node und speichert sie in einer Baumstruktur sortiert nach Datacenter, Server und Zeitstempel. Die Logfiles verbleiben nach einem erfolgreichen Upload für eine konfigurierbare Zeit auf dem entsprechenden Compute Node. Nach Verstreichen dieses Zeitraums, werden die alten Logs von dem Compute Node gelöscht.
Die Auswertung der Logs in Manta kann dann über Map and Reduce Jobs erfolgen (die Joyent zur Verfügung stellt, wenn man Triton lizensiert).
Konkret erzeugt Hagfish zwei Arten von Einträgen in seinen Logs. Den Summary Record:
{
"sdc_version": "7.0",
"server_uuid": "45474a4c-bbb0-1c54-9027-a2d04f4889b1",
"datacenter_name": "us-east-1",
"v": "HF4",
"timestamp": "2014-03-15T12:01:00.000Z",
"type": "summary",
"vm_count": 18,
"runtime": 1095
}
Und den Usage Record:
{
"sdc_version": "7.0",
"server_uuid": "6f113af2-2339-49ed-b10c-0b133c8c0bce",
"datacenter_name": "us-west-1",
"v": "HF4",
"timestamp": "2014-03-15T12:01:00.001Z",
"type": "usage",
"uuid": "3bc43279-8d88-4e74-8412-c3d9fe22441a",
"os_uuid": "3bc43279-8d88-4e74-8412-c3d9fe22441a",
"status": "running",
"config": {
"name": "3bc43279-8d88-4e74-8412-c3d9fe22441a",
"debugid": "27",
"zonepath": "/zones/3bc43279-8d88-4e74-8412-c3d9fe22441a",
"autoboot": "true",
"brand": "joyent",
"cpu_shares": "1024",
"zfs_io_priority": "10",
"max_lwps": "4000",
"max_physical_memory": "1073741824",
"max_locked_memory": "1073741824",
"max_swap": "2147483648",
"attributes": {
"owner-uuid": "2edc5aae-ca53-4176-af3b-2c6faef45ed2",
"package-name": "Small 1GB",
"package-version": "1.0.1",
"tmpfs": "1024",
"hostname": "blahblah",
"dns-domain": "local",
"resolvers": "8.8.8.8,8.8.4.4",
"alias": "robert0",
"create-timestamp": "2012-08-07T21:07:28.000Z",
"billing-id": "17ba1dd6-fd0f-4586-806d-a56135da7428",
"dataset-uuid": "a963d5d0-5e29-11e1-a4d7-a31977b1e6dd"
},
"cpu_cap": "200",
"networks": [
{
"mac_addr": "00:50:56:c0:00:08",
"vlan_id": "405",
"physical": "net0",
"global_nic": "external",
"index": "0",
"ip": "163.99.99.99",
"netmask": "255.255.255.0",
"gateway": "163.99.99.1"
},
{
"mac_addr": "10:40:f3:7a:c3:8e",
"vlan_id": "307",
"physical": "net2",
"global_nic": "internal",
"ip": "10.100.101.100",
"netmask": "255.255.255.0",
"index": "1",
"gateway": "10.100.101.1"
}
]
},
"network_usage": {
"net2": {
"sent_bytes": 25160107660,
"received_bytes": 5513894125,
"counter_start": "2014-01-27T23:19:45.003Z"
},
"net0": {
"sent_bytes": 382735714,
"received_bytes": 570332335,
"counter_start": "2014-01-27T23:19:45.003Z"
}
}
}
Ein Summary
Record erscheint im Log nur wenn alle Usage Records für einen Zeitstempel geschrieben worden sind. Summary Records sollten verwendet werden, um sicherzustellen, dass alle Usage Records eines Zeitstempels korrekt gelesen und verarbeitet worden sind. "Runtime" bezeichnet die Laufzeit des Datensammlungsprozesses (in Millisekunden).
Usage Records enthalten - je nach Art der Zone (virtuelle Maschine oder Container) verschiedene Angaben zum Verbrauch. Schön sind in dem Beispiel-Record die Daten über den Netzwerkverbrauch zu sehen. Weiterhin sieht man die gesetzten Maximalwerte für Threads (LWPs), Hauptspeicher, Swap, CPU-Shares (Min), CPU-cap (Max) und die ZFS IO-Priority. Da die Werte alle 60 Sekunden erhoben werden, lässt sich so eine minutengenaue Abrechnung realisieren. Die dezentrale Erhebung mit der zentralen Speicherung in einem idealerweise georedundanten System wie Manta verspricht eine hohe Verfügbarkeit der Daten. Beim Ausfall eines Compute Nodes, ist auch die weitere Erhebung von Verbrauchsdaten für diesen Compute Node sinnlos.
Für das Übertragen der Daten zu Manta ist sdc-hermes verantwortlich. Die Funktion und die Komponenten des Dienstes werden aus der Ascii-Grafik, die als Dokumentation dient, ersichtlich:
+-------------------------------------------------------------+
| COMPUTE NODE GLOBAL ZONE |
| |
| <global zone log files> ............> **************** |
| * * |
| +-------------------------+ * * |
| | TRITON SERVICE ZONE(S) | * hermes-actor * |
| | | * * |
| | <log files> ..................> * * |
| +-------------------------+ **************** |
| : |
| ,---------^ : |
| / : |
+------------------------------ / ----------------- : --------+
/ :
deployment, CONNECT
config, control proxy
/ :
+------------------------- / ---------------------- : --------+
| "sdc" ZONE / V |
| ________ **************** **************** |
| (________) * * * * |
| | config |----> * * ,--> * * |
| | files | * hermes * | * hermes-proxy * |
| \________/ * * | * * |
| | * * | * * |
| | **************** | **************** |
| | | : |
| `---------------------------' : |
| : |
+-------------------------------------------------- : --------+
:
. . HTTPS
|_.-._| :
./ \. <.......................;
_.-'` `'-._
.-' Manta '-.
,'_.._ Storage _.._', LEGEND:
'` `'-. .-'` `' +-- zone/server --+
'. .' *** smf service ***
\_/|\_/ ... log data .....>
| --- config ------->
|
|
Die Konfiguration ist dabei auch relativ einfach. Es müssen nur die beiden Dienste "hermes
" und "hermes-proxy
" mit Zugangsdaten zu Manta versorgt werden. Dazu loggt man sich in die sdc
-Zone von Triton (auf dem headnode) ein und editiert die Konfigurationsdateien für die genannten Dienste. Bei mir sieht die Konfiguration so aus:
[root@e394dcbf-564b-4f43-b428-9a4ce317573f (de-gt-2:sdc0) /opt/smartdc/hermes/etc]# cat config.json
{
"admin_ip": "10.65.68.25",
"port": 9999,
"log_level": "",
"sapi": {
"url": "http://sapi.de-gt-2.srv.tgos.de"
},
"vmapi": {
"url": "http://vmapi.de-gt-2.srv.tgos.de"
},
"cnapi": {
"url": "http://cnapi.de-gt-2.srv.tgos.de"
},
"manta": {
"user": "admin",
"url": "https://manta.de-gt.srv.tgos.de",
"key_id": "5c:b7:25:ef:ec:b4:f3:d3:67:b5:35:5a:c2:3c:b7:88",
"connect_timeout": "300"
},
"max_concurrent_bootstraps": 32
}
[root@e394dcbf-564b-4f43-b428-9a4ce317573f (de-gt-2:sdc0) /opt/smartdc/hermes/etc]# cat proxy.json
{
"bind_ip": "10.65.68.25",
"bind_port": 3128,
"backend": "https://manta.de-gt.srv.tgos.de",
"log_level": ""
}
Dabei habe ich nur die Werte unter "manta" und unter "backend" eingetragen, weil diese in den entsprechenden Logfiles der Dienste als fehlend angemeckert wurden. Ist der Dienst nicht konfiguriert sieht er offenbar zyklisch nach, ob eine valide Konfiguration existiert. Ist dies der Fall, wird der Dienst gestartet und der "hermes-actor
" auf alle Compute Nodes ausgebracht:
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"msg":"configuration missing \"manta.user\"","time":"2018-08-13T21:34:16.157Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"msg":"configuration valid; starting...","time":"2018-08-13T21:34:46.159Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"msg":"starting periodic worker","time":"2018-08-13T21:34:46.349Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"component":"HttpServer","level":30,"address":{"address":"10.65.68.25","family":"IPv4","port":9999},"msg":"http server listening","time":"2018-08-13T21:34:46.403Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"9af27feb-dcb4-11e3-8a81-70e28407685c","msg":"deploying actor","time":"2018-08-13T21:34:51.351Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a961e2fe-4626-491d-bf59-a6bbf133043f","msg":"deploying actor","time":"2018-08-13T21:34:51.354Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"6426b66b-11e8-49bd-8185-73171054bae7","msg":"deploying actor","time":"2018-08-13T21:34:51.355Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"eff10f9a-8e60-4a73-811c-5078cde28c7c","msg":"deploying actor","time":"2018-08-13T21:34:51.356Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a5083dee-d9d3-11e3-bdb9-70e284073792","msg":"deploying actor","time":"2018-08-13T21:34:51.358Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"1a06f7b0-bc67-4165-a84a-1bfbd02d1586","msg":"deploying actor","time":"2018-08-13T21:34:51.358Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"1f669469-dcb5-11e3-b04c-70e284076842","msg":"deploying actor","time":"2018-08-13T21:34:51.359Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"3a3100f7-01b9-417f-ae1f-fc98a6773b2b","msg":"deploying actor","time":"2018-08-13T21:34:51.360Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"acef1f38-2cec-11e4-ac14-f9492575343c","msg":"deploying actor","time":"2018-08-13T21:34:51.360Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"2e140f75-d294-40d5-85bf-0b61b713065b","msg":"deploying actor","time":"2018-08-13T21:34:51.361Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"dabadf51-ca52-46c2-a34e-346403432acb","msg":"deploying actor","time":"2018-08-13T21:34:51.361Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"10ff505a-2faa-4e9d-9dda-22eb53e29d22","msg":"deploying actor","time":"2018-08-13T21:34:51.362Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a316e522-f6c1-11e3-b9cb-70e284086a2a","msg":"deploying actor","time":"2018-08-13T21:34:51.362Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a0cc627a-dcb6-11e3-a170-70e28407681e","msg":"deploying actor","time":"2018-08-13T21:34:51.362Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"94caf9cd-15a7-4ee8-b290-0f2b578253d4","msg":"deploying actor","time":"2018-08-13T21:34:51.363Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"bf64ffbf-f419-445f-a00e-26e6e71d3306","msg":"deploying actor","time":"2018-08-13T21:34:51.363Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"99d21c6f-0f7a-4b81-86c2-994ba879b23e","msg":"deploying actor","time":"2018-08-13T21:34:51.364Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"f7206ab8-98da-42bf-8bd5-66cd1c49bb53","msg":"deploying actor","time":"2018-08-13T21:34:51.364Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"6426b66b-11e8-49bd-8185-73171054bae7","msg":"actor deployed","time":"2018-08-13T21:34:51.980Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"eff10f9a-8e60-4a73-811c-5078cde28c7c","msg":"actor deployed","time":"2018-08-13T21:34:52.023Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"9af27feb-dcb4-11e3-8a81-70e28407685c","msg":"actor deployed","time":"2018-08-13T21:34:52.075Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a5083dee-d9d3-11e3-bdb9-70e284073792","msg":"actor deployed","time":"2018-08-13T21:34:52.087Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a961e2fe-4626-491d-bf59-a6bbf133043f","msg":"actor deployed","time":"2018-08-13T21:34:52.137Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"1f669469-dcb5-11e3-b04c-70e284076842","msg":"actor deployed","time":"2018-08-13T21:34:52.661Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"1a06f7b0-bc67-4165-a84a-1bfbd02d1586","msg":"actor deployed","time":"2018-08-13T21:34:52.676Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"3a3100f7-01b9-417f-ae1f-fc98a6773b2b","msg":"actor deployed","time":"2018-08-13T21:34:52.802Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"acef1f38-2cec-11e4-ac14-f9492575343c","msg":"actor deployed","time":"2018-08-13T21:34:52.810Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"2e140f75-d294-40d5-85bf-0b61b713065b","msg":"actor deployed","time":"2018-08-13T21:34:52.914Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"dabadf51-ca52-46c2-a34e-346403432acb","msg":"actor deployed","time":"2018-08-13T21:34:53.361Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"10ff505a-2faa-4e9d-9dda-22eb53e29d22","msg":"actor deployed","time":"2018-08-13T21:34:53.444Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a316e522-f6c1-11e3-b9cb-70e284086a2a","msg":"actor deployed","time":"2018-08-13T21:34:53.477Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"94caf9cd-15a7-4ee8-b290-0f2b578253d4","msg":"actor deployed","time":"2018-08-13T21:34:53.702Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"a0cc627a-dcb6-11e3-a170-70e28407681e","msg":"actor deployed","time":"2018-08-13T21:34:54.033Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"bf64ffbf-f419-445f-a00e-26e6e71d3306","msg":"actor deployed","time":"2018-08-13T21:34:54.061Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"99d21c6f-0f7a-4b81-86c2-994ba879b23e","msg":"actor deployed","time":"2018-08-13T21:34:54.097Z","v":0}
{"name":"hermes","hostname":"e394dcbf-564b-4f43-b428-9a4ce317573f","pid":54823,"level":30,"server":"f7206ab8-98da-42bf-8bd5-66cd1c49bb53","msg":"actor deployed","time":"2018-08-13T21:34:54.220Z","v":0}
Ähnlich sieht es auch bei hermes-proxy
aus. Es dauert ein bißchen, bis die Adressen aufgelöst werden können. Doch dann scheint die Verbindung zu funktionieren. Aber die Logfile-Uploads funktionierten leider noch nicht. Auf den Compute Nodes sah das Log des "hermes-actor
" so aus:
[2018-08-16T06:00:01.087Z] ERROR: hermes-actor/LogsetWorker/36564 on hh24-gts2-de29: failed to upload file to Manta (logset_name=firewaller_logs)
VError: could not mkdirp: /poseidon/stor/logs/de-gt-2/firewaller/2018/08/12/01: The signature we calculated does not match the one you sent
at /opt/smartdc/hermes-actor/deploy/lib/worker.js:367:9
at f (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/once/once.js:16:25)
at /opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:1352:13
at next (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/vasync/lib/vasync.js:179:4)
at self.client.put.onRequestCallback.onResult (/opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:1264:21)
at /opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:396:17
at IncomingMessage.<anonymous> (/opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:385:9)
at IncomingMessage.g (events.js:180:16)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
Caused by: InvalidSignatureError: The signature we calculated does not match the one you sent
at ClientRequest.onResponse (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/restify/lib/clients/http_client.js:133:38)
at ClientRequest.g (events.js:180:16)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at HTTPParser.parserOnIncomingClient (http.js:1688:21)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
at CleartextStream.socketOnData (http.js:1583:20)
at CleartextStream.read [as _read] (tls.js:511:12)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.write [as _write] (tls.js:366:25)
at doWrite (_stream_writable.js:226:10)
[2018-08-16T06:00:01.100Z] ERROR: hermes-actor/LogsetWorker/36564 on hh24-gts2-de29: failed to upload file to Manta (logset_name=vm_agent_logs)
VError: could not mkdirp: /poseidon/stor/logs/de-gt-2/vm-agent/2018/08/11/15: The signature we calculated does not match the one you sent
at /opt/smartdc/hermes-actor/deploy/lib/worker.js:367:9
at f (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/once/once.js:16:25)
at /opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:1352:13
at next (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/vasync/lib/vasync.js:179:4)
at self.client.put.onRequestCallback.onResult (/opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:1264:21)
at /opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:396:17
at IncomingMessage.<anonymous> (/opt/smartdc/hermes-actor/deploy/node_modules/manta/lib/client.js:385:9)
at IncomingMessage.g (events.js:180:16)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
Caused by: InvalidSignatureError: The signature we calculated does not match the one you sent
at ClientRequest.onResponse (/opt/smartdc/hermes-actor/deploy/node_modules/manta/node_modules/restify/lib/clients/http_client.js:133:38)
at ClientRequest.g (events.js:180:16)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at HTTPParser.parserOnIncomingClient (http.js:1688:21)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
at CleartextStream.socketOnData (http.js:1583:20)
at CleartextStream.read [as _read] (tls.js:511:12)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.write [as _write] (tls.js:366:25)
at doWrite (_stream_writable.js:226:10)
Auf Anfrage in der Mailingliste erhielt ich den Hinweis, dass ich nicht den User poseidon
sondern den User admin
verwenden solle (admin
ist der Admin von Triton - poseidon
ist der Admin von Manta - nicht mischen). Das habe ich gemacht und dann noch die ssh public-keys des Users admin
aus dem de-gt-2 beim selben User im Manta-Setup eingetragen (über die adminui) und dann funktionierten auch die Uploads:
[2018-08-16T07:24:19.883Z] INFO: hermes-actor/LogsetWorker/36564 on hh24-gts2-de29: uploaded log file to manta (logset_name=fwadm_logs, do_delete=true, upload_time_ms=673, md5=1B2M2Y8AsgTpgAmY7PhCfg==)
file: {
"path": "/var/log/fw/fwadm_hh24-gts2-de29_2018-08-12T13:00:00.log",
"mtime": "2018-08-12T12:00:01.000Z",
"size": 0,
"real_path": "/var/log/fw/fwadm_hh24-gts2-de29_2018-08-12T13:00:00.log"
}
--
manta_path: /admin/stor/logs/de-gt-2/fwadm/2018/08/12/12/hh24-gts2-de29.log
[2018-08-16T07:24:20.228Z] INFO: hermes-actor/LogsetWorker/36564 on hh24-gts2-de29: uploaded log file to manta (logset_name=vmadm_logs, do_delete=true, upload_time_ms=717, md5=1B2M2Y8AsgTpgAmY7PhCfg==)
file: {
"path": "/var/log/vm/vmadm_hh24-gts2-de29_2018-08-11T05:00:00.log",
"mtime": "2018-08-11T04:00:00.000Z",
"size": 0,
"real_path": "/var/log/vm/vmadm_hh24-gts2-de29_2018-08-11T05:00:00.log"
}
--
manta_path: /admin/stor/logs/de-gt-2/vmadm/2018/08/11/04/hh24-gts2-de29.log
[2018-08-16T07:24:20.287Z] INFO: hermes-actor/LogsetWorker/36564 on hh24-gts2-de29: removed local file (logset_name=fwadm_logs, do_delete=true)
file: {
"path": "/var/log/fw/fwadm_hh24-gts2-de29_2018-08-12T13:00:00.log",
"mtime": "2018-08-12T12:00:01.000Z",
"size": 0,
"real_path": "/var/log/fw/fwadm_hh24-gts2-de29_2018-08-12T13:00:00.log"
}
--
manta_path: /admin/stor/logs/de-gt-2/fwadm/2018/08/12/12/hh24-gts2-de29.log
Trotzdem wäre es natürlich interessant, wie die Reports denn nun ungefähr aussehen, die aus den Logfiles erstellt werden. Nach ein paar Wochen Betrieb der Manta-Installation sieht das für Manta aus wie folgt. Für Triton wird es wahrscheinlich ähnlich aussehen:
root@e3b75fc5-3621-cdd8-f9dd-c9acbf4a37e9:~# cat daily-summary.txt
Summary for 2018-10-15T00:00:00.000Z
LOGIN GBHOURS GBSECS BWIN BWOUT
admin 39624 0 27G 0B
poseidon 33075 8391 0B 0B
mhbloed 2 0 0B 0B
root@e3b75fc5-3621-cdd8-f9dd-c9acbf4a37e9:~# cat hourly-compute-usage.txt
Generated Fri Oct 19 19:55:11 UTC 2018
Compute data from the hour of 2018-10-19T19:18:11.381Z
LOGIN BILLTIME RAWTIME JOBS PHASES TASKS BWIN BWOUT
poseidon 2m39s 2m39s 3 5 25 47K 0B
root@e3b75fc5-3621-cdd8-f9dd-c9acbf4a37e9:~# cat hourly-request-usage.txt
Generated Fri Oct 19 19:55:07 UTC 2018
Request data from the hour of 2018-10-19T19:20:12.008Z
LOGIN TOTAL BWIN BWOUT
admin 1.1G 1.1G 0B
root@e3b75fc5-3621-cdd8-f9dd-c9acbf4a37e9:~# cat hourly-storage-usage.txt
Generated Fri Oct 19 19:55:02 UTC 2018
Storage data from the hour of 2018-10-19T08:23:20.519Z
LOGIN TOTAL STORAGE PUBLIC JOBS
admin 1.7T 1.7T 0B 0B
poseidon 1.4T 1.3T 0B 37G
mhbloed 12M 3.2M 0B 9.3M
Je nach Vorhaben, kann man diese Reports dann als Input für ein Userportal und/oder die Abrechnung verwenden.