天天看点

服务器架构之性能扩展-第七章(8)

原理简单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获数据取工具、优秀的绘图模板以及许多设计精良的数据获取脚本,从而可以通过结合rrdtool强大的数据抓取、数据存储和绘图功能,轻松实现主机负载、网络流量等信息的走势图的绘制。

<a href="http://blog.51cto.com/attachment/201208/100545389.png" target="_blank"></a>

Cacti的安装:

Cacti是建立在lamp环境下的,先建立lamp环境和编译环境。

Yum install pango pango-devel freetype freetype-devel libpng libpng-devel gettext gettext-devel libjpeg libjpeg-devel gd gd-devel libxml2 libxml2-devel libiconv libiconv-devel qpixman qpixman-devel glib glib-devel cairo cairo-devel libart*

<a href="http://blog.51cto.com/attachment/201208/100722989.png" target="_blank"></a>

<b>1.</b><b>安装</b><b>rrdtool</b><b>源码包</b>

Tar zxvf rrdtool-1.4.5.tar.gz

Cd rrdtool-1.4.5

./configure –prefix=/usr/local

Make &amp;&amp; make install

<a href="http://blog.51cto.com/attachment/201208/100735408.png" target="_blank"></a>

<b>2.</b><b>安装</b><b>snmp</b><b>协议</b>

监控协议:SNMP(simple network manager protocol)

Yum intall net-snmp*

<a href="http://blog.51cto.com/attachment/201208/100750346.png" target="_blank"></a>

Vi /etc/snmp/snmpd.conf

<a href="http://blog.51cto.com/attachment/201208/100806415.png" target="_blank"></a>

Service snmpd restart

<a href="http://blog.51cto.com/attachment/201208/100817658.png" target="_blank"></a>

<b>3.</b><b>安装</b><b>cacti</b><b>源码包</b>

Tar zxvf cacti-0.8.7h-beta3.tar.gz

Mv cact-0.8.7h-beta3/ /usr/local/apache2/htdocs/cacti/

Vi /usr/local./apache2/conf/httpd.conf

设置网站程序用户,然后重启apache,进程生效

<a href="http://blog.51cto.com/attachment/201208/100829487.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/100844275.png" target="_blank"></a>

Setfacl –m u:apache:rwx –R htdocs/

Setfacl –m d:u:apache:rwx –R htdocs/   //修改文件属性值

Getfacl htdocs/   //查看htdocs属性

<a href="http://blog.51cto.com/attachment/201208/100903849.png" target="_blank"></a>

<b>4.</b><b>建立测试数据库</b>

Mysql&gt;create database cacti;

Shell#mysql cacti &lt; /usr/local/apache2/htdocs/cacti/caci.sql

Mysql&gt;use cacti;

Mysql&gt;show tables;

<a href="http://blog.51cto.com/attachment/201208/100916304.png" target="_blank"></a>

<b>5.</b><b>编辑</b><b>cacti</b><b>配置文件</b>

Vi /usr/local/apache2/htdocs/cacti/include/config.php

输入数据库名,数据库用户名和密码,指定url

<a href="http://blog.51cto.com/attachment/201208/100943692.png" target="_blank"></a>

<b>2.</b><b>测试:</b>

http://192.168.211.128/cacti

<a href="http://blog.51cto.com/attachment/201208/100959744.png" target="_blank"></a>

选择new install全新安装

<a href="http://blog.51cto.com/attachment/201208/101012147.png" target="_blank"></a>

进入环境检查页

<a href="http://blog.51cto.com/attachment/201208/101024112.png" target="_blank"></a>

检查通过,单击finsh,然后输入账户登录,首次登录用户名admin密码admin,首次需要修改密码,我们修改为5991460、

<a href="http://blog.51cto.com/attachment/201208/101036430.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/101046224.png" target="_blank"></a>

如果出现时区错误,解决方法

1:首先改 /etc/php.ini

[Date]

; Defines the default timezone used by the date functions

date.timezone ='Asia/Shanghai'

2:在程序代码中写入

第一行写入:date_default_timezone_set ('Asia/Shanghai');

登陆之后,我们首先添加主机,然后给该主机分配服务;接着我们添加图集,给图集添加元素,我们将我们刚设置的主机添加入图集,于是就可以通过graphs 进行访问图像了。

服务添加过后,图像不会马上显示,需要一定时间,我们可以建立一个计划任务来完成该监控。也可以强制执行php

/usr/local/apache2/htdocs/cacti/poller.php &amp;&gt;/dev/null

<a href="http://blog.51cto.com/attachment/201208/101115496.png" target="_blank"></a>

稍等会看到图集

<a href="http://blog.51cto.com/attachment/201208/101138278.png" target="_blank"></a>

<b>8.</b><b>开启</b><b>apache-status</b><b>功能</b>

Apache-status是apache的扩展功能,在/usr/local/apache2/conf/extra里面,我们通过命令grep –I“server-status”*查找到该扩展在httpd-info.conf配置文件中,我们然后提取此段代码,然后粘贴到/usr/local/apache2/conf/httpd.conf 末尾,然后重启apache服务,使配置生效,然后加载给模块使apache-status模块生效。

<a href="http://blog.51cto.com/attachment/201208/101153370.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/101206632.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/101218458.png" target="_blank"></a>

/usr/loacl/apache/bin/apachectl -h

