cacti使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cacti使用相关的知识,希望对你有一定的参考价值。
求Cacti软件在Linux系统下的详细安装使用方法 和 安装需要的工具下载地址
apache2.2.8+mysql5.0.51+php5.2.5+snmp5.14+rrdtool+cacti 配置OS fedora7 安装选包定制
全选开发包
服务器 一个没选
本机IP 192.168.1.254
安装 mysql
所有安装程序 在 /usr/local下
[root@localhost usr]# groupadd mysql
[root@localhost usr]# useradd -g mysql mysql
[root@localhost usr]# cd /usr/local
[root@localhost local]# tar -zxvf mysql-5.0.51.tar.gz
[root@localhost local]# cd mysql-5.0.51
[root@localhost mysql-5.0.51# ./configure --prefix=/usr/local/mysql
[root@localhost mysql-5.0.51]# make
[root@localhost mysql-5.0.51]# make install
[root@localhost mysql-5.0.51]# cd ../mysql
[root@localhost mysql]# scripts/mysql_install_db --user=mysql
[root@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql var
[root@localhost mysql]# chgrp -R mysql .
[root@localhost mysql]# ./bin/mysqld_safe --user=mysql &
[root@localhost mysql]# ./bin/mysqladmin -uroot password mysql
[root@localhost mysql]# cp ../mysql-5.0.51/support-files/my-large.cnf /etc/my.cnf
[root@localhost mysql]# cp ../mysql-5.0.51/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig --level mysqld 345 on
[root@localhost mysql]# chkconfig --list mysqld
[root@localhost mysql]#
Mysql 安装结束
安装apache
[root@localhost usr]# tar -zxvf httpd-2.2.8.tar.gz
[root@localhost usr]# cd httpd-2.2.8
[root@localhost httpd-2.2.8]# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-so
[root@localhost httpd-2.2.8]# make;make install
[root@localhost httpd-2.2.8]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.2.8]# cd /etc/rc3.d
[root@localhost rc3.d]# ln -s /etc/init.d/httpd S85httpd
[root@localhost rc3.d]# ln -s /etc/init.d/httpd K85httpd
[root@localhost rc3.d]# /usr/local/apache/bin/apachectl star
Apache 安装完毕
安装PHP
安装支持图形处理,自己可以找最新的安装。
##### zlib#####
cd zlib-1.2.3
./configure --prefix=/usr/local/zlib
make
make install
cd ..
##### FreeType ##### freetype-2.3.5.tar.gz
cd freetype-2.3.5
./configure --prefix=/usr/local/freetype
make
make install
cd ..
##### LibPNG #####
cd libpng-1.2.20
cp scripts/makefile.linux makefile
make test
make install
cd ..
##### Jpeg ##### jpegsrc.v6b.tar.gz
cd jpeg-6b
mkdir /usr/local/jpeg
mkdir /usr/local/jpeg/bin
mkdir /usr/local/jpeg/lib
mkdir /usr/local/jpeg/include
mkdir /usr/local/jpeg/man
mkdir /usr/local/jpeg/man/man1
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make
make install
cd ..
##### gd ##### gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/gd \
--with-jpeg=/usr/local/jpeg \
--with-freetype=/usr/local/freetype \
--with-png \
--with-zlib
[root@localhost local# tar -zxvf php-5.2.5.tar.gz
[root@localhost local# cd php-5.2.5
[root@localhost php-5.2.5]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-
mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --with-openssl=/usr/local/ssl --with-gd=/usr/local/gd --
with-gdbm=/usr/lib --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/jpeg --with-png-dir --with-
zlib=/usr/local/zlib --enable-mbstring --enable-sockets
[root@localhost php-5.2.5]# make;make install
[root@localhost php-5.2.5]# cp php.ini-dist /usr/local/php/etc/php.ini
[root@localhost php-5.2.5]# vi /usr/local/apache/conf/httpd.conf
按 I 键 添加 AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
保存退出 :wq
[root@localhost php-5.2.5]# /usr/local/apache/bin/apachectl restart
Php安装完毕
设置mysql
[root@localhost httpd-2.2.8]# /usr/local/mysql/bin/mysql -u root -pmysql
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('cactipw');
注:以上语句输出 Query OK, 0 rows affected (0.01 sec) 表示成功
mysql> exit
Mysql设置完毕
检测apache + php + mysql
[root @tsai usr]# cd /www/htdocs
[root @tsai htdocs]# touch info.php
[root @tsai htdocs]# vi info.php
<?
phpinfo( );
?>
保存退出 :wq
[root @tsai htdocs]# touch mydqltest.html
[root @tsai htdocs]# vi mysqltest.html
<html>
<body>
<?
$link=mysql_connect('localhost','root');
mysql_select_db('mysql');
$str="select * from user;";
$result=mysql_query($str,$link);
$show=mysql_num_rows($result);
mysql_close($link);
for ($i=0;$i < $show;$i++)
$arr[$i]=mysql_fetch_array($result);
;
?>
<table align=center border=1>
<tr align=center>
<td>Host</td>
<td>User</td>
<td>Password</td>
</tr>
<?for ($i=0;$i<$show;$i++)?>
<tr>
<td><?echo $arr[$i][Host]?></td>
<td><?echo $arr[$i][User]?></td>
<td><?echo $arr[$i][Password]?></td>
</tr>
<?;?>
</body>
</html>
保存退出 :wq
重启mysql + apache 服务
[root @localhost htdocs]# service mydql restart
[root @localhost htdocs]# service httpd restart
进入浏览器检查
http://192.168.1.254/info.php 和 http://192.168.1.254/mysqltest.html
安装rrdtool
[root@localhost usr]# tar zxvf rrdtool-1.0.50.tar.gz
[root@localhost usr]# cd rrdtool-1.0.50
[root@localhost rrdtool-1.0.50]# ./configure
[root@localhost rrdtool-1.0.50]# make && make install
我的是fedora 7,用下面的方法。
[root@localhost usr] yum install rrdtool
Rrdtool安装完毕
安装net-snmp、snmpwalk和snmpget命令
[root@localhost usr]# rpm -qa | grep net-snmp
net-snmp-5.0.9-2.30E.15
net-snmp-devel-5.0.9-2.30E.15
net-snmp-libs-5.0.9-2.30E.15
net-snmp-utils-5.0.9-2.30E.15
[root@localhost usr]# vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser default public
改为:com2sec notConfigUser 127.0.0.1 public
2、access notConfigGroup "" any noauth exact systemview none none
改为:access notConfigGroup "" any noauth exact all none none
3、#view all included .1 80
将前面的 # 注释 去掉。
保存退出 :wq
[root@localhost usr]# service snmpd restart
使用yum安装更方便:
[root@localhost usr]# yum install net-snmp
[root@localhost usr]# yum update net-snmp
配置还是使用上面的方法修改。
或者使用:net-snmp-5.1.4.tar.gz安装
[root@localhost local]# tar -zxvf net-snmp-5.1.4.tar.gz
[root@localhost local]# cd net-snmp-5.1.4
[root@localhost local]# ./configure
[root@localhost local]# make
[root@localhost local]# make install
运行snmpconf -g basic_setup,会在当前目录下生成一个snmpd.conf配置文件:
[root@localhost local]# snmpconf -g basic_setup
运行后会出现一个询问菜单,按如下步骤进行回答:CODE:[Copy to clipboard]Do you want to configure the information returned in
the system MIB group (contact info, etc)? (default = y): y
The location of the system: Shenzhen, China
The contact information: master@emerson.com
Do you want to properly set the value of the sysServices.0 OID (if you don't know, just say no)? (default = y): y
does this host offer physical services (eg, like a repeater) [answer 0 or 1]: 1
does this host offer datalink/subnetwork services (eg, like a bridge): 0
does this host offer internet services (eg, supports IP): 1
does this host offer end-to-end services (eg, supports TCP): 1
does this host offer application services (eg, supports SMTP): 1
Do you want to configure the agent's access control? (default = y): y
Do you want to allow SNMPv3 read-write user based access (default = y): n
Do you want to allow SNMPv3 read-only user based access (default = y): n
Do you want to allow SNMPv1/v2c read-write community access (default = y): n
Do you want to allow SNMPv1/v2c read-only community access (default = y): y
The community name to add read-only access for: public
The hostname or network address to accept this community name from [RETURN for all]: (RETURN)
The OID that this community should be restricted to [RETURN for no-restriction]: (RETURN)
Do you want to configure where and if the agent will send traps? (default = y): n
Do you want to configure the agent's ability to monitor various aspects of your system? (default = y): y
Do you want to configure the agents ability to monitor processes? (default = y): y
Name of the process you want to check on: sshd(需要监控的进程)
Maximum number of processes named ' sshd' that should be running [default = 0]: 1
Minimum number of processes named ' sshd' that should be running [default = 0]: 0
Do another proc line? (default = y): n
Do you want to configure the agents ability to monitor disk space? (default = y): y
Enter the mount point for the disk partion to be checked on: /
Enter the minimum amount of space that should be available on /var: %100
Do another disk line? (default = y): y
Enter the mount point for the disk partion to be checked on: /var
Enter the minimum amount of space that should be available on /var: %100
Do another disk line? (default = y): y
Enter the mount point for the disk partion to be checked on: /usr
Enter the minimum amount of space that should be available on /usr: %100
Do another disk line? (default = y): y
Enter the mount point for the disk partion to be checked on: /home
Enter the minimum amount of space that should be available on /home: %100
Do another disk line? (default = y): n
Do you want to configure the agents ability to monitor load average? (default = y): y
Enter the maximum allowable value for the 1 minute load average: 12
Enter the maximum allowable value for the 5 minute load average: 12
Enter the maximum allowable value for the 15 minute load average: 12
Do another load line? (default = y): n
Do you want to configure the agents ability to monitor file sizes? (default = y): n(如果想监控文件的大小,可以选y)
4.运行net-snmp:
# snmpd -c /path/snmpd.conf (要上面生成的绝对路径)
测试一下看看net-snmp是否配置成功:
#snmpwalk -v 1 -c public localhost .1 (是否可以从.1开始采集服务器数据)
#snmpwalk -v 1 -c public localhost dskPercent.1 (看看刚配置过的硬盘监测是否成功)
如果有数据了,恭喜你snmp安装成功了。
注:如果你机器内没有snmpwalk和snmpge命令,请到安装盘里查找 net-snmp-utils 包,rpm -ivh net-snmp-utils-*.rpm 只后这两个命令就
在系统里了。其他包也都在安装盘里 确保安装这四个包就OK
安装/ 配置cacti
[root@localhost usr]# useradd cactiuser -g users
[root@localhost usr]# passwd cactiuser (pwd:cactipw)
[root@localhost usr]# cp cacti-0.8.7.tar.gz /var/www/html
[root@localhost usr]# cd /var/www/html
[root@localhost html]# tar -zxvf cacti-0.8.7.tar.gz
[root@localhost html]# mv cacti-0.8.6g cacti
[root@localhost html]# cd cacti
[root@localhost cacti]# /usr/local/mysql/bin/mysql -u root -p cactidb < cacti.sql
passwork:
[root@localhost cacti]# chown -R cactiuser rra/ log/
[root@localhost cacti]# cd scripts
[root@localhost scripts]# chown cactiuser:users *
[root@localhost scripts]# vi /www/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
更改用户、密码 等项 与上面给出的对应 保存退出
[root@localhost scripts]# crontab -u cactiuser -e
加入
*/5 * * * * /usr/local/php/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
保存退出:wq
全部设置完毕。
打开浏览器 http://192.168.1.254/cacti 进入cacti的初始设置页面
第一次默认登陆账号:admin 密码 admin
登陆后在新改个密码就OK
需要说明的还有路径
snmpwalk Binary Path : /usr/bin/snmpwalk
snmpget Binary Path: /usr/bin/snmpget
RRDTool Binary Path: /usr/bin/rrdtool
PHP Binary Path: /usr/local/php/bin/php
Cacti Log File Path: /var/www/html/cacti/log/cacti.log
Cactid Poller File Path:/var/www/html/cacti/poller.php
如果你是按我的步骤做的 那上面的路径一定不会错。
注:此时graphs还不能显示图形,需要将服务重新启动一下
[root@localhost scripts]# service snmpd restart
[root@localhost scripts]# service mysql restart
[root@localhost scripts]# service httpd restart
参考资料:http://cndefu.blog.163.com/blog/static/59393188200803124532865
参考技术A 楼上所的可能有点片面吧,要制作一个专业的视频网站,从技术角度考虑,至少需要以下两种技术人员。一.高级Web开发程序员
要求:
* 精通PHP、javascript、HTML、DHTML、XML、Ajax和RIA设计开发。
* 了解HTTP协议,对Web程序性能优化有一定经验
* 精通MySQL数据库,能熟练地运用SQL语言,有丰富的数据建模经验, 熟悉SQL语句调优和数据库调优。
* 熟练使用至少一种版本(CVS,SVN)控制工具
* 熟悉PHP语言及常见扩展(如mysql、pcre、xml等)
* 熟悉面向对象(OO)程序设计
* 熟悉Linux,Apache,MySQL等的安装、配置、调试。
二、系统工程师
要求:
* 熟练使用linux操作系统
* 熟练配置linux操作系统上常用应用软件,例如apache、resin、squid、php、DNS、LVS、postfix等
* 熟悉mysql数据库,能够使用sql语句对数据库进行一般的处理
* 能熟练配置cacti监控系统,很好的掌握nagios的监控环境,配置和应用nagios进行监控服务器
* 对系统日志有比较好的了解,能分析系统、apache、mysql、等日志文件,检查错误和对它们进行维护
* 对shell脚本有一定了解,能编写一些用于各种简化工作、管理工作的方面的脚本,提高工作效率
* 能很好的应用linux性能分析命令对linux的性能进行分析和监控
* 对网络应用有一定的了解和掌握,熟悉cisco、h3c路由、交换设备及各种网络协议
* 能够承受较大的工作压力,有耐心,不怕繁琐,对工作比较执着,比较喜欢学习新的知识
具体的你可以参考一下著名的视频网站,在其网站最下面一般都有“招聘人才”,然后你可以看看别人的招聘要求!
Cacti完全使用手册 ( 让你快速个性化使用Cacti )
I.总览
Cacti
和Nagios的监控体系可以说是使用广泛而且支持丰富的国内外的运维人员都需要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定
义画图能力,以及Nagios的可控报警。但是网上的大部分内容都是如何安装,在安装成功如何使用的方面介绍的很少,而真正开始用之后,为了工作需要就需
要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。于是我决定写一篇使用方面的手册,以让大家真正会用这套系统。
II.Cacti的使用
Cacti的常用服务器的画图大部分都是使用模板的形式做的,而Cacti安装好之后本身自带了一部分模板,这些模板虽然可用,但是支持的项目太少,于是我们要寻求更多的模板以及更优化的内容。
Cacti的官方的模板库:http://docs.cacti.net/templates
2:如何在Cacti上添加一个新主机并监控相关的内容:(以添加Linux主机为例) 1.创建画图 a. 在Cacti的Web页面Console->Import Templates导入响应的xml模板文件。b. 在Linux上cacti/resource/snmp_queries中放入模板相关的xml数据收集文件。并确保属主和属组均为cacti。 c. 点击Console->Devices,打开设备管理页面。 d. 点击右上角的add,添加一个新的机器 e. 当主机的信息填好之后,点击Create h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful. 2.在Graphs界面显示新添加主机。 a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。 |
III.Cacti的常用模板
1.Windows常用模板 为了解决基本的监控项,我们需要以下模板。 我们还需要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为我们提供数据采集:informant-std-16.exe 使用A模板来监控Windows的CPU项目
|
2.Linux常用模板 |
3.Switch && Router的相关模板 |
IV:自定义脚本的添加以及监控
很多时候,我们需要为我们独有的环境去指定监控内容,那么如何制定呢?就可以通过自己写脚本的方式进行收集数据。这里我用一个监控QQ在线人数的例子来举例。
准备工作:
这个里面只有最后一行是有用的,其他的为curl的抓取信息。
|
1.创建数据输入方式
1. 在Console-->点击Data Input Methods
2. 点击右上角的Add,添加一个新的数据获取方式
3. 点击Create,出现新的项目
4. 新的项目包括Input Fields和Output Fields,即输入内容和输出内容,输入内容其实就是向脚本传递函数,我们这个脚本不需要传递什么参数进去,于是没有,只有Output Fields。
5. 在Output Fields上点击Add,添加新的输出内容。
6. 在Field[Output]中输入我们脚本的输出项:这里我填写“QQ_Now”
7. 在Friendly Name中输入解释输出项的内容,内容随意。
8. 勾选Update RRD File后,点击Create
9. 然后查看我们整个的数据获取方式信息,点击Save,左上角应出现“Save Successful”
2.创建数据源
1. 在Console->点击Data Sources,进入数据源界面
2. 点击右上角的Add,添加新的数据源
3. 确保Data Template和Host均为None。直接点击Create
4. 在新出现的信息面板中输入相关内容
5. 点击Create,此时左上角会出现Save Successful
6. 注意系统自动给生成的RRD文件路径,确保里面不会出现连续两个反斜线的路径信息。如果出现,请手动修改为一个反斜线。如:/1194.rrd
7. 点击Save,看到Save Successful,则数据源创建成功。
3.创建图像
1. 选择Console--> Graph Management,进入图像管理
2. 点击右上角的Add,添加一个新的图像
3. 选择Graph Template以及Host均为None,然后点击Create
4. Title中输入图像的名字,其他保持不变。并点击Create
5. 然后你会看到多出的Graph Items,以及中间有一个看不到图的红叉,因为这个图我们还没有定义。
6. 在Graph Items中点击Add,添加画图规则。
7. 添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
8. 再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。
9. 设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容。
10. 添加好后内容如图。
4.将自定义好的图形,加入到Graphs面板
1. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
2. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
3. 在Tree Item Type中选择Graph,然后在下面的Graph中选择我们刚才创建的图像。点击Create。
4. 此时,再进入Graphs界面,就可以看到在Default Tree下已经出现了我们新创建的图像。
V.Cacti问题 Q & A
1.填完Drivers信息之后显示红色的SNMP error
这是由于被监控机的SNMP设置问题,没有允许我们监控机进行监控,或者Community不匹配导致的。
Linux可以在/etc/snmp/snmpd.conf中修改/增加发送snmp的机器,以及community。
Windows可以在Snmp服务中增加允许发送snmp的机器,以及community。
2.添加完图之后,等待了无数时间图依然无法绘制,反馈给我们一个红色的X。
首先,如果你是用添加的模板创建的图,那么显示不了的话,很有可能是由于模板太老,或者模板不正确导致的。可以考虑更新作者的最新模板以重新画图。当然,如果图像的确画不出来,那么我们可以打开画图的Debug日志的方式进行排错。
进入Graph Management,在Host中选择我们画不出图的那个Host,然后点Go,这样就在下面列出了所有在这个Host中的图像列表, 点击那个无法画图的列表。这就进入了我们选定主机的相关图像的设置界面,我们应该可以看到这个界面下方依然有一个红X,证明我们无法画图,所以点击右上角 的“Turn on Graph Debug Mode.”来打开Debug日志,这时候,就可以看到页面下方多出 了"RRD Tool Command:"的列表,里面详细的描述了RRD工具是如何为我们画图的,这都不是关键,关键是最后的 RRD Tool Says:比如
这里面是RRD Tool 告诉的我们为什么它无法画图,我们可以看到我当前例子的没有画图的原因是316.rrd这个文件不存在,说明在创建的时候rrd没有正确的创建出这个文件,这就有可能是所用的模板有问题了。
在这里,这是一个很好的查看为什么没有画出图的地方,没有画出的图RRD Tool会一一的告诉我们,我们只需要根据它说的来修正,直到RRD Tool Says: OK
3.图什么的都有,但是数据都是N/A,这是要闹哪样?
这个的解决办法其实跟无法画图的解决一样,就是我们去看数据的Debug日志。
进入Data Sources,在Host中选择没有数据的Host,然后在下面的列表中选择没有数据的那个图。进入数据设置界面,然后点击右上角的“Turn on Data Source Debug mode”,然后去分析它的报错。
4.在给主机添加Data Query的监控项的时候发现里面没有获取到数据。
这时候,如果它获取不到数据,我们就无法给它画图。因为在给它创建的图的界面上显示没有内容。
这时候可以直接点击上图中的Debugging下的相关内容,直接打开Debug查看状态。
这时就可以看到反馈出得信息,比如上图,发现SNMP无法获取数据。当然也有其他的,比如MIB文件不存在。只要你仔细看它反馈出来的问题,知道问题的根源,就一定能解决。当解决了数据获取之后,可以直接点击右边的绿色的小圆圈,就刷新了数据的获取状态。
5.关于cacti下文件的权限问题。
Cacti目录中的内容权限并不统一,而且权限要求的也很少,并不像其他的比如Nagios要求的那么多。我们可以简单的保持整个Cacti目录的属主和属组都是Cacti即可。但是有两个特殊的例外:
第一个是cacti/rra目录,整个目录里的内容是RRD的画图文件自动在里面生成的。而生成之后里面文件的属主和属组到底是谁,取决最终是由哪个用户
来创建的,而这个就是在Cacti的那个crontab里控制,如果我们使用的是root用户添加的crontab,那么这个rra目录中的内容属主和属
组都是root。同理,如果我们的crontab是在cacti中设置的,那么rra目录中的内容属主和属组都是cacti。
第二个目录是cacti/scripts目录,这里面存的大部分都是我们自定义的脚本,一定要确保里面的脚本是cacti用户可执行的。最好的检测方法就是su到cacti用户中,进入这个目录,手动运行一下脚本,查看脚本是否成功执行。
以上是关于cacti使用的主要内容,如果未能解决你的问题,请参考以下文章