- UDP prijemnik (podrazumevano 46465, NE 46464 gde uredjaji slusaju discovery): dnevnik rada sa zaglavljem #TERMINIA, heartbeat JSON, sve ostalo se odbacuje - paket bez zaglavlja (FW < 0.13.4) se vodi kao "nepoznat uredjaj" po izvornoj IP adresi i tako je i oznacen u prikazu - dnevnik u fajlove po uredjaju i danu, rotacija po velicini + tri kvote (starost, po uredjaju, ukupno); otvoren fajl se nikad ne brise - heartbeat u memoriji; interval se meri iz razmaka javljanja, "tih" = 3x interval - web stranica (podrazumevano 127.0.0.1:8081): spisak uredjaja, crveno za tihe, poslednjih N linija sa pretragom, /dnevnik.txt i /api/uredjaji - bez baze i bez spoljnih zavisnosti; ne dira licencni servis, njegovu bazu, rute ni nginx - sanitizacija svega iz paketa (duzine, kontrolni znaci, ime foldera) — bez izlaska iz foldera dnevnika - systemd unit + primer env fajla + README sa uputstvom za pustanje na server - testovi: parsiranje (zaglavlje/JSON/bez zaglavlja/smece), registar, rotacija i kvote, web rute Nije pusteno na server — puštanje radi vlasnik po logger/README.md.
43 lines
1.3 KiB
Desktop File
43 lines
1.3 KiB
Desktop File
# Prijemnik servisne dijagnostike sa TERMINIA uredjaja.
|
|
# Obrazac: licence-server.service (vidi docs/SETUP.md), ali BEZ MySQL zavisnosti -
|
|
# ovaj servis nema bazu i ne dodiruje licencni servis.
|
|
#
|
|
# Instalacija:
|
|
# cp logger/deploy/terminia-logger.service /etc/systemd/system/
|
|
# cp logger/deploy/terminia-logger.env.example /root/projects/licence-server/logger.env
|
|
# systemctl daemon-reload && systemctl enable --now terminia-logger
|
|
|
|
[Unit]
|
|
Description=TERMINIA prijemnik dijagnostike (UDP dnevnik + heartbeat)
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
WorkingDirectory=/root/projects/licence-server
|
|
ExecStart=/root/projects/licence-server/terminia-logger
|
|
EnvironmentFile=-/root/projects/licence-server/logger.env
|
|
Restart=always
|
|
RestartSec=5
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=terminia-logger
|
|
KillMode=mixed
|
|
KillSignal=SIGTERM
|
|
TimeoutStopSec=15
|
|
|
|
# Dnevnici sadrze BROJEVE KARATA - folder je citljiv samo vlasniku procesa.
|
|
StateDirectory=terminia-logger
|
|
StateDirectoryMode=0750
|
|
|
|
# Osnovno ogradjivanje: servis samo slusa UDP i pise u svoj folder.
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=full
|
|
# ProtectHome se NE ukljucuje: binar i EnvironmentFile stoje pod /root/projects
|
|
# (isto kao licence-server), a ProtectHome bi taj folder sakrio od servisa.
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|