Vraag


Acties:
  • 0 Henk 'm!

  • ECS Mechelen
  • Registratie: Maart 2024
  • Laatst online: 25-05 13:09
Mijn vraag
Dus tijd geleden bezig gehouden met het uitlezen van onze SMA STP omvormer via SBFspot en dan ook ineens uploaden naar pvoutput, maar daar kun je max data tot 14 mnd terug uploaden. Nu zien ik in de db wel dat de data vanaf het begin er in zit en die zou ik graag visualiseren.

Ik stuit alleen op een probleem dat grafana geen permissie heeft.
code:
1
error checking db: error checking path: stat /root/smadata/SBFspot.db: permission denied

natuurlijk opgezocht en alles wat nagekeken en de map permissies nagekeken maar grafana blijft problemen geven :/

Relevante software en hardware die ik gebruik
debian 12
sqlite
grafana met sqlite plugin

Wat ik al gevonden of geprobeerd heb
Volgens stat kan iedereen in de map
code:
1
2
3
4
5
6
7
8
9
root@ECS-HOLE2:~/smadata# stat /root/smadata/
  File: /root/smadata/
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 254,2   Inode: 260626      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-07-27 23:02:55.555532545 +0200
Modify: 2024-07-27 23:02:51.307478829 +0200
Change: 2024-07-27 23:41:05.088476815 +0200
 Birth: 2024-07-27 19:56:54.392509974 +0200

als ik dan stat doen van het bestand
code:
1
2
3
4
5
6
7
8
9
root@ECS-HOLE2:~/smadata# stat /root/smadata/SBFspot.db
  File: /root/smadata/SBFspot.db
  Size: 1564672         Blocks: 3056       IO Block: 4096   regular file
