Chinaunix首页 | 论坛 | 博客
  • 博客访问: 545540
  • 博文数量: 32
  • 博客积分: 5359
  • 博客等级: 大校
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2005-01-04 20:39
文章分类

全部博文(32)

文章存档

2011年(1)

2010年(1)

2009年(6)

2008年(24)

我的朋友

分类:

2008-05-06 18:28:26

    领导今天让我写下Ganglia,给公司的IT简报投稿,那我只好写了。

    测试部今年新采购了2台P560Q,应用微分区技术后,LPAR数量越来越多,从原来的3个增加到目前的30个。每天要管理这么多的系统,迫切要求我们采取各种自动化的措施,以提高工作效率。采用Ganglia加RRDTool等免费软件对所有LPAR进行性能监控就是我们采取的自动化措施之一。

    对系统进行性能监控,免费的方案还有一些,最常见的是MRTG,其原理是用SNMP(Simple Network Management Protocol)协议获取系统的各种流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户。但采用SNMP有较多弊端,比如:暴露的信息过多,存在安全隐患;MIB库混乱,操作系统升级后OID可能就变了,给管理工作造成大量的麻烦。

    Ganglia与之不同,是一种分布式的监控系统,主要有两个Daemon:客户端运行Ganglia Monitoring Daemon (gmond),服务端运行Ganglia Meta Daemon (gmetad)。客户端会定期自动将性能相关的信息发送服务端,服务端再将这些信息存入到RRDTool(Round Robin Database Tool)数据库中。RRDTool这个数据库最重要的一个特点是:文件大小是固定的,新的数据添加到已有数据的后面,当到了文件末尾的时候就开始从文件头部写数据。Ganglia 除了上述两个Daemon外,还包括Ganglia PHP Web Frontend组件,它可以基于网页方式的动态访问。关于Ganglia的原理、配置过程等技术细节可以参考 。测试部Ganglia网页访问地址是: 。

    简单地说,采用Ganglia技术以后,我们可以随时了解到所有RS/6000物理机器及LPAR几年以内任意历史时间的CPU、内存、IO等资源的使用情况。观察各种资源使用的变化趋势,对各种系统问题的发现有重要意义,对各种压力测试项目也提供了一种有效的监控手段。

 

    下面再写些自己的学习Ganglia的体会。

一、参考文献
    肯定是看这里了 。

二、安装
    按照参考文献先把这些安装包找齐。这些都是已编译好的包,对系统管理员来说应该是最简单的方式了。configure、make、make install太难了,总是搞不懂。
14:10:13
amp.bundle.aix53.tar                    ganglia-gmond-3.0.7-1.aix5.3.ppc.rpm    lost+found
bos.compat                              ganglia-web-MPerzl.tar                  RRDTool-1.2.13-1.perl58.aix5.2.ppc.rpm
freetype2-2.1.7-5.aix5.1.ppc.rpm        libart_lgpl-2.3.17-4.aix5.1.ppc.rpm     zlib-1.2.3-3.aix5.1.ppc.rpm
ganglia-gmetad-3.0.7-1.aix5.3.ppc.rpm   libpng-1.2.8-6.aix5.2.ppc.rpm
14:10:14 ]#
    安装完的结果就是这样。当然有些包显然可以不安,比如:lsof-4.61-4、pware53.mysql.rte
