cacti搭建

Posted 98years

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

[[email protected] ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

[[email protected] ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就开始安装MySQL服务器。

[[email protected] ~]# yum -y install mysql-community-server

这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

技术分享图片

至此MySQL就安装完成了,然后是对MySQL的一些设置。

2.2 2 MySQL数据库设置

  首先启动MySQL

[[email protected] ~]# systemctl start  mysqld.service

  查看MySQL运行状态,运行状态如图:

[[email protected] ~]# systemctl status mysqld.service

技术分享图片

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

[[email protected] ~]# grep "password" /var/log/mysqld.log

 

 如下命令进入数据库:

[[email protected] ~]# 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 <[email protected]>

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 [email protected] 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

技术分享图片

 






























以上是关于cacti搭建的主要内容,如果未能解决你的问题,请参考以下文章

linux下搭建cacti监控

centos7下搭建cacti

CentOS7.X基于LAMP环境搭建cacti

cacti搭建

Cacti搭建以及部分常用插件安装

linux下搭建cacti监控