[netcup] vServer Monitor - MySQL Datenbank
Einige der erfassten Daten müssen in MySQL Tabellen gespeichert werden, da aus diesen Daten Diagramme erstellt werden. Dies trifft auf Swap/Ram, CPU Auslastung und Traffic zu.
Wichtiger Hinweis
Falls die Backup Scripte »MySQL Backup 2.0« und/oder »Folder Backup« verwendet werden, bietet es sich an, die Tabellen zur Erfassung von Swap/Ram, CPU Auslastung und Taffic in der selben Datenbank anzulegen.
So kann man später die Logs der Backups mit in den vServer Monitor einbauen.
Die MySQL Tabellen
Die Datenbank Tabellen müssen wie folgt angelegt werden:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | -- log_loadavg CREATE TABLE IF NOT EXISTS `log_loadavg` ( `date` datetime NOT NULL, `cpu` int(11) NOT NULL, `user` int(10) unsigned NOT NULL, `nice` int(10) unsigned NOT NULL, `system` int(10) unsigned NOT NULL, `idle` int(10) unsigned NOT NULL, PRIMARY KEY (`date`,`cpu`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- log_memory CREATE TABLE IF NOT EXISTS `log_memory` ( `date` datetime NOT NULL, `memory` int(10) unsigned NOT NULL, `swap` int(10) unsigned NOT NULL, `max_memory` int(10) unsigned NOT NULL, `max_swap` int(10) unsigned NOT NULL, PRIMARY KEY (`date`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- log_traffic CREATE TABLE IF NOT EXISTS `log_traffic` ( `date` date NOT NULL, `incoming` double NOT NULL, `outgoing` double NOT NULL, `last_edit` datetime NOT NULL, PRIMARY KEY (`date`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
MySQL Benutzer
Nun müssen noch zwei MySQL Benutzer angelegt werden. Einer für die Cronjobs, zum einfügen der Daten in die Tabellen, und einen zum auslesen der Daten aus dem PHP Script.
Da man bei einem PHP Script nicht immer die optimalen Zugriffsrechte setzen kann, ist es unbedingt nötig, dort einen User einzusetzen, der wirklich nur die gebrauchten Tabellen lesen kann. Und sonst _nichts_ anderes.
Man kann natürlich die Namen der Benutzer nach belieben anpassen. Außerdem müssen die Sterne "***" durch ein richtiges Passwort ersetzt werden. (Keygen)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | -- Benutzer anlegen CREATE USER 'sysmon_select'@'localhost' IDENTIFIED BY '***'; CREATE USER 'sysmon_insert'@'localhost' IDENTIFIED BY '***'; GRANT USAGE ON * . * TO 'sysmon_select'@'localhost' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT USAGE ON * . * TO 'sysmon_insert'@'localhost' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; -- Leserechte fuer PHP Script GRANT SELECT ON `database`.`log_loadavg` TO 'sysmon_select'@'localhost'; GRANT SELECT ON `database`.`log_memory` TO 'sysmon_select'@'localhost'; GRANT SELECT ON `database`.`log_traffic` TO 'sysmon_select'@'localhost'; -- Schreibrechte fuer Cronjobs GRANT SELECT, INSERT ON `database`.`log_loadavg` TO 'sysmon_insert'@'localhost'; GRANT SELECT, INSERT ON `database`.`log_memory` TO 'sysmon_insert'@'localhost'; GRANT SELECT, INSERT ON `database`.`log_traffic` TO 'sysmon_insert'@'localhost'; -- Leserechte auf die Backup Log (optional) GRANT SELECT ON `database`.`backup_log` TO 'sysmon_select'@'localhost'; -- Rechte neu laden flush privileges; |
`database` muss dabei natürlich durch den richtigen Datenbanknamen ersetzt werden.
Zeile 17+18 kann weggelassen werden, falls die Backup Scripte »MySQL Backup 2.0« und/oder »Folder Backup« nicht verwendet werden.
Nach dem anlegen der Benutzers bietet es sich an, die Rechte zu testen, um auch sicher zu gehen, dass alles korrekt ist. Da genügt es, sich einfach mal via phpMyAdmin oder dem Command Line MySQL Client mit den Benutzern anzumelden, und alles auszutesten.




