|
|
Ganglia由gmond、gmetad和gweb三部分组成
1 Q6 |" R% S8 ]; V
% A2 U7 \* i( }0 `gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
u' {0 ^( D" l- A, c; [6 ~
. K3 n V e0 w: [& _ j. ugmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。' r# i) U! u; S- d7 @- r# Y
- [: ?, D9 k+ f4 s
gweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。
% Z! f* k9 A; g4 D' `. O0 D" K) v: j: ]( [! Y. z" U7 P' X- }
/ d2 {/ L/ q2 _, h2 R6 _$ p
准备环境( E8 Q K6 B1 U7 Q
# lsb_release -a
8 n. E6 j( @( o" i3 F: `6 _ LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch4 S; J% @4 G" {" R* h/ X7 V" D2 T$ r# h
Distributor ID: CentOS5 u: m+ |, y4 n: K& F5 d" U
Description: CentOS release 6.5 (Final)
% ^6 {! W6 U o- R' a Release: 6.5
3 ~9 \& \& Q4 t9 s% V3 _! c Codename: Final2 Q) u$ S8 S1 r, d$ W! _
3 j( a: N% T; U7 |" J5 G
S1、安装gmond
G' D: N* I+ b; G 在本地软件库中搜索gmond安装包
9 b. V& ~; I8 X& B [root@stonex ~]# yum search ganglia-gmond( P+ D4 X5 o" A4 H$ I" p7 ^
Loaded plugins: fastestmirror: Z% p+ f! W. q. I u c5 u# }
Loading mirror speeds from cached hostfile
% ]% F8 w0 o& O% W * base: centos.ustc.edu.cn# t3 ^+ D9 Y6 ]0 O
* extras: centos.ustc.edu.cn
5 X, T+ u+ U: C% K * updates: centos.ustc.edu.cn$ H: ~) `+ V) {
Warning: No matches found for: ganglia-gmond
/ t# j' h% k X6 b( ^ No Matches found
+ l+ `0 w$ ~; F$ A 2 F8 f! y U9 Q7 i' I
显示搜索失败,可能是当前RPM发行版中没有Ganglia安装包。! \0 v2 e4 G; d. g
& Q" W. l3 }! N, M, W- V/ |3 }1 @0 s [root@stonex ~]# rpm -Uvh \
/ @* |1 X* S* w2 c > http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
! X: |& M" W$ {; V" n/ { Retrieving http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm9 l$ u) f( b# K3 W6 h V
warning: /var/tmp/rpm-tmp.L2dC50: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY% g0 @! m- y9 h+ C, k4 @: G/ e% u5 j2 X
Preparing... ########################################### [100%]
) k7 r, x' }1 c% j7 o 1:epel-release ########################################### [100%]
2 r9 G' ?' k |, p5 d. a% Q [root@stonex ~]#, V9 B. V* y% D8 X1 m0 o! F8 F: @
9 Z2 a" O4 b( d, d( f$ G7 E 再搜索(首次执行会下载epel/primary_db): Z5 [7 K! k& | n6 d* ]
[root@stonex ~]# yum search ganglia-gmond
/ U! |1 ~% l8 J3 l5 d6 l5 }6 b" k Loaded plugins: fastestmirror
3 b) M" ^& p3 j/ h3 L% `$ B Loading mirror speeds from cached hostfile
7 j) E. O) g* ?7 p$ H 省略了一些行......
, l( A' k; [, U4 [* E: w; v ganglia-gmond.x86_64 : Ganglia Monitoring daemon' G1 y. f2 D5 ^ J
ganglia-gmond-python.x86_64 : Ganglia Monitor daemon python DSO and metric modules) a) D$ K7 F- ?- X' b# h
省略了一些行......
S1 l4 F( ^0 Y( b, D [root@stonex ~]# , t% p7 k& l6 m! l3 d0 Y7 z$ ~
3 T& ?+ H( S4 k; T+ }- x
安装
1 B" n7 {3 Q7 ?* x: `( N [root@stonex ~]# yum install ganglia-gmond -y
2 v) g( f* r& k8 ~9 l yum安装会自动解决头疼的依赖包问题
* I$ @7 `+ ?$ t6 {6 k X; ~
( v1 E3 j3 q. q0 ^! ? ES2、安装gmetad9 L! g/ U% z' p9 D. K; g
和gmond安装中介绍的相同,如果本地软件库不提供gmetad,那么需要安装EPEL。
+ s4 p- Y5 q) T6 [' f v8 \) U [root@stonex ~]# yum install ganglia-gmetad -y% F8 X/ |2 z% z; D# }- y
会发现安装了以下依赖包:
+ ]6 y" k) F$ ]% g# D9 F8 I' }( Z% q Dependency Installed:
9 f+ H! P) [! a5 O dejavu-fonts-common.noarch 0:2.30-2.el6 dejavu-lgc-sans-mono-fonts.noarch 0:2.30-2.el6 dejavu-sans-mono-fonts.noarch 0:2.30-2.el6 fontpackages-filesystem.noarch 0:1.41-1.1.el6 rrdtool.x86_64 0:1.3.8-6.el69 b& { _5 ^% ?5 v
8 ~! t% W% {/ s
S3、安装gweb
$ ]: U$ \4 @( Z1 h; R9 d Wiki:http://sourceforge.net/apps/trac ... -web-2#Installation
w5 S% d* G5 h) _
+ ]: t( L- t( i2 C; N! n {6 g4 B! h) P- p
在进行gweb的安装和配置前,请先检查是否已经8 d; Y+ Y+ R Y7 m4 b& k
满足下面需求:. ~2 U. x) S+ [9 y2 d Z
Apache Web Server ? s4 S; z/ k" A
PHP 5.2及更新版本
7 u7 Q4 v3 P, W* {( w PHP JSON 扩展的安装和启用- g6 Y r- L9 P. f! H- r
/ J9 D x2 t7 J5 H' N 首先安装Apache和PHP 5
, n' j3 a$ D8 O$ Q [root@stonex ~]# yum install httpd php
3 {* h" o9 n V. E/ V+ d% | 会发现安装了以下依赖包:
0 E+ d7 }! Y3 J( [ t6 ^5 ? Dependency Installed:% `- ?. C8 B9 j) _+ q
apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd-tools.x86_64 0:2.2.15-29.el6.centos mailcap.noarch 0:2.1.31-2.el6 php-cli.x86_64 0:5.3.3-27.el6_5 php-common.x86_64 0:5.3.3-27.el6_5
6 N4 w* s! B4 {! z9 C5 { K/ o4 Q3 e: X% L3 ]: o! U0 a
需要启用PHP的JSON扩展,JSON已经包含在PHP 5.2及更新版本中。
% { d5 E5 \9 t5 K 通过检查/etc/php.d/json.ini文件来检查JSON扩展的状态,如果已经启用JSON扩展,在该文件中应该包含类似下面语句的内容:
$ T0 j' q( ?0 x7 t# n extension=json.ini
$ d- [0 N4 n" _ a& g; j
, ? R! }, S4 c! Z- {; v1 L0 h0 n* y' r$ B 下载最新版本的gweb(https://sourceforge.net/projects/ganglia/files/gweb/)
7 g* U: v5 w3 F- I- ? 本示例当前最新版本为3.5.12' F: Y- p3 x2 G) s0 \ S
[root@stonex ~]# wget http://ncu.dl.sourceforge.net/pr ... a-web-3.5.12.tar.gz# A2 q$ t5 Y5 |! V- r6 P5 b; r; l
[root@stonex down]# tar -zxvf ganglia-web-3.5.12.tar.gz7 b B6 B; C9 h) w# @% k9 ]
[root@stonex down]# cd ganglia-web-3.5.12- S9 N! A5 I6 v' O; a6 m
3 x/ o# d! O2 |! x( p 编译Makefile
" r9 S. }/ s1 f* R3 J( N [root@stonex ganglia-web-3.5.12]# vim Makefile
: t5 p, Q6 N6 d% @ 可以查看一些用户默认配置:5 f6 \: f$ Q) a4 `( M
##########################################################" T3 h2 c, G9 X$ N1 Y; [, Z! f
# User configurables:. Z$ [ }* S9 d$ S7 E1 Y
##########################################################
7 E" r1 |8 B; D8 R# N # Location where gweb should be installed to (excluding conf, dwoo dirs).* h4 {' s6 x3 n5 B6 [; N" E& V
GDESTDIR = /usr/share/ganglia-webfrontend
$ B* V$ p3 e/ j7 D2 ?5 ]
h' G' a; \; [- |1 r. d* Y+ s! M$ M5 D. i {' i9 D, Q
# Location where default apache configuration should be installed to." V( e5 j/ C5 w1 L: B5 P/ V
GCONFDIR = /etc/ganglia-web
- v! T0 B' d/ J
* @8 Z& d6 \0 B$ K& `' X' c
$ J; C3 D7 M* A, L: ^ N" J7 a # Gweb statedir (where conf dir and Dwoo templates dir are stored)' X: D) [/ I2 P c$ c
GWEB_STATEDIR = /var/lib/ganglia-web9 n/ Z y; ]/ {- ^( O
6 z( A9 Z! |# R
/ I% h2 \# A! ]+ `$ ]- v# ^ # Gmetad rootdir (parent location of rrd folder)
2 S; V$ Y' z: n e) _5 o( A GMETAD_ROOTDIR = /var/lib/ganglia
/ w& Z. r6 x, M. Q/ x' \6 ] ^0 [+ \4 y& ~
2 l& s. K1 h8 }! p: |! T
APACHE_USER = www-data
. s- V. D8 V$ K ##########################################################
, o2 \7 E( i! I& Q9 s
% \1 q" O, u1 `7 A' b! u% [ 修改默认配置:. {7 O y @# G6 ~! h
GDESTDIR = /var/www/html/ganglia2
1 V! H/ S$ B V- F; n s; W F APACHE_USER = apache
( [ N; y$ t; G, G 注意:GDESTDIR 和 APACHE_USER 要与APACHE的配置文件(/etc/httpd/conf/httpd.conf)中的 DocumentRoot 、 apache保持一致$ z8 T4 z7 O$ }+ H
7 X* I: P" B6 o0 e% s- I' G
make install% s6 Z1 U* C& S1 R2 D9 s" m# u
" S% [2 }! d6 z6 t
% e6 k* c; W9 W5 ^3 l( }3 r! V3 DS4、状态检查
+ Y1 k: s* T8 ]1 V8 W. Z 检查httpd是否启动:
2 i! l+ y. l3 ~, D; [* [- _1 L [root@stonex ~]# service httpd status
7 u. D4 J6 G! F- N- Z+ D8 Q 启动httpd:
7 o0 d( S9 I3 S. Q! \' \: K! a [root@stonex ~]# service httpd start
1 `9 a1 C- f# X# t, Z/ B( c# ?8 C / J7 i: m/ j9 p y
检查gmetad是否启动:4 ~2 b/ X7 D& l4 N0 \5 F- O
[root@stonex ~]# service gmetad status* j: e; i! M( e. W% i
启动gmetad:
, ~+ w& j, u) x- z" J, t7 z [root@stonex ~]# service gmetad start6 f% T9 @& q8 w9 o
, w# O# G/ d6 G' P( q* \2 v1 S! \ 检查本地gmond是否启动:0 d! ~+ I" n8 ^
[root@stonex ~]# service gmond status
: U+ C7 E/ d1 K7 {. O0 D 启动gmond:+ M/ A7 F! I8 p ^2 N+ }4 k+ E9 h
[root@stonex ~]# service gmond start
! v% ]+ m1 I1 q ' F2 S+ b% C$ y, T& q) v
S5、关闭SELinux
% i2 N. S" ^/ M# t3 ~' j' G 如果你跳过这一步,打开http://<server ip address>/ganglia2会出现以下异常:
% G6 P( h* w5 ] There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied3 K5 E1 I# N( G& p" D& J
" w( y' y5 S H) V+ }7 g% R+ Z SELinux是什么?
+ |1 u; }$ a6 N! \1 t( g* H; h5 L http://wiki.centos.org/zh/HowTos/SELinux
+ O2 v+ b3 g, h6 D
6 r! H9 I+ h" {, x 查看SELinux状态:; b: X @2 B: ?: q1 w, u
[root@stonex ~]# sestatus
6 G( Q( U1 M1 j SELinux status: enabled* _0 M+ ]1 w/ N2 r% ~( C4 c4 m: H
SELinuxfs mount: /selinux
3 V; d) q4 |( r8 f Current mode: permissive7 r3 T* h4 o- K, g4 _, }
Mode from config file: enforcing
$ h: g: |( S u! P5 B Policy version: 24
" }1 H* M& K" p Policy from config file: targeted
; n# Q) e* D. _1 ^& e
5 {. B" n+ _( `9 Q2 m9 U4 C 关闭SELinux:
9 q, M: Z2 u7 ` B [root@stonex ~]# setenforce 0
0 \% S/ `. J: l8 m6 e* \1 ] setenforce 这个指令可以即时切换 Enforcing 及 Permissive 这两个模式,但这些改动在系统重新开机时不会被保留。
* \, p5 p2 A7 y- A 要想在下次开机后生效,需要在 /etc/selinux/config 内修改 SELINUX= 这一行为 enforcing。3 _+ {- o5 b/ C+ ~$ J
$ z: M! O9 W; M, t3 A
S6、访问Ganglia监控平台
- `4 j! C, J" u/ W4 ?. a% S: Y http://<server ip address>/ganglia2/) O9 e' \) X m, w
; e" {0 I: _) R% K8 H! b
目录“/ganglia2”可以在 ganglia-web的Makefile文件中GDESTDIR被修改,修改后需要重新编译
' E# f( D0 n: ] |
|