Device: 254,2   Inode: 260638      Links: 1
Access: (0645/-rw-r--r-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-07-27 23:02:51.307478829 +0200
Modify: 2024-07-27 23:02:51.355479439 +0200
Change: 2024-07-28 00:04:33.794311157 +0200
 Birth: 2024-07-27 23:02:51.307478829 +0200

Dan staat dat toch ook goed of mis ik wat :/

Edit: juist een dashboard aangemaakt (met deze sql query) met de mogelijk mislukte verbinding en krijg daar een hele andere melding
A
Status: 500. Message: unable to open database file: out of memory (14)
mmmh edit2: blijkbaar normaal als je geen verbinding kunt krijgen met de db.

[ Voor 8% gewijzigd door ECS Mechelen op 28-07-2024 00:29 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • sjorsjuhmaniac
  • Registratie: Februari 2009
  • Laatst online: 17:18
eenvoudiger is om met 'ls' (kleine l, kleine s) naar de rechten op bestanden en mappen te kijken.

bv, in de map:
code:
1
ls -lah


anyway, normaal gesproken is de map '/root/ al niet te 'openen' of 'lezen' door jan en alleman. dus je bestanden in die map kunnen dan wel de juiste rechten hebben; maar als de map '/root' dat niet heeft dan werkt het nog niet.

wat dingen om uit te zoeken:
- gebruik je dockers?
- waarom staat de db onder de /root user map?
- welke user (userid) gebruikt het grafana process?
- zit die grafana user in de groep 'root'?
- simpelste oplossing is waarschijnlijk om de db op een andere locatie op te slaan die makkelijker voor iedereen toegankelijk is, bv in '/opt/smadata'. Je kan je /root map wel voor iedereen opzetten maar dat is meestal niet zo slim.

Acties:
  • 0 Henk 'm!

  • ECS Mechelen
  • Registratie: Maart 2024
  • Laatst online: 25-05 13:09
@sjorsjuhmaniac bedankt om te antwoorden. Het helpt soms om wat teslapen :D

wat dingen om uit te zoeken:
- gebruik je dockers? >> Nope
- waarom staat de db onder de /root user map? >> omdat ik SBFspot onder root heb aangemaakt toen ik hun wiki aan't volgen was
- welke user (userid) gebruikt het grafana process? >> ? maar wrs niet meer nodig om dit te weten omdat het bestand is verzet
- zit die grafana user in de groep 'root'? >> Nope
- simpelste oplossing is waarschijnlijk om de db op een andere locatie op te slaan die makkelijker voor iedereen toegankelijk is, bv in '/opt/smadata'. Je kan je /root map wel voor iedereen opzetten maar dat is meestal niet zo slim. >> heb het nu verzet naar /usr/local/smadata, nu alleen de permissies nog zetten

Edit evendit gevolgd en daar staat in hoe je kunt testen of grafana user toegang heeft tot het db bestand en dan krijg ik dit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@ECS-HOLE2:/usr/local/smadata# sudo -u grafana cksum /usr/local/smadata/SBFspot.db
2128027217 1564672 /usr/local/smadata/SBFspot.db
root@ECS-HOLE2:/usr/local/smadata# sudo -u grafana bash
grafana@ECS-HOLE2:/usr/local/smadata$ dir
SBFspot.db
grafana@ECS-HOLE2:/usr/local/smadata$ sqlite3
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open SBFspot.db
sqlite> Select Dat.TimeStamp AS time, Power As value FROM DayData Dat ORDER BY Dat.Timestamp Desc;
Parse error: attempt to write a readonly database (8)
sqlite> .close

mmmmmh read only db :?

[ Voor 38% gewijzigd door ECS Mechelen op 28-07-2024 11:00 ]


Acties:
  • 0 Henk 'm!

  • sjorsjuhmaniac
  • Registratie: Februari 2009
  • Laatst online: 17:18
Reads zouden altijd al tegelijk moeten kunnen.

Ik zie in je code geen ‘la -lag’ doen om naar de file permissions te kijken. Als de file nog steeds geen 775 permissie heeft met de grafana user in de group die de file owned dan werk het nog niet.

Simpele test is even de file 777 forceren zodat je all discussie over file permissions kan uitsluiten

‘chmod 777 SBFspot.db’

Meer info:
https://stackoverflow.com...from-multiple-connections

Ps kan je niet beter die data collector naar een echte database zoals influx of graphite gaan laten schrijven? Dat maakt imho je leven een stuk makkelijker. Je verzamelt alle data in een en (verschillende tabellen) en laat grafana dan per dataset naar de en connecten

[ Voor 35% gewijzigd door sjorsjuhmaniac op 28-07-2024 12:05 ]


Acties:
  • 0 Henk 'm!

  • sjorsjuhmaniac
  • Registratie: Februari 2009
  • Laatst online: 17:18
De grafana user moet je alsnog weten als je het bestand verplaatst omdat die user toegang moet hebben tot het bestand. In je tests hierboven gebruik je de username ‘grafana’ om te testen.

Je kan kijken of dit goed is door te controleren met welke userid het grafana process normaal draait

Bv met ‘top’ of met ‘ps -aux |grep grafana’

Lees de manuals van het top en pa command even voordat je ze intypt

Acties:
  • 0 Henk 'm!

  • ECS Mechelen
  • Registratie: Maart 2024
  • Laatst online: 25-05 13:09
@sjorsjuhmaniacdie chmod 777 had ik al gedan en dat heeft niet geholpen, nu is het 664
SBFspot werk standaard alleen met SQLite en mysql en vermits het

Grafana user kan aan het bestand zie de checksum. Alleen als ik sqlite open via de grafana user dan loopt het mis.

mmmh verder zoeken.

Edit:
code:
1
2
3
4
5
6
7
root@ECS-HOLE2:/usr/local/smadata# ps -aux |grep grafana
root        8641  0.0  0.1  10196  4820 pts/0    S+   10:54   0:00 sudo -u grafana bash
root        8642  0.0  0.0  10196   524 pts/1    Ss   10:54   0:00 sudo -u grafana bash
grafana     8643  0.0  0.0   7196  3832 pts/1    S+   10:54   0:00 bash
grafana     9298  0.1  4.4 1562244 179756 ?      Ssl  12:01   0:04 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning
grafana     9304  0.0  0.6 739280 25672 ?        Sl   12:01   0:00 /var/lib/grafana/plugins/frser-sqlite-datasource/gpx_sqlite-datasource_linux_amd64
root        9567  0.0  0.0   6332  2072 pts/2    S+   12:37   0:00 grep grafana


edit: dus nieuwe group gemaakt genaamd "datagroup" daar users "root" en "grafana" in gestoken. Dat toegepast (recursive) op de smadata map en no sigar :(
code:
1
2
3
4
5
6
7
8
9
10
11
root@ECS-HOLE2:/usr/local/smadata# sudo groupadd datagroup
root@ECS-HOLE2:/usr/local/smadata# grep datagroup /etc/group
datagroup:x:1002:
root@ECS-HOLE2:/usr/local/smadata# sudo usermod -a -G datagroup grafana
root@ECS-HOLE2:/usr/local/smadata# sudo usermod -a -G datagroup root
root@ECS-HOLE2:/usr/local/smadata# id grafana
uid=115(grafana) gid=124(grafana) groups=124(grafana),1002(datagroup)
root@ECS-HOLE2:/usr/local/smadata# chgrp -R datagroup /usr/local/smadata
root@ECS-HOLE2:/usr/local/smadata# ls -l
total 1528
-rwxrwxrwx 1 root datagroup 1564672 Jul 27 23:02 SBFspot.db


edit2: heb juist nog de sqlite getest op de root en daarbij zien ik de data voorbij komen.
edit3: ja als je 2 terminals hebt open staan dan moet je wel de andere updaten las je iets aan de user aanpast :F
Edit3.1: goed in de terminal (onder de grafan user) krijg ik nu de sqli data tezien *O* maar de webserver nog niet :/ nog altijd "unable to open database file (14)".
- heb de daemon & de webserver herstart.
- bestands rechten verzet van 777 naar 665

Edit I give up, * ECS Mechelen gaat mysqli installeren.

[ Voor 93% gewijzigd door ECS Mechelen op 28-07-2024 19:10 ]

Pagina: 1