14:10:14 -qa
cdrecord-1.9-7
mkisofs-1.13-4
openssl-0.9.7l-2
freetype2-2.1.7-5
ganglia-gmetad-3.0.7-1
AIX-rpm-5.3.7.0-4
ganglia-gmond-3.0.7-1
libart_lgpl-2.3.17-4
libpng-1.2.8-6
RRDTool-1.2.13-1
zlib-1.2.3-3
lsof-4.61-4
ganglia-web-3.0.7-1
14:10:26 -l | grep pware
  pware53.apache.rte         2.2.6.0  COMMITTED  Apache 2.2.6
  pware53.base.rte           5.3.0.0  COMMITTED  pWare base for 5.3
  pware53.bdb.rte           4.4.20.4  COMMITTED  Berkeley DB 4.4.20
  pware53.cyrus-sasl.rte    2.1.22.0  COMMITTED  Cyrus SASL 2.1.22
  pware53.expat.rte          2.0.1.0  COMMITTED  expat 2.0.1
  pware53.freetds.rte       0.64.0.0  COMMITTED  freeTDS 0.64
  pware53.freetype.rte       2.3.5.0  COMMITTED  freetype 2.3.5
  pware53.gd.rte            2.0.35.0  COMMITTED  gd 2.0.35
  pware53.gettext.rte       0.16.0.0  COMMITTED  GNU gettext 0.16
  pware53.gmp.rte            4.2.2.0  COMMITTED  gmp 4.2.2
  pware53.iODBC.rte         3.52.6.0  COMMITTED  iODBC 3.52.6
  pware53.krb5.rte           1.6.2.0  COMMITTED  MIT Kerberos 1.6.2
  pware53.libiconv.rte      1.11.0.0  COMMITTED  GNU libiconv 1.11
  pware53.libpng.rte        1.2.22.0  COMMITTED  libpng 1.2.22
  pware53.libxml2.rte       2.6.30.0  COMMITTED  libxml2 2.6.30
  pware53.libxslt.rte       1.1.22.0  COMMITTED  libxslt 1.1.22
  pware53.mm.rte             1.4.2.0  COMMITTED  mm 1.4.2
  pware53.mysql.rte         5.0.45.0  COMMITTED  MySQL 5.0.45
  pware53.oic.rte           10.2.0.3  COMMITTED  Oracle Instant Client 10.2.0.3
  pware53.openldap.rte      2.3.38.0  COMMITTED  OpenLDAP 2.3.38
  pware53.openssl.rte        0.9.8.7  COMMITTED  OpenSSL 0.9.8g
  pware53.php.rte            5.2.5.0  COMMITTED  PHP 5.2.5
  pware53.sqlite.rte         3.5.2.0  COMMITTED  SQLite 3.5.2
  pware53.zlib.rte           1.2.3.0  COMMITTED  zlib 1.2.3
14:11:06 ]#

三、配置
    主要就是4个配置文件php.ini、httpd.conf、gmetad.conf、gmond.conf。根据报错,不断修改,最终修改成如下的模样。
    前三个文件直接贴最终结果:
17:10:22 php.ini | egrep -v '(^\;|^$)'
[PHP]
engine = On
zend.ze1_compatibility_mode = Off
short_open_tag = Off
asp_tags = Off
precision    =  14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func=
serialize_precision = 100
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
disable_classes =
expose_php = On
max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)
error_reporting  =  E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
variables_order = "GPCS"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
extension_dir = "./"
enable_dl = On
file_uploads = On
upload_max_filesize = 2M
allow_url_fopen = On
default_socket_timeout = 60
[Date]
date.timezone = "Asia/Shanghai"
[Syslog]
define_syslog_variables  = Off
[mail function]
SMTP = localhost
smtp_port = 25
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mSQL]
msql.allow_persistent = On
msql.max_persistent = -1
msql.max_links = -1
[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase]
sybase.allow_persistent = On
sybase.max_persistent = -1
sybase.max_links = -1
sybase.min_error_severity = 10
sybase.min_message_severity = 10
sybase.compatability_mode = Off
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Informix]
ifx.default_host =
ifx.default_user =
ifx.default_password =
ifx.allow_persistent = On
ifx.max_persistent = -1
ifx.max_links = -1
ifx.textasvarchar = 0
ifx.byteasvarchar = 0
ifx.charasvarchar = 0
ifx.blobinfile = 0
ifx.nullformat = 0
[Session]
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[Verisign Payflow Pro]
pfpro.defaulthost = "test-payflow.verisign.com"
pfpro.defaultport = 443
pfpro.defaulttimeout = 30
[COM]
[mbstring]
[FrontBase]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
17:11:05 httpd.conf | egrep -v '(^ *#|^$)'
ServerName ST-GANGLIA:80
PHPIniDir "/opt/pware/conf"
ServerRoot "/opt/pware"
Listen 80
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module modules/libphp5.so