该命令查看到帮助,然后知道-t –D DUMP_MOUDULES可以查看所有的静态模块,可以看到有status_module模块,不需要再加载了

<a href="http://blog.51cto.com/attachment/201208/101230465.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/101247700.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/101258890.png" target="_blank"></a>

显示访问次数和流量和cpu负载和访问的网站

Apache进程有99个空闲的,我们可以通过

Pstree –p|grep httpd 查看http进程

<a href="http://blog.51cto.com/attachment/201208/101310621.png" target="_blank"></a>

<b>3.</b><b>Cact</b><b>监控</b><b>apache</b><b>状态</b>

首先下载apache图形模块

然后,我们将ss_aoacge_stats.php脚本文件放在cacti/scripts下面,我们将cacti_host_template_webserver_-_apache.xml文件通过web界面导入到cacti。

导入的办法是:console-&gt;import templates-&gt;浏览-&gt;upload

<a href="http://blog.51cto.com/attachment/201208/102918803.png" target="_blank"></a>

这是我们选择“device”进入主机,这时选择图集便可以看到apahce模块了。

<a href="http://blog.51cto.com/attachment/201208/102950696.png" target="_blank"></a>

我们创建过图集后,单击“create graphs for this host“-&gt;打钩进行启用服务。

<a href="http://blog.51cto.com/attachment/201208/103008368.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103035465.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103054179.png" target="_blank"></a>

这时定位到graphs面板查看图像

<a href="http://blog.51cto.com/attachment/201208/103157235.png" target="_blank"></a>

<b>7.3cacti插件的安装</b>

cactii的功能是通过插件进行完善的,对于0.8.8以上版本不需要安装plungin了。然后直接部署插件就行了。

还是介绍一下plugins的安装:

Tar zxvf cacti-0.8.7i-PIA-3.1.tar.gz

Cp cacti-plugin-0.8.7h-PA-v3.0.diff /usr/local/apache2/htdocs/cacti //打补丁

Mysql cacti &lt;pa.sql //导入数据库

Vi /usr/local/apache2/htdocs/cacti/includes/global.php

<a href="http://blog.51cto.com/attachment/201208/103246343.png" target="_blank"></a>

对于monitor,settings和thold插件的安装,解压后拷贝到/usr/local/apache2/htdocs/cacti/plugins然后执行setfacl –m u:apache:rwx –R htdocs/和setfacl –m d:u:apache:rwx –R htdocs/分配权限即可。

<a href="http://blog.51cto.com/attachment/201208/103304385.png" target="_blank"></a>

Vi /usr/local/apache2/htdocs/cacti/include/config.php //定义插件

<a href="http://blog.51cto.com/attachment/201208/103323271.png" target="_blank"></a>

这时打开图形界面,通过plugin management可以看到定义的插件,然后单击左边的箭头,启动即可,启动后颜色为红色。

<a href="http://blog.51cto.com/attachment/201208/103339195.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103353852.png" target="_blank"></a>

这是定位到setting按钮可以看到多了几个misc,mail/dns和template按钮,我们可以设置邮件进行测试,我们使用postfix邮件,定义接收邮箱和端口以及发送邮箱。

<a href="http://blog.51cto.com/attachment/201208/103407341.png" target="_blank"></a>

我们配置完毕后单击右上角的“send test mail ”测试

<a href="http://blog.51cto.com/attachment/201208/103425732.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103442518.png" target="_blank"></a>

使用outlook进行查看邮件,可以看到收到测试邮件

<a href="http://blog.51cto.com/attachment/201208/103455653.png" target="_blank"></a>

<b>测试:</b>

Console-&gt;threahold templates-&gt;定义新的模版

<a href="http://blog.51cto.com/attachment/201208/103507687.png" target="_blank"></a>

我们定义一个空间报警的模版,选择“hara drive space”图集,然后空间量选择60,时间每五分钟,比例选择percenter,占total的百分比,输入接收邮箱。

<a href="http://blog.51cto.com/attachment/201208/103526923.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103542838.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103602996.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103625591.png" target="_blank"></a>

模版可以导出xml文件,然后备用。通过device选择主机-&gt;create graph-&gt;auto-create thresholds进行调用模版即可。

<a href="http://blog.51cto.com/attachment/201208/103642909.png" target="_blank"></a>

<b>7.4压力测试</b>

<b>7.4.1apache压力测试</b>

Apache2.2之后的版本有ab压力测试工具可以直接使用

表示10个用户发送1000次请求

我们可以在htdocs中建立内容相同的index.html和index.php页面

测试:/usr/local/apache2/bin/ab –c 10 –n 1000 http://192.168.211.128/index.html

<a href="http://blog.51cto.com/attachment/201208/103658596.png" target="_blank"></a>

/usr/local/apache2/bin/ab –c 10 –n 1000 http://192.168.211.128/index.php

<a href="http://blog.51cto.com/attachment/201208/103711333.png" target="_blank"></a>

可以看到html的速度要快于php页面,静态页面还是快一些的。

<b>7.4.2mysqlslap压力测试</b>

Mysql5.1以上版本的数据拥有这个测试工具。

<a href="http://blog.51cto.com/attachment/201208/103734996.png" target="_blank"></a>

50,100个用户,请求3000次,重复5次操作,分别对myisam和innodb引擎进行测试

<a href="http://blog.51cto.com/attachment/201208/103747162.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/103808769.png" target="_blank"></a>

本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/970873