linux shell使用gmond获取主机性能参数

  Ganglia是一款优秀的性能监测软件,能够及时获取主机的各项性能参数。Ganglia由gmond、gmetad和web前端组成。其中gmond是收集主机性能参数的工具,gmetad负责管理gmond收集到的信息,web前端以网页的形式显示出各项性能参数。毫无疑问,gmond是Ganglia的核心。

  gmond是一个守护进程,运行在主机上,并在TCP的8649端口侦听。远程主机可以通过8649端口获取以xml文件格式显示的各项主机的性能参数。

  以下是利用shell使用gmond的步骤。

  1、在主机上开启telnet服务

         yum install telnet-server

         修改配置文件

         vim /etc/xinetd.d/telnet

         将“disable=yes"改为"disable=no"。

         重新启动xinetd守护进程

         service xinetd restart

  2、在主机上开启gmond服务

        yum install ganglia-gmond

         service gmond start

         iptables -F            #iptables必须进行设置,否则获取不了性能参数值。

  3、利用telnet获取xml格式的文件,里面包含了主机各项性能参数

         telnet localhost 8649 > info.txt

         其中info.txt的内容如下

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.


      
      
   
      
      
      
   
      
      
      
      
      
   
      
      
      
      
      
      
      
      
   
      
      
      
      
      
      
      
      
      
   
   
      
      
   
      
      
      
   
      
      
      
      
      
      
      
]>






































































































































































































































  如上所示,各项参数均已获得。剩下的就是要从文件中提取出各项参数的数值并存入mysql数据库。具体脚本如下

  1、创建数据库的脚本createdb.sh

#! /bin/bash

service mysqld start

mysql -u root -p << EOF
	use mysql;
	insert into user(User,Host) select 'liyang','localhost' from user where not exists(select * from user where User='liyang') limit 0,1;
	grant all on machineinfo.* to 'liyang'
EOF

mysql -u liyang << EOF
	create database if not exists machineinfo;
	use machineinfo;
	drop table if exists record;
	create table record(
			ip	VARCHAR(20)	NOT NULL PRIMARY KEY,
			hostname	VARCHAR(50),
			load_one	VARCHAR(50),
			mem_total	VARCHAR(50),
			os_release	VARCHAR(50),
			proc_run	VARCHAR(50),
			load_five	VARCHAR(50),
			gexec	VARCHAR(50),
			disk_free	VARCHAR(50),
			mem_cached	VARCHAR(50),
			pkts_in	VARCHAR(50),
			bytes_in	VARCHAR(50),
			bytes_out	VARCHAR(50),
			swap_total VARCHAR(50),
			mem_free	VARCHAR(50),
			load_fifteen	VARCHAR(50),
			os_name	VARCHAR(50),
			boottime	VARCHAR(50),
			cpu_idle	VARCHAR(50),
			cpu_user	VARCHAR(50),
			cpu_nice	VARCHAR(50),
			cpu_aidle	VARCHAR(50),
			mem_buffers	VARCHAR(50),
			cpu_system	VARCHAR(50),
			part_max_used	VARCHAR(50),
			disk_total	VARCHAR(50),
			mem_shared	VARCHAR(50),
			cpu_wio	VARCHAR(50),
			machine_type	VARCHAR(50),
			proc_total	VARCHAR(50),
			cpu_num	VARCHAR(50),
			cpu_speed	VARCHAR(50),
			pkts_out	VARCHAR(50),
			swap_free	VARCHAR(50));
EOF

  2、提取关键数据并插入数据库的脚本monitor.sh

#! /bin/bash

service gmond start
iptables -F

telnet localhost 8649 > info.txt
cat info.txt | sed '1,/ record

linetext="recording each line!"
while [ -n "$linetext" ]
do
	read linetext
	first_field=$(echo $linetext | cut -d ' ' -f1)

	if [ "$first_field" = "

  分别运行createdb.sh和monitor.sh两个脚本就可把各项性能参数存入mysql数据库了。

你可能感兴趣的:(linux shell使用gmond获取主机性能参数)