#########################################################
####                     lnamp环境搭建                   ##
#########################################################


#########################################################
###                    rrdtool的安装                       ##
#########################################################
rrdtool的安装 (这里我采用yum安装)
[root@vm_web1 ~]# yum -y install rrdtool

#########################################################
###                    snmp的安装与测试                   ##
#########################################################    
一)安装net-snmp(也采用yum安装)
    [root@vm_web1 ~]# yum -y install net-snmp net-snmp-libs net-snmp-utils
二) 更改配置文件
    [root@vm_web1 ~]# cp -a /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak  # 修改配置文件前先备份
    [root@vm_web1 ~]# vi /etc/snmp/snmpd.conf # 修改配置文件--这里我先删除原来配置文件中的所有信息重新编写
    # 1 首选是定义一个共同体名(community--这个可以理解为一个明文的暗号),这里是snmppass,及可以用snmppass这个暗号用户名(sec name),这里是snmpUser。snmppass相当于用户snmpUser的密码:)
    #       sec.name  source          community
    com2sec snmpUser  default         snmppass
    
    # 2 定义一个组名(groupName)这里是snmpGroup,及组的安全级别v2c,把snmpUser这个用户加到这个组中
    #groupName      securityModel securityName
    group   snmpGroup   v2c           snmpUser
    
    # 3 建立一个VIEW,VIEW的基本语法是"view NAME TYPE SUBTREE [MASK]"。 这里我们先拿系统运行时间来举例.1.3.6.1.2.1.1.3.0
    view    snmpView    include        .1.3.6.1.2.1.1.3.0
    view    snmpView    included   .1   # .1 代表.1开头的所有
    # 像上面这句话的意思就是赋予snmpView这个view能够查看.1.3.6.1.2.1.1.3.0下面所有节点的权限。
    
    # 4 最后要做的是设定哪些组的人,哪些view的用户可以做什么具体的事情,用access来设置,基本语法是"access NAME CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY"。
     #       group        context  sec.model  sec.level   prefix    read      write     notif
    access   snmpGroup   ""         any         noauth     exact   snmpView  snmpView    none
    
    下面把配置文件去除注释后重写一遍
    #       sec.name  source          community
    com2sec snmpUser  default       snmppass        

    #       groupName      securityModel securityName
    group   snmpGroup v1           snmpUser
    group   snmpGroup v2c           snmpUser
        
    #       name           incl/excl     subtree         mask(optional)
    view    snmpView    included   .1.3.6.1.2.1.1
    view    snmpView    included   .1.3.6.1.2.1.25.1.1
    view    snmpView    included   .1

    #       group          context sec.model sec.level prefix read   write  notif
    access  snmpGroup ""      any       noauth    exact  snmpView none none
三) 启动服务    
    [root@vm_web1 ~]# service  snmpd  restart  # 重启snmpd

四) 测试
    [root@vm_web1 ~]# snmpwalk -v 2c -c snmppass localhost .1.3.6.1.2.1.1.5.0  # 通过获取主机名来测试是否成功
    SNMPv2-MIB::sysName.0 = STRING: vm_web1  # 得到 vm_web1 说明已经成功了
    
五) 安装snmp的php扩展
[root@vm_web1 config]# yum -y install php-snmp
    
#################################################################################################################
###                    cacti的安装与测试如果源码包配置不成功可以采用yum -y install cacti 来安装                   ##
#################################################################################################################        
一) 下载cacti压缩包解压
[root@vm_web1 software]# tar -zxvf cacti-0.8.8b.tar.gz

二) 配置一个apache的虚拟主机用来给cacti监控使用
[root@vm_web1 sites-available]# vi apache_main.conf

    DocumentRoot /data/wwwroot/web/cacti.me
    ErrorLog "/data/wwwroot/log/www.cacti.me-apache-error.log"
    CustomLog /data/wwwroot/log/www.cacti.me-apache-access.log
    ServerName www.cacti.me
    
      AllowOverride All
      Order allow,deny
      Allow from all
    


[root@vm_web1 web]# ln -s /data/conf/sites-available/apache_main.conf  /data/conf/sites-enabled/