User nobody
Group nobody

ServerAdmin
DocumentRoot "/opt/pware/htdocs"

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all


    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all


    DirectoryIndex index.html
    DirectoryIndex index.php


    Order allow,deny
    Deny from all
    Satisfy All

ErrorLog logs/error_log
LogLevel warn

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
   
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
   

    CustomLog logs/access_log common


    ScriptAlias /cgi-bin/ "/opt/pware/cgi-bin/"




    AllowOverride None
    Options None
    Order allow,deny
    Allow from all

DefaultType text/plain

    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    AddType image/x-icon .ico


SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

17:11:21 ]#

17:18:20 gmetad.conf | egrep -v '(^ *#|^$)'
data_source "VIOS12" 99.1.72.230
data_source "VIOS34" localhost
gridname "XXX-DEPARTMENT"
17:18:21 ]#

    第四个文件/etc/gmond.conf文件太长,改动的地方其实并不多,所以直接看命令,更清楚。
cluster VIOS12(类似参考文献中的Green Cluster)如下:
ed -s /etc/gmond.conf</setuid/s/yes/no
/name/s/unspecified/VIOS12
/mcast_join/s/239.2.11.71/99.1.72.230
g/239.2.11.71/d
w
q
!

cluster VIOS34(类似参考文献中的Yellow Cluster)如下:
ed -s /etc/gmond.conf</setuid/s/yes/no
/name/s/unspecified/VIOS34
/mcast_join/s/239.2.11.71/99.1.73.230
g/239.2.11.71/d
w
q
!
    本来cluster VIOS34打算用默认的多播,但在两个VIO SERVER上怎么配置都不成功,也许是我没按规范将管理IP配到SEA上吧?反正,懒得改VIO SERVER配置,也懒得找原因了,索性就也用了单播。

四、纠错
    本文以上的内容在INTERNET上基本都可以搜到,详细说明(包括中文的),到处都是,所以不想多说。但下面的内容是INTERNET上搜不到的,应该算是本文的精华。
    我80%以上的时间都在解决这个故障。故障现象:除了PIE那个图能显示外,其它的图都不能显示。一遍又一遍地读 ,一遍又一遍地改那些配置文件,始终没找到解决办法。关于GANGLIA、RRDTOOL不显示图象,网上到是有不少文章,但说法雷同、且都不适用我遇到的问题。只好开始研究人家解决问题的思路,工夫不负有心人,某天终于发现了问题的关键,找到了日志文件的位置:/opt/pware/logs/error_log 。
    看到如下报错,也就找到了问题的原因:
exec(): 0509-036 Cannot load program /usr/bin/rrdtool because of the following errors:
        0509-022 Cannot load module /opt/freeware/lib/librrd.a(librrd.so.2).
        0509-150   Dependent module /opt/pware/lib/libpng.a(libpng.so.3) could not be loaded.
        0509-152   Member libpng.so.3 is not found in archive
        0509-022 Cannot load module rrdtool.
        0509-150   Dependent module /opt/freeware/lib/librrd.a(librrd.so.2) could not be loaded.
        0509-022 Cannot load module .
    找到问题的原因后,自然就能摸索出解决问题的方法。解决方法简单,如下: ln -fs /opt/freeware/lib/libpng.a /opt/pware/lib/libpng.a


========================================================================
任何形式的转载,请写明出处:
email:
blog: http://blog.chinaunix.net/index.php?blogId=739   http://www.cublog.cn/u/739/
========================================================================

 

 

阅读(2047) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-10 01:13:30

学习了,谢谢。以前我管理lpar的时候没有找到这么理想的工具。看来IBM wikis上的工具真是太牛了。我一直用nmon 和nmon analyzer 在单机上进行检测,受益颇多。我会常来光顾的。