linux cacti安装配置

安装系统: redhat linux as 4   2.6.9
cacti 安装。
安装 mysql
[root@linux ~]# tar zxvf mysql- 5.0.22 .tar.gz
[root@linux ~]# cd mysql- 5.0.22
[root@linux mysql- 5.0.22 ]# ./configure --prefix=/usr/local/mysql --enable-thread-safe-client
[root@linux mysql- 5.0.22 ]# make
[root@linux mysql- 5.0.22 ]# make install
[root@linux support-files]# cp my-medium.cnf /etc/my.cnf
[root@linux etc]# groupadd mysql
[root@linux etc]# useradd -g mysql -d /usr/local/mysql/ -s /bin/false mysql
[root@linux bin]# cd /usr/local/mysql/bin/
[root@linux bin]# ./mysql_install_db --user=mysql
[root@linux local]# chgrp -R mysql mysql/
[root@linux mysql]# ./bin/mysqld_safe --user=mysql &
Mysql 登陆测试成功
安装 snmp
都在 disk 2 上执行
[root@linux ~]# rpm -ivh lm_sensors- 2.8.7 -2.i386.rpm   disk 2 上执行
[root@linux ~]# rpm -ivh net-snmp-libs- 5.1.2 -11.i386.rpm
[root@linux ~]# rpm -ivh net-snmp- 5.1.2 -11.i386.rpm
rpm -ivh net-snmp-utils- 5.1.2 -11.i386.rpm
[root@linux snmp]# vi /etc/snmp/snmpd.conf
com2sec notConfigUser  127.0.0.1       public
access  notConfigGroup ""      any       noauth    exact  all none none
com2sec local     localhost       COMMUNITY
com2sec mynetwork NETWORK/24      COMMUNITY
view all    included  .1                               80
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
access MyROGroup ""      any       noauth    0      all    none   none
access MyRWGroup ""      any       noauth    0      all    all    all
添加 snmpd 到自启动
chkconfig --level 345 snmpd on
******************************************************************
或是在安装 snmp 时直接给 snmp.conf 里面写上几条配置
com2sec local 127.0.0.1 public
group MyROGroup  v1       local
group MyROGroup  v2       local
group MyROGroup  usm       local
view all    included  . 1.3.6 .1.2.1.2 80
access MyROGroup ""      any       noauth    exact      all    none   none
************************************************************************
可以执行 snmpwalk 或是 snmpget 进行测试
snmpwalk -c public -v 2c your_host_ip if
使用以上的命令如果有出现 : 则表现 net-snmp 安装成功
安装 PHP
[root@linux ~]# tar zxvf php- 5.2.4 .tar.gz
[root@linux ~]# cd php- 5.2.4
[root@linux php- 5.2.4 ]# ./configure --prefix=/usr/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/php --enable-sockets --with-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/include --with-gd
出错: configure: error: Cannot find libmysqlclient_r under
安装 PHP5 时提示这个错误 , 只要重新编译 mysql5, 且加上参数 --enable-thread-safe-client 即可
[root@linux php- 5.2.4 ]# make
[root@linux php- 5.2.4 ]# make install
配置 apache httpd.conf 文件
[root@linux ~]# vi /usr/local/apache/conf/httpd.conf
添加
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
测试 php mysql
vi test.php
 <?
            phpinfo( );
            ?>
vi mysql.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>
  安装 rrdtool
