|
|
Ganglia由gmond、gmetad和gweb三部分组成5 i( Y$ L- G' P! z5 ]. g7 G
1 x" C! |1 q$ ^1 ]2 p
gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
& |, f0 s* h6 [6 v' H
6 t+ A d( b' S" V# q3 u8 Bgmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。. u; U2 ]/ r' n
& T5 X3 p8 _7 |- L# x4 Tgweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。1 Y E% m) @" K5 X; _
) x/ Y9 T3 I5 b/ x" C. s3 W, s/ {. \& c1 `0 c6 f
准备环境
* b; v. V5 y1 W: S- J/ e4 s/ z # lsb_release -a
$ g b" U j/ x; `, o& s 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-noarch' y/ e5 h" |. o- S, _1 B9 ]
Distributor ID: CentOS
% Q5 C7 B- l& _0 ~- O6 N6 H Description: CentOS release 6.5 (Final)$ }, g, j5 j2 A' P
Release: 6.5, F8 G* Z* q3 z7 ~! j& f, ^2 l- o; m
Codename: Final* K; n- l) F; ~( `" P! Q+ t/ \9 K
5 [) W$ ?8 R Y; z& N5 Q
S1、安装gmond
# E" d0 g S B4 M ^( c- U 在本地软件库中搜索gmond安装包1 _; i$ L; X, L# y+ J) m
[root@stonex ~]# yum search ganglia-gmond
" c c; ?! m! s Z0 f Loaded plugins: fastestmirror% F ^- q" d- b k5 n. q, W+ Q
Loading mirror speeds from cached hostfile! S; @! P; c6 W% @8 R9 w
* base: centos.ustc.edu.cn1 a; ?. h9 _# x5 Z8 S2 M
* extras: centos.ustc.edu.cn
: a# D5 x+ P) b3 W+ L * updates: centos.ustc.edu.cn6 d$ @4 }% I! o& R" n$ e- W" m
Warning: No matches found for: ganglia-gmond
# n/ i4 f. X# n7 s" R, C2 _; V No Matches found
4 s+ k% p0 H! u& Z4 [ 6 l5 \) i0 {3 q, G# `
显示搜索失败,可能是当前RPM发行版中没有Ganglia安装包。
. r; l3 y+ i/ w ^! m$ i2 U8 N
# |1 Q+ U# e5 r$ t% @ [root@stonex ~]# rpm -Uvh \8 p& G: H) F: T/ C1 ?' y8 b5 }
> http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm2 N' F2 S, z. s" g
Retrieving http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm" W# z: g6 u; A5 x3 }
warning: /var/tmp/rpm-tmp.L2dC50: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY* L O! ?, m5 S7 v8 e0 M' [3 X
Preparing... ########################################### [100%]
! r: X/ Z7 p { 1:epel-release ########################################### [100%]
" {7 W% n% B* K0 `' o" d [root@stonex ~]#
$ {8 ?" x6 E0 q6 N4 r; T
' g; h/ S. D1 h! \2 a* Z/ I 再搜索(首次执行会下载epel/primary_db)* J9 @% [" G! X4 c
[root@stonex ~]# yum search ganglia-gmond: `' `( E9 ^" G3 ? F0 ~7 p; h
Loaded plugins: fastestmirror" J3 |: ]% M' P5 ^- ~! j$ [
Loading mirror speeds from cached hostfile" N- ^0 _8 S( x, N% Q
省略了一些行...... ^* L2 U; S. Q. \7 t6 }, V! _
ganglia-gmond.x86_64 : Ganglia Monitoring daemon
8 y6 ~/ i& \+ \; @ ganglia-gmond-python.x86_64 : Ganglia Monitor daemon python DSO and metric modules/ B6 u/ G9 @ p- N! A) g$ _
省略了一些行......
0 o- r& a' P0 p# n2 d" e m2 n [root@stonex ~]# % z1 c9 ^% [+ K$ j" ~4 X
4 W* p; n# Z5 M; c% q0 ~0 ?
安装; @5 t3 h/ q! F$ q. T# A
[root@stonex ~]# yum install ganglia-gmond -y% ^2 M2 m( b3 `& c0 \, b
yum安装会自动解决头疼的依赖包问题) q6 T8 }0 z; ?8 f) }! R1 m( d( k4 ~
: o7 T. C/ d" ?) M9 u# F- F
S2、安装gmetad& E1 X- W L- F1 m: K* D/ w6 K
和gmond安装中介绍的相同,如果本地软件库不提供gmetad,那么需要安装EPEL。
7 B, M) Z4 k8 h2 h: ^ [root@stonex ~]# yum install ganglia-gmetad -y$ W. X5 t- ^+ p- E0 |- }8 p
会发现安装了以下依赖包:8 |1 @3 m( }; s. J; _+ z
Dependency Installed:
& I1 B* q F+ K; W/ ~! P 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.el6
+ x/ ?3 z Z! n5 {& r 5 U& B, i, k4 x+ _2 N/ ?
S3、安装gweb
7 q3 M1 D' C- X, b* ~+ C! U2 M Wiki:http://sourceforge.net/apps/trac ... -web-2#Installation) M" X( H" K" Q. G1 b8 f3 H. {8 m
& S2 g. B" N2 s' T1 F8 p
7 I* p! T L S% i
在进行gweb的安装和配置前,请先检查是否已经- T- ]" A/ l& q0 e' [! u0 S
满足下面需求:9 ~- B9 B3 A: g
Apache Web Server
O) ^3 X' Y @% }* U PHP 5.2及更新版本! P; f( l" |( s# {9 X7 T
PHP JSON 扩展的安装和启用
5 O! z4 i( {5 E6 E
2 }6 n/ H9 l% z# k$ ^& }4 Z. S 首先安装Apache和PHP 5
* w( k# F0 J, G) c [root@stonex ~]# yum install httpd php* a0 Q2 s* Q( Q: R( V' q1 S
会发现安装了以下依赖包:
" X& d7 Q1 e9 |" ]7 l( \6 N0 M, ? Dependency Installed:
3 b0 [- H. v" ?2 F ?- O& l7 b 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
O1 J7 U* l4 k, O! G4 ?+ o ! s' R8 c8 O9 X) s& |
需要启用PHP的JSON扩展,JSON已经包含在PHP 5.2及更新版本中。
4 |, z; @1 m& m' c( K; s2 J 通过检查/etc/php.d/json.ini文件来检查JSON扩展的状态,如果已经启用JSON扩展,在该文件中应该包含类似下面语句的内容:
& m6 G' B3 j4 a- q/ a0 w# c3 P- d extension=json.ini% d$ j# M% R. i/ p# i l9 v, b
' i8 r2 _8 _9 O: Y# L5 V" ` 下载最新版本的gweb(https://sourceforge.net/projects/ganglia/files/gweb/)& |% [' z4 m8 u7 S
本示例当前最新版本为3.5.12
' s2 _" L6 v! Q: N [root@stonex ~]# wget http://ncu.dl.sourceforge.net/pr ... a-web-3.5.12.tar.gz
2 w, B8 B% P G0 L- x* U [root@stonex down]# tar -zxvf ganglia-web-3.5.12.tar.gz
) k& h. s: j' S- z [root@stonex down]# cd ganglia-web-3.5.12
$ t, B7 X6 d) `3 K: Z! x2 X
1 e/ }3 n5 E0 E# x- H% w 编译Makefile
/ L/ d3 x: x3 q- X' x [root@stonex ganglia-web-3.5.12]# vim Makefile
0 S, `! \, X9 t! B# q 可以查看一些用户默认配置:
0 h3 Z1 f& f i+ x' F3 c( ]$ W. @ W+ _ ##########################################################$ u% R& D# y1 H, G+ {* |' u# A( i
# User configurables:
5 E- q5 |! ?& C3 p( d+ `+ \ ##########################################################
$ k- O, `! Q* x7 D# Q # Location where gweb should be installed to (excluding conf, dwoo dirs).- j9 q4 L- _7 ?( X
GDESTDIR = /usr/share/ganglia-webfrontend
& C' V2 q* e- S9 b- ^$ I d6 [; m+ M
- E- ~0 \& ]% Y4 g" x
( }& i6 g$ J5 b, I* R$ S # Location where default apache configuration should be installed to.4 u0 G r5 v6 O9 T' p% ~
GCONFDIR = /etc/ganglia-web
0 h5 v% v' ?/ k- j3 D8 U
, Y0 J; V/ k) N. s2 k
6 u( S2 ~; }0 R. i" G # Gweb statedir (where conf dir and Dwoo templates dir are stored)
& ]" T _8 @9 x% B% \ { GWEB_STATEDIR = /var/lib/ganglia-web
4 ~) c# W3 ], u8 R" _! k0 f5 s0 L7 E& ?. i3 G6 @6 t* Z2 A
5 T* w7 R' P3 n3 p0 f # Gmetad rootdir (parent location of rrd folder)
$ _8 ]& P4 t$ [' S/ L GMETAD_ROOTDIR = /var/lib/ganglia
' D( p$ z9 l% @3 l5 w6 P+ X) c; Z0 Q2 Z3 _% [- K& O8 U
* I; g2 p2 k3 @( }8 z
APACHE_USER = www-data
& w- O2 u1 L' \6 l/ u! o& Y ##########################################################& B1 Z9 ]1 t# r/ t, |
4 U5 ]% e" N" O8 h 修改默认配置:' d# l8 V4 W6 p8 j2 V3 V
GDESTDIR = /var/www/html/ganglia2
' p# W8 x4 a6 u* E# Y" B+ _ APACHE_USER = apache
3 y# f o: U2 E; y0 p: [" } 注意:GDESTDIR 和 APACHE_USER 要与APACHE的配置文件(/etc/httpd/conf/httpd.conf)中的 DocumentRoot 、 apache保持一致
& H7 j: i) m! m2 d% P# H0 \
7 n5 F1 f: K# n7 A! A make install# k: |/ R0 t9 @+ ]: z0 @
7 T' p: |7 N% B
" r: V) r8 z' }6 |3 XS4、状态检查4 l- }6 h& `- b- r9 @7 a H
检查httpd是否启动:: r$ R* Z$ f. o, X% j* b
[root@stonex ~]# service httpd status& Z( U2 E% P7 }! C
启动httpd:% N- S; p! V) i
[root@stonex ~]# service httpd start
" e5 \/ |4 ?) L# p 2 J/ p! p9 [. @. q) {$ [. S5 Z3 K
检查gmetad是否启动:; X; K5 B# W+ t6 Y. o, O9 R+ q
[root@stonex ~]# service gmetad status
8 t( t* q5 v O1 _% w8 p 启动gmetad:+ n% J2 h( e( X6 Q5 F6 P
[root@stonex ~]# service gmetad start
$ H9 u4 D% C- Z% C : X. t4 @. G' C9 z
检查本地gmond是否启动:% b/ z+ r7 S9 i
[root@stonex ~]# service gmond status
4 o" ]: \# A7 n 启动gmond:
+ N+ N. ~ M+ U( |, z2 Q [root@stonex ~]# service gmond start
2 ^/ o8 D( A$ n+ ?7 K % @' X8 o) n" T5 q6 ]
S5、关闭SELinux4 @* z, A5 G7 n, ^6 m* |3 j
如果你跳过这一步,打开http://<server ip address>/ganglia2会出现以下异常:
# T' n) F1 s6 t There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied' H- J- a" Q# A% a* X* r
/ W3 a1 Q, j+ z) x! o
SELinux是什么?
- m7 N3 T0 D% J! G/ a9 ? http://wiki.centos.org/zh/HowTos/SELinux4 i5 \! U* q# V( M8 w
M. H" x k( o, [* Z+ S
查看SELinux状态:
) ~& [3 o) W, T" p" k& c: ^6 q' Q% v [root@stonex ~]# sestatus
f$ {% o C5 o b6 {& A; w SELinux status: enabled0 J- D5 N5 `8 Y' t
SELinuxfs mount: /selinux
0 s7 q8 _0 q; l6 E. w% s% ~& T0 Q Current mode: permissive
. s. @( j: d+ A# T5 f Mode from config file: enforcing5 w* Z" Z5 ~& Q0 F" t8 c- K
Policy version: 24
0 V/ o0 ]: U4 m* g' _) @ Policy from config file: targeted
) T8 p5 Y' ]! n/ @+ x% f$ u' v / y' @/ d) R5 {0 U3 o* R
关闭SELinux:0 [+ h7 f) u0 b$ |. k
[root@stonex ~]# setenforce 0. H8 P, }( k- f: ~; V
setenforce 这个指令可以即时切换 Enforcing 及 Permissive 这两个模式,但这些改动在系统重新开机时不会被保留。
{* P5 Z* N/ q; a2 ~% a O 要想在下次开机后生效,需要在 /etc/selinux/config 内修改 SELINUX= 这一行为 enforcing。
2 p& L+ Q4 L. S8 c: }
+ F" o2 H, O% k6 i/ T7 k* w1 q1 KS6、访问Ganglia监控平台 X, h, o: i0 y' I0 z; `9 e
http://<server ip address>/ganglia2/
% t2 F7 B* L, l) N& F6 ` 5 v: n" }- ~# F! H8 [
目录“/ganglia2”可以在 ganglia-web的Makefile文件中GDESTDIR被修改,修改后需要重新编译
+ L- G! [* J q9 o9 w! e- T |
|