cacti的部署(网络搜集加自己整理)

Cacti安装环境:CentOS6.0 (64位)系统,采用最小安装

Cacti安装具体步骤说明

一、软件准备工作

1、  批量下载并安装软件包(需要可以访问外网,且在/etc/resolv.conf设置nameserver):

yum -y install httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel

2、  更新yum

yum clean all

yum list (可能会不成功,需要多尝试几次,这取决于你的网络和欧美服务器之间的稳定性)

3、  安装rrdtool

yum install rrdtool

4、  设置相关服务开机自动启动:

chkconfig httpd on

chkconfig mysqld on

chkconfig snmpd on

使用chkconfig –list 查看当前已开启开机启动的服务列表(2、3、4、5为on即可)

二、MySQL数据库设置

1、启动mysql服务:# servicemysqld start

2、为root用户设置密码,并更改登录权限,默认密码为空 

# mysql -uroot -p      提示输入密码,初次安装直接回车即可 

mysql> use mysql 

mysql> update user set password=PASSWORD('szfounder') where user='root';

mysql> grant all privileges on *.* to root@localhost identified by 'szfounder' with grant option;   

mysql> flush privileges;

3、创建数据库cacti和cacti用户,并为其设置权限 

mysql> create database cacti default character set utf8;    //数据库字符集设置utf8,否则乱码

 mysql> grant all privileges on cacti.* to cacti@localhost identified by 'szfounder' with grant option; 

mysql> flush privileges;

三、下载并安装Cacti

1、  获取最新版本的cacti:wget http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz

如果提示没有wget命令,使用sudo yum -y install wget进行下载

2、  安装下载的文件:tarzxvf cacti-0.8.8h.tar.gz

3、  将安装目录移动并重命名为cacti:mvcacti-0.8.8h /var/www/cacti

4、  修改配置文件:vi/var/www/cacti/include/config.php中的几个参数如下:

5、  创建并且编辑文件:vi/etc/httpd/conf.d/cacti.conf

文件内容如下:

Alias/cacti /var/www/cacti

<Directory/var/www/cacti>

   AllowOverride None

   Order Deny,Allow

   Deny from all

   Allow from 219.232.0.0/16

   Allow from 10.0.0.0/8

   Allow from 172.16.0.0/11

   Allow from ::1

   Options Indexes Includes FollowSymLinks

</Directory>

# Thesedirectories do not require access over HTTP

#

<Directory/var/www/cacti/cli>

    Order Deny,Allow

    Deny from All

    Allow from None

</Directory>

6、  导入数据库并启动服务

mysql -ucacti -pszfounder cacti </var/www/cacti/cacti.sql

service mysqld restart

service httpd restart

service snmpd restart

在cent OS7.0中,使用的数据为mariadb,需要重启使用命令:

systemctl restart mariadb.service

7、  创建新用户cacti,并添加访问指定目录的权限

useradd cacti

chown -R cacti /var/www/cacti/rra/ /var/www/cacti/log/

chown -R root.root *

8、  修改文件:vi/var/www/cacti/include/global.php 修改内容如下:

9、  在防火墙中启用80端口

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

四、在浏览器输入http://ip/cacti进入安装界面

如果进入不了请尝试以下步骤:

1、  setenforce 0 (手动关闭selinux,如果可以,则进入文件vi /etc/selinux/config 修改SELINUX=disabled防止重启自动启动)

2、  查看cacti.conf文件中的allow是否生效

3、  检查防火墙设置,centos7.0中在防火墙开放TCP 80端口的命令是:

firewall-cmd --zone=public --add-port=80/tcp --permanent

然后重启防火墙:systemctl restart firewalld.service

进入后,点击下一步,在登录界面输入默认账号和密码分别是admin,admin然后修改密码登陆即可!

五、添加相关插件

1、  下载并安装spine高效轮询器

需要和下载的cacti版本匹配,使用

wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8h.tar.gz

tar -zxvf cacti-spine-0.8.8h.tar.gz

