Cacti
一、安装环境需求
服务端需要安装的服务软件:
1、mysql
2、SNMP
3、RRDTool 1.0.49 或 2.x 或 更高
4、Lamp
5、cacti
在安装linux系统时候安装包的选择:
base
editors
development librarys
development tools
x software development
system tools
二、mysql安装
2.1 下载并安装MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。
[root@localhost ~]# yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
至此MySQL就安装完成了,然后是对MySQL的一些设置。
2.2 2 MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
如下命令进入数据库:
[root@localhost ~]# mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
MySQL完整的初始密码规则可以通过如下命令查看:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
此时在输入ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
mysql> show databases;
Mysql密码修改
登录mysql,执行如下sql语句,括号内为新密码
mysql> set password=PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
三、snmp的安装
步骤1、安装前的环境部署工作(服务端)
hostname cacti ---- 规范计算机名
vim /etc/sysconfig/network
HOSTNAME=cacti
步骤2、安装前的环境部署工作(服务端、客户端)
yum -y groupinstall "Development Tools"
步骤3、安装snmp(服务端、客户端)
yum install -y net-snmp*
步骤4、备份snmp配置文件(服务端、客户端)
ll /etc/snmp/snmpd.conf
cd /etc/snmp/
cp snmpd.conf snmpd.conf.$(date +%F) ---- 备份snmp配置文件
步骤5、配置snmp(服务端、客户端)
cd /etc/snmp
vim snmpd.conf
cat >snmpd.conf<<EOF
com2sec local localhost public
com2sec mynetwork 192.168.1.0/24 public
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
view all included .1 80
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
syslocation etiantian.org
syscontact Me <48098550@qq.com>
proc mountd
proc ntalkd 4
proc sendmail 10 1
proc httpd 10 1
exec echotest /bin/echo hello world
exec disk_used_shell /bin/sh /root/current_disk_used.sh
exec httpd_proc /bin/sh /root/current_httpd_proc.sh
disk / 10000
disk /boot 10000
load 12 14 14
EOF
步骤6、启动snmp服务(服务端、客户端)
/etc/init.d/snmpd start
netstat -lntup | grep 161
ps -ef | grep snmpd | grep -v grep
snmpget -v 1 -c public localhost system.sysUpTime.0 ---- 检查snmp是否正常
步骤7、snmp设置开机自启动(服务端、客户端)
echo "/etc/init.d/snmpd start" >> /etc/rc.local
cat /etc/rc.local
三、安装RRDTool步骤(服务端)
步骤1、安装libart_lgpl
cd /tools
wget http://ftp.acc.umu.se/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.17.tar.gz
tar zxf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
./configure
make && make install
/bin/cp -r /usr/local/include/libart-2.0 /usr/include
步骤2、安装rrdtool前的准备工作
yum -y install libart_lgpl-devel pango-devel* cairo-devel* libxml2-devel
步骤3、安装rrdtool
cd /tools
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.30.tar.gz
tar zxf rrdtool-1.2.30.tar.gz
cd rrdtool-1.2.30
./configure
make && make install
ln -s /usr/local/rrdtool-1.2.30/bin/rrdtool /usr/local/bin/rrdtool ---- 软连接
ll /usr/local/bin/rrdtool ---- 查看是否安装成功
四、安装lamp(服务端)
步骤1、安装lamp前的准备工作
yum install -y gcc glibc glibc-common cairo pango zlib zlib-devel freetype freetype-devel gd gd-devel
步骤2、安装lamp
yum install -y mysql* httpd* php* --skip-broken
步骤3、配置Apache
cd /etc/httpd/conf
cp httpd.conf httpd.conf.$(date +%F)
sed -i 's#\#ServerName www.example.com:80#ServerName 127.0.0.1:80#g' /etc/httpd/conf/httpd.conf
sed -i 's#DirectoryIndex index.html index.html.var#DirectoryIndex index.php index.html#g' /etc/httpd/conf/httpd.conf
egrep "127.0.0.1|index.ph" /etc/httpd/conf/httpd.conf ---- 检查修改结果
步骤4、启动Apache
/etc/init.d/httpd start
lsof -i :80
echo "/etc/init.d/httpd start" >> /etc/rc.local
cat /etc/rc.local
步骤5、测试Apache的phpinfo
cd /var/www/html
vim index.php
<?php
phpinfo();
?>
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开机自启
vi /etc/sellinux/config
SELINUX=enable #disabled #enable改成disabled 禁用selinux
setenforce 0 #临时关闭selinux
IE测试:http://192.168.4.202/index.php
出现如上界面代表你的lamp搭建完成
测试结束后最好把phpinfo删除,避免安全隐患。
步骤6、启动mysql服务
/etc/init.d/mysqld start
lsof -i :3306
netstat -lnt | grep 3306
echo "/etc/init.d/mysqld start" >> /etc/rc.local
cat /etc/rc.local
步骤7、创建cacti用户、数据库
mysql
grant all on cacti.* to cactiuser@localhost identified by 'cactiuser'; ---- 用户名cactiuser,密码cactiuser
flush privileges;
select user,host from mysql.user; ---- 查看用户
create database cacti;
show databases; ---- 查看库
2、导入数据库
方法一:
(1)选择数据库
mysql>use cacti;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql> source
/usr/local/cacti-0.8.8b/cacti.sql
mysql -e "use cacti;show tables;" ---- 查看cacti数据库是否导入
cd /tools/cacti-0.8.8b/include
vim config.php ---- cacti配置文件,可以修改登陆密码
grep database /tools/cacti-0.8.8b/include/config.php ---- 查看用户密码配置
步骤3、设置Apache管理用户可以管理rra和log的权限
egrep "^User|^Group " /etc/httpd/conf/httpd.conf ---- 查看Apache服务的管理用户是谁
cd /tools/cacti-0.8.8b
chown -R apache rra/ log/
步骤4、配置cacti的站点目录
cp -a /tools/cacti-0.8.8b /var/www/html/cacti
ll /var/www/html
cd /var/www/html
chown -R apache.apache cacti
步骤5、测试poller.php(定时收集数据的php文件)
/usr/bin/php /var/www/html/cacti/poller.php
报错1:
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php'
原因:
mysql是编译安装的
解决办法:
重新部署一个新的linux系统,用yum安装mysql
报错2:
PHP Warning: strtotime():
PHP Warning: date():
报错原因:
php5.1.0开始,php.ini里加入了date.timezone这个选项,默认这个选项是关闭状态。开启这个功能,修改显示的时间是格林威治时间配置
解决办法:
sed -i 's#;date.timezone =#date.timezone = Asia/Shanghai#g' /etc/php.ini
报错3:
sh: -q: command not found
sh: -: command not found
解决办法:
chmod 755 /var/www/html/cacti/poller.php
报错4:
没有反应,反应速度慢
解决办法:
修改/etc/hosts文件,主机名IP地址对应有问题
步骤6、poller.php加入定时任务(cacti出图时使用该文件)
echo '#cacti Use the drawing' >> /var/spool/cron/root
echo '*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1' >> /var/spool/cron/root
crontab -l
步骤7、谷歌上运行安装cacti
http://192.168.4.202/cacti/index.php
注释:以上路径、文件在linux命令行确认一下是否存在
注意:默认用户名、密码是admin