[root@linux ~]# tar zxvf cgilib-0.5.tar.gz
[root@linux ~]# cd cgilib-0.5
[root@linux cgilib-0.5]# make
[root@linux cgilib-0.5]# cp libcgi.a /usr/local/lib
[root@linux cgilib-0.5]# cp cgi.h /usr/include/
#### 注意这里最好安装 rrdtool1.0 版的,自带了 cgi 等库文件。 1.2 版本的不自带 ####
[root@linux ~]# tar zxvf rrdtool- 1.2.11 .tar.gz
[root@linux ~]# cd rrdtool- 1.2.11
[root@linux rrdtool- 1.2.11 ]# ./configure --prefix=/usr/local/rrdtool --disable-tcl --disable-python
[root@linux rrdtool- 1.2.11 ]# make
[root@linux rrdtool- 1.2.11 ]# make install
安装配置 cacti
设置 mysql
创建数据库、数据库用户,调整权限、密码:
[root@linux ~]# mysql
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=old_password('cactiuser');
mysql> exit
添加 cacti 用户
[root@linux cacti]# groupadd cacti
[root@linux cacti]# useradd -g cacti -s /bin/false cacti
[root@linux cacti]# passwd cacti
 
[root@linux ~]# cp cacti- 0.8.6 f.tar.gz /usr/local/apache/htdocs/
[root@linux ~]# cd /usr/local/apache/htdocs/
[root@linux htdocs]# tar zxvf cacti- 0. 8.7a .tar.gz
[root@linux htdocs]# mv cacti- 0. 8.7a cacti
[root@linux cacti]# cd cacti
[root@linux cacti]# mysql -u root cactidb < cacti.sql
[root@linux cacti]# chown -R cacti rra
[root@linux cacti]# chown -R cacti log
[root@linux cacti]# cd scripts/
[root@linux scripts]# chown cacti:cacti *
[root@linux include]# vi config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
让系统每五分钟运一次
# crontab -u cactiuser -e  
加入
*/5 * * * * cactiuer /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php > /dev/null 2>&1
保存退出: wq
如果出现图形无法显示: selinux 的问题
vi /etc/selinux/config
SELINUX=disabled
全部设置完毕
总结,出不来图像有 2 种故障,一是: rrdtool 安装的版本问题,一般建议选择 rrdtool 1.0 的版本,自带了 cgi 库文件, rrdtool 1.2 的版本没有自带库文件。二是: selinux 的问题,关闭即可。。
Cacti 使用设置
shell 脚本,自定义cacti 采集数据画图监控,
1 :服务器端
snmp 提供了发送自定义信息的功能。查看snmpd.conf会看到有一个小节是关于外部脚本的,Executables/scripts。这个小节里面也举了例子,告诉你怎么通过snmp发送信息。我的做法如下(下面假定你已经配置好了snmp,通过cacti已经能采集到信息了)。
在任意位置添加一行:
exe c .1.3 .6.1.4.1.2021.51 httppro /etc/snmp/httppro
例如服务器添加的是:
exe c .1.3 .6.1.4.1.2021.51 wlsapache /root/wlsapache status
其中wlsapache是命令的名称,后面是命令以及参数。命令的名称可以随便起。脚本执行的结果类似下面:
# ./wlsapache status
3
ALL ok.
我这个脚本的“ALL ok”其实是副产品,对于采集数据没有用。
重启snmpd,然后远程通过snmpwalk接收一下数据看看:
# snmpwalk -v 1 192.168.1.201 -c publi c .1.3 .6.1.4.1.2021.51              
UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: “wlsapache”
UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: “/root/wlsapache status”
UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: “3″
UCD-SNMP-MIB::ucdavis.51.101.2 = STRING: “ALL ok.”
UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0
其中我们需要的是UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: “3″这一行:
# snmpwalk -v 1 192.168.1.201 -c publi c .1.3 .6.1.4.1.2021.51.101.1
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: “3″
能采集到数据之后,就可以配置cacti来接收了。在cacti界面中console->Templates->Data Templates,然后点击右上角的AddData Templates中的name是给这个数据模板的命名,Data Source中的name将来显示在Data Sources中,我这里添加“|host_description| - Network - wlsapache”,选get snmp dataInternal Data Source Name也可以随便添,这个用来给rrd文件命名。设置完后就可以save了,save之后会发现下面多了一些选项,在最下面那个添上我们需要的数据的OID“. 1.3.6 .1.4.1.2021.51. 101.1” ,可以保存了。
此后需要创建一个Graph Templates,好让cacti生成图片。在cacti界面中console->Templates->Graph Templates,然后点击右上角的AddTemplates中的name是给这个数据模板的命名,Graph Template中的name是将来显示在图片上面中间的内容,我这里添加“|host_description| - wlsapache status”,其他保持默认,保存之后上面会出来一些选项。
Graph Template Items中添加一个itemData Source选之前添加的,color选择一个图片的颜色,Graph Item TypeAREA,也就是区域,也可以选其他的线条,Text Format设置说明。然后再添加一个,Graph Item TypeGPRINTConsolidation FunctionLAST,也就是当前的值,Text Format输入current。你还可以添加一些Graph Item TypeCOMMENT的注释说明等。
现在只要为host添加这个画图模板就可以看到画出来的图了。
Cacti 报警机制实现:
-- 首先要安装一些扩展包使 cacti 支持各种插件,
[url]http://cactiusers.org/wiki/PluginArchitectureInstall[/url]
tar -zvxf cacti-plugin-arch.tar.gz
有两中方法来安装 cacti的插件架构扩展,第一种方法是使用 patch文件, patch文件包含了原始文件与修改后文件的不同之处,所以可以使用 patch文件来得到新的文件。第二种方法是使用 pre-patched文件进行直接覆盖,将与 cacti相对应版本的 files- 0.8.6 *目录下的文件直接拷贝到 cacti目录下进行覆盖。在此选择使用 patch文件进行安装(这也是官网推荐的方法)。将与 cacti相应版本的 cacti-pligin-0.8.6*.diff文件拷贝到 cacti目录下,然后使用 patch命令进行安装。
# cp cacti-plugin- 0. 8.7a -PA-v1.4.diff /usr/local/apache/htdocs/cacti
//备份 cacti目录,以备插件扩展安装失败后能恢复到原状态
# cd /usr/local/apache/htdocs
# cp �Cr cacti ./cacti.bak
# cd ./cacti
//首先使用以下命令进行测试
# patch -p1 -N --dry-run < cacti-plugin- 0. 8.7a -PA-v1.4.diff
//以上命令成功后,使用以下命令进行安装 ,以上经测试,无错误出现。    
# patch -p1 -N < cacti-plugin- 0. 8.7a -PA-v1.4.diff
注意 : 这里 cacti-plugin- 0. 8.7a 的版本必须与cacti 版本匹配。(也就是说扩展插件软件的版本必须和cacti原程序版本相同)
安装后配置,首先查看你的 cacti配置文件,看 cacti相关的数据库信息是否被覆盖,如果被覆盖请直接从备份中拷贝一份到配置文件目录。
# cp ../include/config.php ./include/config.php
打开 cacti配置文件,找到以下选项
$config['url_path'] = "/";
如过你的 cacti能够在浏览器中使用以下方法直接访问,则不用修改 cacti配置文件。
[url]http://www.youdomain.com[/url] [url]http://cacti[/url]机器 ip
如果 cacti在浏览器中使用以下方法直接访问,
[url]http://www.youdomain.com/cacti[/url] [url]http://cacti[/url]机器 ip/cacti
$config['url_path'] = "/";必须被修改为 $config['url_path'] = "/cacti/";注意前后的 /不能丢。
到此 cacti插件结构的扩展完成,现在可以下载并安装你需要的 cacti插件了。
监控图片无法显示,需删掉图片,然后在生成新的图片。
cacti 安装插件:下载[url]http://cactiusers.org/downloads/[/url]
下载 monitor 软件,版本为monitor- 0.8.1 .zip
解压: unzip monitor- 0.8.1 .zip
安装 Monitor,只需要将 monitor目录拷贝到 cacti/plugins/目录下即可。如果是升级安装,只需要完全覆盖原 monitor目录即可
激活 monitor插件,修改 cacti配置文件( cacti目录下的 include/config.php)。
$plugins = array();
$plugins[] = 'monitor';
$config = array();
注意:上面 monitor的名字必须与 cacti/plugins/目录下插件目录的名字相同
monitor.sql导入数据库
[root@localhost monitor]# mysql -u root cactidb < monitor.sql
console选项卡下,点击左侧菜单中的 Settings链接,在右侧出现的 web页中点击 Misc选项卡来配置 Monitor插件
Monitor 选项卡下所监控的机器状态。当有机器 Down 掉后,相应机器图标将由绿色变成红色,并发出声音进行报警。
测试:用ie打开监控界面,发现monitor 选项。
安装Threshold插件
在官方网站下载 thold- 0.3.8 .tar.gz ,由于使用这个版本无法出现 Auto-create thresholds 链接选项,所以最后采用了 thold-0.3.4.tar.gz
安装Threshold插件,只需将解压出来的Thold目录拷贝到cacti/plugins/目录下,并修改cacti配置文件(cacti目录下的include/config.php)。
$plugins[] = array() 后添加以下行
$plugins[] = ' thold ';
刷新cacti首页,你将看到多出来一个Threshld选项卡。
选中console选项卡,在左侧菜单中点击Settings,然后点击Alerting/Thold选项卡,来设置Threshold插件。
设置完成后在console选项卡下左侧菜单中点击Threshold Templates
点击Add按钮来添加一个Threshold模板。
在此,以添加一个监控硬盘空间的Threshold模板为例
Data Field下拉框中选择hdd_free,然后点击go按钮
填写以下信息,在 Low Threshold文本框中填入 1000,意思是当剩余的硬盘空间小于 1000M 时,发送邮件报警。在 Threshold CDEF下拉框选择 Divide by 1024,填入警报邮箱,完成 Threshold模板的添加。
应用刚才创建的 Threshold模板。在 console选项卡下点击 Devices,选择要应用此模板的 Host,点击最上面的 Create Graphs for this Host链接,然后点击 Auto-create thresholds链接来应用刚创建的 Threshold模板。
设置完成后在 console选项卡下左侧菜单中点击 Thresholds
在此可以管理已创建的警报。
点击 threshld选项卡可以查看警报的触发情况
####thold  触发机制设置 ###
通过 cacti thold 插件,可以做到 snmp 抓取到的数值低于你规定的值的时候进行邮件通知,例如我用他来监控磁盘空间,当磁盘空间低于某个数的时候就会给指定的 email 发邮件。但是有一点郁闷的是,有时候,可能是由于网络原因,抓取会超时,这样就会导致触发 trigger ,给你发送邮件。 5 分钟抓取一次,我这里的情况是几乎每个小时总会有 2 3 封这种邮件,很烦人,而且根本没意义。早就想屏蔽掉这种情况了,看了代码挺复杂就懒得弄,今天实在受不了了,深入了解了一下。
其实 thold 本身已经考虑到了这种情况,在 thold 的设置里面,就有一项 Default Trigger Count Number of consecutive times the data source must be in breach of the threshold for an alert to be raised ),就是连续触发几次才认为他真的低于 thold 了,才发送邮件。我尝试过修改这个设置,发现不管用。看了代码才了解,每个 Thresholds   都有自己的 trigger 值,那个 default trigger count 只对新建的 thresholds 才有用。所以针对现有的,需要逐个去修改才行。如果不设置这个选项,那么使用的就是上面设置的那个默认的,所以没特殊需要,还是不要针对每个 thresholds 设置自己的 trigger 值比较好,这样方便修改。我通过修改数据库的方法,直接把这些都修改了。
1.     UPDATE thold_data SET thold_fail_trigger = NULL ;
修改了之后还没有收到,这下应该清净了吧?

你可能感兴趣的:(linux,安装,配置,cacti,休闲)