cd cacti-spine-0.8.8h

./configure

make && make install

以上步骤如提示错误:未发现gcc,则使用命令yum install gcc 然后重复倒数两步即可;如果提示:configure: error: Cannot find MySQL headers,则需要yum installmysql-devel

2、  配置spine

1 cd/usr/local/spine/etc/

2 mvspine.conf.dist  /etc/spine.conf

3 vispine.conf

填写数据库信息,即Cacti数据库。

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         szfounder

DB_Port         3306

3、  在web界面设置spine对应的文件路径为 /usr/local/spine/bin/spine

4、  在轮询中,选择轮询器为spine

六、在系统中加入轮询任务计划:

crontab –e

输入:*/1 * * * * /usr/bin/php /var/www/cacti/poller.php 2>&1>/dev/null

1分钟轮序1次!

七、下载常用插件:

可以到官网http://docs.cacti.net/plugins 找到对应链接进行下载并安装,安装完毕之后

将对应的插件移动到/cacti/plugins/目录下即可!要特别说明的是weathermap插件的下载地址为:http://www.network-weathermap.com/files/php-weathermap-0.97a.zip

注意:要安装syslog和thold插件需要安装settings插件

tar xvfzsettings-v0.71-1.tgz

mv settings/var/www/cacti/plugins/settings

在系统中执行yum install -yunzip zip 安装解压zip类型的文件。

完成后效果图如下:

将系统的spine修改为1分钟轮询一次,包括RRA的各种参数,data template参数,步进。

查看crond计划运行情况:

tail -fn 100 /var/log/cron

另外修改文件读写权限:chmod 777 –R  +目录

修改目录及目录文件下的拥有者: chown –R root +目录

修改目录及目录文件下的所有组: chgrp –R root +目录

查看linux系统使用空间:

[root@localhost ~]# df -h

Filesystem           Size Used Avail Use% Mounted on

/dev/mapper/cl-root  250G 1.6G  249G   1% /

devtmpfs             7.8G     0 7.8G   0% /dev

tmpfs                7.8G     0 7.8G   0% /dev/shm

tmpfs                7.8G  8.4M 7.8G   1% /run

tmpfs                7.8G     0 7.8G   0% /sys/fs/cgroup

/dev/sda1           1014M  144M 871M  15% /boot

tmpfs                1.6G     0 1.6G   0% /run/user/0

查看某个目录占用的空间大小:

[root@localhost ~]# du -sh /var/www/cacti

7.8M   /var/www/cacti

扩容root空间大小:

把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home:

tar cvf /tmp/home.tar /home    #备份/home

umount /home    #卸载/home,如果无法卸载,先终止使用/home文件系统的进程

lvremove /dev/mapper/cl-home    #删除/cl-home所在的lv

lvextend -L +50G /dev/mapper/cl-root    #扩展/cl-root所在的lv,增加50G

xfs_growfs /dev/mapper/cl-root    #扩展/root文件系统

lvcreate -L 100G -n /dev/mapper/cl-home    #重新创建home lv

mkfs.xfs /dev/mapper/cl-home    #创建文件系统

mount /dev/mapper/cl-home #挂载

然后使用df –h查看挂载情况

[root@localhost ~]# df -h

Filesystem           Size Used Avail Use% Mounted on

/dev/mapper/cl-root  250G 1.6G  249G   1% /

devtmpfs             7.8G     0 7.8G   0% /dev

tmpfs                7.8G     0 7.8G   0% /dev/shm

tmpfs                7.8G  8.4M 7.8G   1% /run

tmpfs                7.8G     0 7.8G   0% /sys/fs/cgroup

/dev/sda1           1014M  144M 871M  15% /boot

tmpfs                1.6G     0 1.6G   0% /run/user/0

/dev/mapper/cl-home  100G  33M  100G   1% /home

在centos7版本里,使某个服务开机启动命令为:systemctl enable mysqld.service

运行某个服务:systemctl start mysqld.service以此类推

