tsmmonitor2/install/0_0_1_to_0_0_2.php

49 lines
43 KiB
PHP
Raw Normal View History

<?php
/*
************************************************************************
TSM Monitor 2 v0.1 (www.tsm-monitor.org)
Copyright (C) 2009 Michael Clemens <mail@tsm-monitor.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
************************************************************************
*/
/**
*
* 0_0_1_to_0_0_2.php, TSM Monitor
*
* install php file
*
* @author Frank Fegert
* @package tsmmonitor
*/
function upgrade_to_0_0_2() {
/* Add some configuration values */
upgradeDB("0.0.2", "UPDATE cfg_config SET description = 'dsmadmc Binary Path' WHERE confkey='path_dsmadmc'");
upgradeDB("0.0.2", "INSERT INTO `cfg_config` (`id`, `confkey`, `confval`, `description`) VALUES (8, 'path_php', '', 'PHP Binary Path'), (9, 'polld_maxproc', '5', 'PollD maximum concurrent processes')");
/* Add joblist table for PollD_MP */
upgradeDB("0.0.2", "CREATE TABLE IF NOT EXISTS `job_list` ( `id` int(11) NOT NULL auto_increment, `servername` varchar(35) collate utf8_unicode_ci NOT NULL, `status` varchar(35) collate utf8_unicode_ci NOT NULL, `lastrun` int(11) default NULL, `nextrun` int(11) default NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4");
/* Drop and readd cfg_overviewqueries for TSM 6.1 support */
upgradeDB("0.0.2", "DROP TABLE IF EXISTS `cfg_overviewqueries`");
upgradeDB("0.0.2", "CREATE TABLE IF NOT EXISTS `cfg_overviewqueries` ( `id` int(11) NOT NULL auto_increment, `name` varchar(35) collate utf8_unicode_ci NOT NULL, `query_v5` varchar(255) collate utf8_unicode_ci NOT NULL, `query_v6` varchar(255) collate utf8_unicode_ci NOT NULL, `unit` varchar(10) collate utf8_unicode_ci NOT NULL, `alert_comp` varchar(35) collate utf8_unicode_ci NOT NULL, `alert_val` varchar(35) collate utf8_unicode_ci NOT NULL, `alert_col` varchar(35) collate utf8_unicode_ci NOT NULL, `notforlibclient` int(1) NOT NULL default '0', `pollfreq` int(11) NOT NULL, `parent` varchar(35) collate utf8_unicode_ci NOT NULL, `sortorder` tinyint(4) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=20");
upgradeDB("0.0.2", "INSERT INTO `cfg_overviewqueries` (`id`, `name`, `query_v5`, `query_v6`, `unit`, `alert_comp`, `alert_val`, `alert_col`, `notforlibclient`, `pollfreq`, `parent`, `sortorder`) VALUES (1, 'Total Data stored', 'SELECT CAST(FLOAT(SUM(logical_mb)) / 1024 / 1024 AS DEC(8,3)) FROM occupancy', 'SELECT CAST(FLOAT(SUM(logical_mb)) / 1024 / 1024 AS DEC(8,3)) FROM occupancy', 'TB', '', '', '', 0, 3, 'totaldata', 10), (2, 'Total Data backuped', 'SELECT cast(float(sum(bytes))/1024/1024/1024/1024 as dec(8,3)) FROM SUMMARY WHERE ACTIVITY=''BACKUP'' AND (CURRENT_TIMESTAMP-END_TIME)HOURS LESS= 24 HOURS', 'select ''N/A'' from status', 'TB', '', '', '', 0, 3, 'totaldata', 20), (3, 'Total Data archived', 'SELECT cast(float(sum(bytes))/1024/1024/1024/1024 as dec(8,3)) FROM SUMMARY WHERE ACTIVITY=''ARCHIVE'' AND (CURRENT_TIMESTAMP-END_TIME)HOURS LESS= 24 HOURS', 'select ''N/A'' from status', 'TB', '', '', '', 0, 3, 'totaldata', 30), (4, 'Scratch Tapes', 'SELECT COUNT(*) FROM libvolumes WHERE status=''Scratch''', 'SELECT COUNT(*) FROM libvolumes WHERE status=''Scratch''', '', 'less', '10', 'alarm', 1, 3, 'healthdata', 10), (5, 'Volumes with Errors', 'SELECT COUNT(*) FROM volumes WHERE error_state=''YES''', 'SELECT COUNT(*) FROM volumes WHERE error_state=''YES''', '', 'more', '0', 'alarm', 0, 3, 'healthdata', 20), (6, 'Unavailable Volumes', 'SELECT COUNT(*) FROM volumes WHERE access=''UNAVAILABLE''', 'SELECT COUNT(*) FROM volumes WHERE access=''UNAVAILABLE''', '', 'more', '0', 'alarm', 0, 3, 'healthdata', 30), (7, 'Drives Offline', 'SELECT COUNT(*) FROM drives WHERE NOT online=''YES''', 'SELECT COUNT(*) FROM drives WHERE NOT online=''YES''', '', 'more', '0', 'alarm', 1, 3, 'healthdata', 40), (8, 'Paths Offline', 'SELECT COUNT(*) FROM paths WHERE NOT online=''YES''', 'SELECT COUNT(*) FROM paths WHERE NOT online=''YES''', '', 'more', '0', 'alarm', 1, 3, 'healthdata', 50), (9, 'Cache Hit', 'SELECT CACHE_HIT_PCT from db', 'SELECT BUFF_HIT_RATIO from db', '%', 'less', '98.0', 'warn', 0, 3, 'database', 10), (10, 'Database Usage', 'SELECT pct_utilized FROM db', 'select used_db_space_mb*100/free_space_mb from db', '%', 'more', '90.0', 'alarm', 0, 3, 'database', 20), (11, 'Log Usage', 'SELECT pct_utilized FROM log', 'select used_space_mb*100/free_space_mb from log', '%', 'more', '90.0', 'alarm', 0, 3, 'database', 30), (12, 'DB Fragmentation', 'SELECT CAST((100 - (CAST(MAX_REDUCTION_MB AS FLOAT) * 256 ) / (CAST(USABLE_PAGES AS FLOAT) - CAST(USED_PAGES AS FLOAT) ) * 100) AS DECIMAL(4,2)) AS PERCENT_FRAG FROM DB', 'select ''N/A'' from status', '%', 'more', '10.0', 'alarm', 0, 3, 'database', 40), (13, 'DB Volumes not synced', 'SELECT COUNT(*) FROM dbvolumes WHERE ( NOT copy1_status=''Synchronized'' OR NOT copy2_status=''Synchronized'' OR NOT copy3_status=''Synchronized'')', 'select ''N/A'' from status', '', 'more', '0', 'alarm', 0, 3, 'database', 50), (14, 'DB Logs not synced', 'SELECT COUNT(*) FROM logvolumes WHERE ( NOT copy1_status=''Synchronized'' OR NOT copy2_status=''Synchronized'' OR NOT copy3_status=''Synchronized'')', 'select ''N/A'' from status', '', 'more', '0', 'alarm', 0, 3, 'database', 60), (15, 'Last DB Backup', 'SELECT last_backup_date FROM db', 'SELECT last_backup_date FROM db', '', '', '', '', 0, 3, 'database', 70), (16, 'Failed Admin Schedules', 'SELECT count(*) FROM events WHERE status NOTEQUAL ''Completed'' AND status NOTEQUAL ''Future'' AND status NOTEQUAL ''Started'' AND status NOTEQUAL ''Restarted'' and status NOTEQUAL ''In Progres'' and status NOTEQUAL ''Pending'' and NODE_NAME is NULL', 'SELECT count(*) FROM events WHERE status <> ''Completed'' AND status <> ''Future'' AND status <> ''Started'' AND status <> ''Restarted'' and status <> ''In Progres'' and status <> ''Pending'' AND NODE_NAME is NOT NULL', '', 'more', '0', 'alarm', 0, 3, 'schedules', 10), (17, 'Failed Client Schedules', 'SELECT count(*) FROM events WHERE status NOTEQUAL ''Completed'' AND status NOTEQUAL ''Future'' AND status NOTEQUAL ''Started'' AND status NOTEQUAL ''Restarted'' and status NOTEQUAL ''In Progres'' and status NOTEQUAL ''Pending''
/* Drop and readd cfg_queries for TSM 6.1 support */
upgradeDB("0.0.2", "DROP TABLE IF EXISTS `cfg_queries`");
upgradeDB("0.0.2", "CREATE TABLE IF NOT EXISTS `cfg_queries` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `label` varchar(70) collate utf8_unicode_ci NOT NULL, `tsmquery_v5` varchar(500) collate utf8_unicode_ci NOT NULL, `tsmquery_v6` varchar(500) collate utf8_unicode_ci NOT NULL, `fields` varchar(1000) collate utf8_unicode_ci NOT NULL, `timetablefields` varchar(255) collate utf8_unicode_ci default NULL, `info` varchar(500) collate utf8_unicode_ci default NULL, `orderby` varchar(35) collate utf8_unicode_ci default NULL, `alert_comp` varchar(35) collate utf8_unicode_ci default NULL, `alert_val` varchar(35) collate utf8_unicode_ci default NULL, `alert_field` varchar(35) collate utf8_unicode_ci default NULL, `alert_col` varchar(35) collate utf8_unicode_ci default NULL, `notforlibclient` tinyint(1) default NULL, `polltype` varchar(35) collate utf8_unicode_ci NOT NULL, `pollfreq` int(11) NOT NULL, `parent` varchar(35) collate utf8_unicode_ci NOT NULL, `sortorder` smallint(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=52");
upgradeDB("0.0.2", "INSERT INTO `cfg_queries` (`id`, `name`, `label`, `tsmquery_v5`, `tsmquery_v6`, `fields`, `timetablefields`, `info`, `orderby`, `alert_comp`, `alert_val`, `alert_field`, `alert_col`, `notforlibclient`, `polltype`, `pollfreq`, `parent`, `sortorder`) VALUES (1, 'allnodes', 'All Nodes', 'select NODE_NAME, domain_name, platform_name, client_os_level, TCP_ADDRESS, trim(char(client_version)) ||''.''|| trim(char(client_release)) ||''.''|| trim(char(client_level)) ||''.''|| trim(char(client_sublevel)) as version from nodes', 'select NODE_NAME, domain_name, platform_name, client_os_level, TCP_ADDRESS, trim(char(client_version)) ||''.''|| trim(char(client_release)) ||''.''|| trim(char(client_level)) ||''.''|| trim(char(client_sublevel)) as version from nodes', '`timestamp` int(11), `Node Name` varchar(64), `Domain` varchar(30), `OS` varchar(100), `OS Level` varchar(100), `IP` varchar(16), `Version` varchar(100)', NULL, 'This query lists all existing nodes, their domains etc.', 'Node Name', '', '', '', '', 0, 'update', 15, 'nodes', 10), (2, 'inactivenodes', 'Inactive Nodes', 'select NODE_NAME, domain_name, platform_name, LASTACC_TIME from nodes where LASTACC_TIME < current_timestamp - 24 hours', 'select NODE_NAME, domain_name, platform_name, LASTACC_TIME from nodes where LASTACC_TIME < current_timestamp - 24 hours', '`timestamp` int(11), `Node Name` varchar(64), `Domain` varchar(30), `OS` varchar(100), `Last Accessed` varchar(26) ', NULL, 'A list of all nodes that haven''t been accessed since 24 hours.', 'Last Accessed', '', '', '', '', 0, 'update', 15, 'nodes', 20), (3, 'filespaces', 'Filespaces', 'select nodes.node_name as NODENAME, filespaces.filespace_name as FSNAME, substr(char(filespaces.backup_end), 1, 10) as FS_LASTBACKUP from nodes, filespaces WHERE filespaces.node_name=nodes.node_name', 'select a.node_name as NODENAME, b.filespace_name as FSNAME, substr(char(b.backup_end), 1, 10) as FS_LASTBACKUP from nodes a, filespaces b WHERE b.node_name=a.node_name', '`timestamp` int(11), `Node Name` varchar(64), `Filespace` varchar(255), `Last Backup` varchar(26) ', NULL, 'A list of all filespaces and it''s last backup', 'Node Name', '', '', '', '', 0, 'update', 15, 'nodes', 30), (4, 'stalledfilespaces', 'Stalled Filespaces', 'select node_name, filespace_name, backup_start, backup_end from filespaces where cast((current_timestamp-backup_end)days as decimal) >= 3', 'select node_name, filespace_name, backup_start, backup_end from filespaces where cast(day(current_timestamp-backup_end) as decimal) >= 3', '`timestamp` int(11), `Node Name` varchar(64), `Filespace` varchar(255), `Backup Start` varchar(26), `Backup End` varchar(26) ', NULL, 'A list of all filespaces that might be stalled (and have not been backed up in the last 3 days)', 'Node Name', '', '', '', '', 0, 'update', 15, 'nodes', 40), (5, 'spacenode', 'Space Usage / Node', 'SELECT o.node_name||'' '' as NODE_NAME, sum(cast(o.physical_mb/1024 as decimal (10,2))) as TOTAL_GB, sum(cast(o.num_files as decimal (10,0))) as TOTAL_FILES_STORED, dec(dec(sum(o.num_files))/(select dec(sum(num_files)) from occupancy)*100,6,4) as PCT_FILES_STORED, n.platform_name FROM occupancy o,nodes n WHERE o.node_name=n.node_name GROUP BY n.node_name, o.node_name, n.platform_name', '', '`timestamp` int(11), `Node Name` varchar(64), `Total GB` varchar(30), `Total Files stored` int(11), `Pct of total files` varchar(6), `Platform` varchar(100)', NULL, 'This query list all nodes and their total space consumption in GB', 'Total GB', '', '', '', '', 0, 'snapshot', 15, 'nodes', 50), (6, 'datanode', 'Data and Tapes / Node', 'select vu.node_name, ao.total_mb, count(distinct vu.volume_name) as tapes, ao.total_mb/count(distinct vu.volume_name) as mbtape from volumeusage vu, auditocc ao where vu.node_name=ao.node_name group by vu.node_name, ao.total_mb', 'select vu.node_name, ao.total_mb, count(distinct vu.volume_name) as tapes, ao.total_mb/count(distinct vu.volume_name) as mbtape from volumeusage vu, auditocc ao where vu.node_name=ao.node_name group by vu.node_name, ao.total_mb', '`times
}
?>