Cacti 基于php(前端),snmp(获取监控主机信息),rrdtool(数据存储和图表生成),mysql(程序存储与变量数据),后期可以添加其他插件完善功能,此处只是简单部署介绍. 使用包cacti-0.8.8h.tar.gz,还有使用LNMP(linux+nginx+mysql+php)环境
①搭建LNMP
使用CentOS7,关闭防火墙和selinux
nginx:需要pcre,zlib和openssl,通过yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 安装
然后编译nginx ./configure --prefix=/usr/local/nginx && make && make install ,后面再讲配置
mariadb:通过yum安装的版本为mariadb(mysql开源版),如果有需要可以自行编译mysql,这里使用yum install mariadb mariadb-server mariadb-devel -y 然后cp /usr/share/mysql/my-huge.cnf /etc/my.cnf 和执行mysql_secure_installation初始化数据库
php:yum install php php-mysql php-fpm php-gd libjpeg* php-snmp php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmatch php-mhash -y 这里安装的都是一些php支持库,而且会默认依赖httpd,php还是按照个人能力手动编译较好,然后修改/etc/php.ini 调整时区date.timezone=PRC(不然后期使用cacti会异常)
②cacti部署
建立cacti用户:useradd -s /sbin/nologin -M cacti
把cacti-0.8.8h.tar.gz解压到web服务器解析的目录上,这里使用/usr/local/nginx/html/cacti
tar zxvf cacti-0.8.8h.tar.gz -C /usr/local/nginx/html/
mv /usr/local/nginx/html/cacti-0.8.8h /usr/local/nginx/html/cacti
授权cacti目录并且修改两个文件的权限,避免一些权限问题
chown -R cacti:cacti /usr/local/nginx/html/cacti
chmod 0777 /usr/local/nginx/html/cacti/log
chmod 0777 /usr/local/nginx/html/cacti/rra
启动数据库systemctl start mariadb.service并且设置自启动 systemctl enable !$
建立cacti数据库,mysql -u root -p (输入刚才初始化mariadb的密码) 然后
grant all on cacti.* to cacti@localhost indentified by 'cacti';
flush privileges;
导入默认cacti数据库 mysql -u root -p cacti < /usr/local/nginx/html/cacti/cacti.sql 如果导入失败可以进入数据库再尝试
drop database cacti;
编辑修改/cacti/include/config.php,按照你的数据库实际修改
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
然后配置cacti在web上可用,编辑nginx.conf修改部分内容,其中cacti和php按照实际修改路径
server
{
listen 80;
server_name localhost;
location /cacti
{
root /usr/local/nginx/html;
index index.php index.html index.htm;
}
location ~ \.php$
{
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
}
③添加配置net-snmp和rrdtool
yum install rrdtool rrdtool-devel net-snmp net-snmp-* -y
通过crontab -e编辑一个抓图任务,按照实际修改php和cacti路径
*/5 * * * * /usr/bin/php /usr/local/nginx/html/cacti/poller.php > /dev/null 2>&1
编辑/etc/snmp/snmpd.conf,以下是一份比较简单的设置
syslocation "SHANGHAI P.R.China" #设置区域信息
syscontact youngyuyeah@localhost.com #设置系统联系人邮箱
rocommunity public 127.0.0.1
rwcommunity cacti
com2sec cacti 127.0.0.1 public #设置一个共同体名称public,和可以访问的用户cacti和来源host,public也相当于cacti的密码
com2sec cacti localhost public
group cacti_group v1 cacti #定义一个组名,和组的安全级别,把cacti用户加入组
group cacti_group v2c cacti
view all included .1 80 #定义view视图
access cacti_group "" any noauth exact all none none #定义cacti_group组在view的操作权限
使用snmpwalk -v 2c -c public 127.0.0.1测试[-v版本 -c 密码 和IP],如果有回显证明配置正确
实际中将127.0.0.1改为cacti机器地址,然后将snmpd.conf存放至需要监控的远程机器上并且启动snmpd进程
启动相对应的所有应用,如果以上一切都执行无异常那么可以通过访问http://ip/cacti来访问cacti的图形界面了,其他的配置通过图形界面操作简单很多了,图形界面可能出现的问题就是图不显示,那么可能是采集有问题,或者snmp通讯异常,如果没有字都显示为框框,那么是缺少字体导致的,给服务器安装一个字体即可