常见问题解析:

第一大类:无法进入cacti的web安装界面

1、  提示无权限:请尝试关闭SELinux

2、  提示为空白页HTTP500,尝试重新安装php: yum install php* --skip-broken -y

第二大类:不出图

1、  仙人掌始终无法画图,且使用rrdtool查看发现找不到文件。

解决办法:首先检查目录权限、所有者、所有组是否正常,使用ll+目录来查看具体情况;检查系统时区设置是否正常,这个在php.ini中查找,没有设置的话要设置为PRC(即中国),不知道具体目录使用

find / -name php.ini 来在全局模式查找该文件,然后使用vi进行编辑即可。

通过命令tail -fn100 cacti.log 查看日志记录,确认spine是否按照计划执行!

2、  Weathermap无法画图,提示未安装 GD library,使用命令:yum -y install php-gd 安装完毕后,重启httpd服务即可。

3、  使用tail -fn100 /var/www/cacti/log/cacti.log 查看具体日志来分析!

4、  检查系统时间:

查询中国时区的全称 timedatectllist-timezones | grep Shanghai 会得到:Asia/Shanghai

设置时区:timedatectlset-timezone Asia/Shanghai

设置时间:date -s"2018-04-10 11:06:50"

写入CMOS: clock-w

查看硬件时间:hwclock --show

5、   

第三大类:weathermap无法添加相关configuration file:

进入cacti数据库查看是否存在这些表SHOW TABLES FROM cacti;,没有则创建:

CREATE TABLE weathermap_maps (

           id int(11) NOT NULL auto_increment,

           sortorder int(11) NOT NULL default 0,

           group_id int(11) NOT NULL default 1,

           active set('on','off') NOT NULL default 'on',

           configfile text NOT NULL,

           imagefile text NOT NULL,

           htmlfile text NOT NULL,

           titlecache text NOT NULL,

           filehash varchar (40) NOT NULL default '',

           warncount int(11) NOT NULL default 0,

                debug set('on','off','once')NOT NULL default 'off',

                runtime double NOT NULL default0,

           lastrun datetime,

           config text NOT NULL default '',

           thumb_width int(11) NOT NULL default 0,

           thumb_height int(11) NOT NULL default 0,

           schedule varchar(32) NOT NULL default '*',

           archiving set('on','off') NOT NULL default 'off',

           PRIMARY KEY  (id)

        ) ENGINE=MyISAM;

        

CREATE TABLE weathermap_auth (

                     userid mediumint(9) NOTNULL default '0',

                     mapid int(11) NOT NULLdefault '0'

                  ) ENGINE=MyISAM;

                 

CREATE TABLE  weathermap_groups (

                              `id` INT(11) NOTNULL auto_increment,

                              `name` VARCHAR( 128 ) NOT NULLdefault '',

                              `sortorder`INT(11) NOT NULL default 0,

                              PRIMARY KEY (id)

                              ) ENGINE=MyISAM;

                             

                             

INSERT INTO weathermap_groups(id,name,sortorder) VALUES (1,'Weathermaps',1);

CREATE TABLE IF NOT EXISTS weathermap_data(id int(11) NOT NULL auto_increment,

           rrdfile varchar(255) NOT NULL,data_source_name varchar(19) NOT NULL,

              last_time int(11) NOTNULL,last_value varchar(255) NOT NULL,

           last_calc varchar(255) NOT NULL, sequence int(11) NOT NULL,local_data_id int(11) NOT NULL DEFAULT 0, PRIMARY KEY  (id), KEY rrdfile (rrdfile),

             KEY local_data_id(local_data_id), KEY data_source_name (data_source_name) ) ENGINE=MyISAM;


后期的维护:

后期cacti.log文件会因不断写入日志而变得非常占用空间,使用echo “”> /var/www/cacti/log/cacti.log命令,将文件内容清空,保证磁盘空间利用率。




猜你喜欢

转载自blog.csdn.net/sinat_41702786/article/details/79984854