三) 把cacti的代码复制到指定文件夹并修改权限
[root@vm_web1 sites-available]# cd /data/wwwroot/web/
[root@vm_web1 web]# mkdir cacti.me
[root@vm_web1 web]# cd /data/wwwroot/web/cacti.me/
[root@vm_web1 cacti.me]# cp -a /data/software/cacti-0.8.8b/* ./    
[root@vm_web1 cacti.me]# chown -R www:www ./*

四) 创建cacti的数据库
[root@vm_web1 cacti.me]# mysql -u root -p123456
MariaDB [(none)]> create database cactidb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use cactidb;
Database changed
MariaDB [cactidb]> source /data/wwwroot/web/cacti.me/cacti.sql;  # 导入数据

MariaDB [cactidb]> GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';  # 创建一个mysql用户专门用来操作cactidb这个数据库
Query OK, 0 rows affected (0.04 sec)

五) 修改cacti.me相关配置文件代码
[root@vm_web1 ~]# cd /data/wwwroot/web/cacti.me/include/
[root@vm_web1 include]# vi config.php   # 修改配置文件
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
$database_ssl = false;

/*
   Edit this to point to the default URL of your Cacti install
   ex: if your cacti install as at http://serverip/cacti/ this
   would be set to /cacti/
*/
//$url_path = "/cacti/";
$url_path = "/";  // 这一行非常重要设置cacti程序访问路径的

六)安装初始化
在xp的系统上绑定host文件访问
192.168.1.244 www.cacti.me

1 直接在web浏览器上输入www.cacti.me:8080(我apache开启的是8080端口)会跳转到http://www.cacti.me:8080/install/
cacti监控主机磁盘,cpu,内存的使用情况_第1张图片
2 点击next 选择new install点击next

3 出现如图2所示页面,填写如图

cacti监控主机磁盘,cpu,内存的使用情况_第2张图片

。点击finish

4 出现如图

cacti监控主机磁盘,cpu,内存的使用情况_第3张图片

所示登录页面。默认用户名和密码都是admin

5 登录之后要求强制修改密码这里我改成admin123456

6 修改密码之后就进入了cacti的管理界面了。如图

cacti监控主机磁盘,cpu,内存的使用情况_第4张图片

############################################################
###                    cacti的使用                              ##
############################################################
假设这里被监测的服务器名叫vm_web1 IP:ip地址为127.0.0.1(自己监控自己),SNMP的community为snmppass。
进入Cacti的console面板->
点击“Devices”进入设备面板->  如图

cacti监控主机磁盘,cpu,内存的使用情况_第5张图片
点击add 添加新设备。具体参数填写如图cacti监控主机磁盘,cpu,内存的使用情况_第6张图片
点击create保存信息。如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”。如果没有错误信息则页面下方会出现:
如图

cacti监控主机磁盘,cpu,内存的使用情况_第7张图片

所示的一些选项。这里我们选择 cpu 内存 负载  挂载点等信息。点击save


点击左边的New Graphs,进入如图

cacti监控主机磁盘,cpu,内存的使用情况_第8张图片

所示页面。勾选想要绘图的项。点击create

点击Graph Trees,进入Graph Trees面板点击Add添加一个Graph Trees 并把想要在这个Graph Trees绘图的项勾选



############################################################
##            使用crontab让cacti自动绘图                      ##
############################################################

chown -R www:www /data/wwwroot/web/cacti.me

su -l www
/usr/bin/php   /data/wwwroot/web/cacti.me/poller.php  # 手动访问一下看是否有错误信息

# 如果没有错误信息则
vi /etc/crontab   # 添加下面这一行
*/5 * * * *  www /usr/bin/php /data/wwwroot/web/cacti.me/poller.php &>/dev/null # 让cacti自动绘图

如果没有任何错误的话,经过一段时间之后可以看到如图

cacti监控主机磁盘,cpu,内存的使用情况_第9张图片所示画面


# 注意 如果手动访问有错。查看 php.ini 中设置的disable_functions  open_basedir  等项是否设置有问题