1.使用MySQL建表
mysql>create database ganglia;
mysql>show databases;
mysql>use ganglia;
mysql> create table class (NAME char(20), VAL char(40), TYPE char(10), UNITS char(15), TN int, TMAX int, DMAX int, SLOPE char(10));
mysql> describe class2;
mysql>insert into class values(‘load_one‘,‘0.00‘,‘float‘,‘ ‘,7043,70,0,‘both‘);
mysql> select * from class;
2.将数据保存至数据库
import xml.dom.minidom as minidom import MySQLdb dom = minidom.parse("1.xml") root = dom.getElementsByTagName("GANGLIA_XML") conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘,port=3306) cur=conn.cursor() conn.select_db(‘ganglia‘) for node in root: gangliaxml = node.getElementsByTagName("CLUSTER") for cluster in gangliaxml: host = cluster.getElementsByTagName("HOST") for metric in host: #print(metric.getAttribute("NAME")) for metrics in metric.getElementsByTagName("METRIC"): value=[metrics.attributes["NAME"].value, metrics.attributes["VAL"].value, metrics.attributes["TYPE"].value, metrics.attributes["UNITS"].value, metrics.attributes["TN"].value, metrics.attributes["TMAX"].value, metrics.attributes["DMAX"].value, metrics.attributes["SLOPE"].value,] cur.execute(‘insert into class values(%s,%s,%s,%s,%s,%s,%s,%s)‘,value) conn.commit() cur.close() conn.close()
xml文档是:
<GANGLIA_XML VERSION="3.6.1" SOURCE="gmond"> <CLUSTER NAME="sg620g" LOCALTIME="1430118086" OWNER="unspecified" LATLONG="unspecified" URL="unspecified"> <HOST NAME="172.19.0.181" IP="172.19.0.181" TAGS="" REPORTED="1430111045" TN="7040" TMAX="20" DMAX="0" LOCATION="unspecified" GMOND_STARTED="1430111145"> <METRIC NAME="load_one" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="70" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="One minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="One Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="os_release" VAL="2.6.32-504.12.2.el6.x86_64" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="Operating system release date"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Operating System Release"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_total" VAL="16314120" TYPE="float" UNITS="KB" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total amount of memory displayed in KBs"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Memory Total"/> </EXTRA_DATA> </METRIC> <METRIC NAME="proc_run" VAL="0" TYPE="uint32" UNITS=" " TN="7043" TMAX="950" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="process"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total number of running processes"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Total Running Processes"/> </EXTRA_DATA> </METRIC> <METRIC NAME="load_five" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="325" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="Five minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Five Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="gexec" VAL="OFF" TYPE="string" UNITS="" TN="7043" TMAX="300" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="core"/> <EXTRA_ELEMENT NAME="DESC" VAL="gexec available"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Gexec Status"/> </EXTRA_DATA> </METRIC> <METRIC NAME="disk_free" VAL="386.370" TYPE="double" UNITS="GB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total free disk space"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Disk Space Available"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_cached" VAL="1929396" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of cached memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Cached Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="pkts_in" VAL="0.00" TYPE="float" UNITS="packets/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Packets in per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Packets Received"/> </EXTRA_DATA> </METRIC> <METRIC NAME="bytes_in" VAL="0.20" TYPE="float" UNITS="bytes/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Number of bytes in per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Bytes Received"/> </EXTRA_DATA> </METRIC> <METRIC NAME="swap_total" VAL="4095996" TYPE="float" UNITS="KB" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total amount of swap space displayed in KBs"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Swap Space Total"/> </EXTRA_DATA> </METRIC> <METRIC NAME="bytes_out" VAL="0.72" TYPE="float" UNITS="bytes/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Number of bytes out per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Bytes Sent"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_free" VAL="13793820" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of available memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Free Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="load_fifteen" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="950" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="Fifteen minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Fifteen Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="os_name" VAL="Linux" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="Operating system name"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Operating System"/> </EXTRA_DATA> </METRIC> <METRIC NAME="boottime" VAL="1429665572" TYPE="uint32" UNITS="s" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="The last time that the system was started"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Last Boot Time"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_idle" VAL="100.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Idle"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_user" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the user level"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU User"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_nice" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the user level with nice priority"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Nice"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_aidle" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="3800" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percent of time since boot idle CPU"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU aidle"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_buffers" VAL="135208" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of buffered memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Memory Buffers"/> </EXTRA_DATA> </METRIC> <METRIC NAME="part_max_used" VAL="36.9" TYPE="float" UNITS="%" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Maximum percent used for all partitions"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Maximum Disk Space Used"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_system" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the system level"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU System"/> </EXTRA_DATA> </METRIC> <METRIC NAME="disk_total" VAL="412.914" TYPE="double" UNITS="GB" TN="7043" TMAX="1200" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total available disk space"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Total Disk Space"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_shared" VAL="0" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of shared memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Shared Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="machine_type" VAL="x86_64" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="System architecture"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Machine Type"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_wio" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU wio"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_num" VAL="16" TYPE="uint16" UNITS="CPUs" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total number of CPUs"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Count"/> </EXTRA_DATA> </METRIC> <METRIC NAME="proc_total" VAL="475" TYPE="uint32" UNITS=" " TN="7043" TMAX="950" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="process"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total number of processes"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Total Processes"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_speed" VAL="2600" TYPE="uint32" UNITS="MHz" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="CPU Speed in terms of MHz"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Speed"/> </EXTRA_DATA> </METRIC> <METRIC NAME="pkts_out" VAL="0.00" TYPE="float" UNITS="packets/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Packets out per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Packets Sent"/> </EXTRA_DATA> </METRIC> <METRIC NAME="swap_free" VAL="4095996" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of available swap memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Free Swap Space"/> </EXTRA_DATA> </METRIC> </HOST> </CLUSTER> </GANGLIA_XML>
时间: 2024-11-11 08:49:30