Linux服务篇之九:构建Cacti监控平台

作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站、服务器的运行状态,这时需要借助开源软件(cacti、nagios、zabbix等)监控来实现。

Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。

snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称)。简单原理图如下:

1、Cacti服务器端安装

2、安装LAMP系统环境

yum install  httpd  mysql   mysql-server    php   php-mysql  -y

3、安装rrdtool采集工具

3.1、安装rrdtool之前需要安装相应的lib库,如下安装:

yum install cairo-devel libxml2-devel pango pango-devel -y

3.2、解压并进入该目录:tar xzf rrdtool-1.4.8.tar.gz;cd rrdtool-1.4.8

3.3、新建一个目录用于存放rrdtool数据:mkdir  /data/app/rrdtool/ -p

3.4、提前安装一些准备工具:

yum install perl-devel -y

yum install ncurses-devel -y

yum install gcc-c++ -y

3.5、预编译:./configure --prefix=/data/app/rrdtool/

编译及安装:make &&make install

3.6、链接到bin目录下:

ln -s  /data/app/rrdtool/bin/*  /usr/local/bin/

4、安装SNMP服务

yum install net-snmp  net-snmp-utils  �y

5、安装cacti主程序

5.1、解压:tar zxf cacti-0.8.8a.tar.gz

5.2、移动cacti文件到httpd发布目录:mv cacti-0.8.8a /var/www/html/cacti/

6、创建cacti数据库

6.1、启动mysq服务:/etc/init.d/mysqld start

6.2、进入数据库并创建数据库、授权、刷新权限,

7、mysql配置完成后,把cacti.sql数据导入cacti数据库

有两种方法导入:

7.1、在LAP上执行:

进入数据库并查看表,

7.2、在MYSQL上执行:

删除前面已有的数据库cacti,并新建一个cacti,

授权caici数据库用户cacti;

复制LAP上的cacti.sql到MYSQL目录,

两端都要安装:yum install openssh-clients -y,用于在两台虚拟机之间复制文件;

在LAP上执行:

在MSYQ上查看:

把cacti.sql数据导入cacti数据库,

查看数据库中表的内容,

7.3、授权目录:设置cacti  rra、log 目录的权限,这里设置为777:

chmod -R  777  /var/www/html/cacti/rra/

chmod -R  777  /var/www/html/cacti/log/

7.4、修改cacti全局配置文件:

vi /var/www/html/cacti/include/config.php为如下配置:

修改成这样:

8、添加rrdtool抓图任务计划

8.1、在crontab中添加,一个计划任务:

把内容写进这个里面:

重启一下服务,并查看一下是否启动成功,

查看目录,配置文件写入了这个文件的位置:

查看一下这个文件的内容,每隔1分钟会运行一次这个脚本:

进入下一步,

没有出现错误,完成初始化操作!

进入监控的主界面,默认的用户名和密码都是:admin。登录后,会让你修改密码;

进入cacti监控的主界面,

10、如何对服务器进行监控?

设备选项:Devices,找到一台默认的本地主机,

其他的都不用修改了,保存配置;

出现错误,

查看一下snmp的服务是否启动了,需要启动该snmp服务,

刷新一下页面,页面没有报错,成功!

这里,就是需要监控的内容:

11、下面开始创建主机拓扑图

抓取一下本地磁盘信息,

进入树图,默认的树,可以看到,本地主机已经添加进去了,还可以再添加!

已经有图了!说明服务器已经被监控成功了!但是却出现了乱码现象:

cacti图片乱码,请安装 yum -y groupinstall chinese-support中文字体即可,再次刷新页面,页面正常显示了!

如果这里没有图,可以执行一下这个命令:/usr/bib/php  /var/www/html/cacti/poller.php

11、查看一下这个文件的内容,每隔1分钟会运行一次这个脚本:

/usr/bin/php /var/www/html/cacti/poller.php

看到这样的错误,大致是时钟的问题,需要设置一下,

编辑时区:vi /etc/php.ini

找一下:timezone,

改成这样:

重启一次apahce服务,

再次手工执行一下:/usr/bin/php /var/www/html/cacti/poller.php

终于没有报错了!

默认情况下是每隔1分钟绘制一幅图出来!

二、对客户端进行监控

1、安装snmp服务:yum install net-snmp  net-snmp-utils  -y

2、在客户端编辑snmp配置文件:

vi  /etc/snmp/snmpd.conf

更改:62行为:

access   notConfigGroup   ""    any   noauth    exact  all  none none

更改42行为:

com2sec notConfigUser  192.168.1.13public

(其中11.168.130.74 ip 表示你允许那台服务器可以监控你。public 表示团体名)

更改:86行:把#号去掉:变成如下即可

view   all    included .1   80

3、重启snmpd服务 :

service snmpd restart

可能还有其他的方法,我用的是这种方法 请指教 呵呵(如果snmp配置错误的话,在做cacti监控添加设备时会出现snmp error 的信息!)

4、执行snmpwalk-v2c -c public 192.168.1.12 测试一下

[root@SNCommunityWebTest ~]# snmpwalk -v2c -c public 10.0.0.185

SNMPv2-MIB::sysDescr.0 = STRING: Linux Cacti 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (381129) 1:03:31.29

SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf)

SNMPv2-MIB::sysName.0 = STRING: Cacti

SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)

SNMPv2-MIB::sysORLastChange.0 = Timeticks: (2) 0:00:00.02

SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1

SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance

SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB

SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB

SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip

SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB

SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup

SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.

SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.

SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.

SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities

SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations

SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations

SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations

SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.

SNMPv2-MIB::sysORUpTime.1 = Timeticks: (2) 0:00:00.02

SNMPv2-MIB::sysORUpTime.2 = Timeticks: (2) 0:00:00.02

SNMPv2-MIB::sysORUpTime.3 = Timeticks: (2) 0:00:00.02

SNMPv2-MIB::sysORUpTime.4 = Timeticks: (2) 0:00:00.02

SNMPv2-MIB::sysORUpTime.5 = Timeticks: (2) 0:00:00.02

HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (875154) 2:25:51.54

HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

5、添加客户端:

三、Cacti优化的配置Spine

在企业中,一般使用spine比较多,spine是一个基于C语言的,非常快速的轮询引擎。它是默认的cmd.php轮询的可选替代。当cacti监控的主机达到几十个的时候,这种采集数据延时情况就越发地显现出来。

安装:

yum install mysql-devel -y

yum install net-snmp-devel -y

./configure --prefix=/usr/local/spine ;make -j8 ;make -j8 install

配置:

vim /usr/local/spine/etc/spine.conf.dist

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         123

DB_Port         3306

DB_PreG         0

Spine验证:

/usr/local/spine/bin/spine 会出现相应版本及引用的配置文件。

如上配置完毕,然后设置cacti,选择spine轮询机制即可,需要在cacti监控页面后台设置settings。

linux 查看目录拓扑图,Linux服务篇之九:构建Cacti监控平台相关推荐

  1. linux查看目录文件系统,linux 怎么查看文件系统在哪个目录下

    linux 怎么查看文件系统在哪个目录下 mip版  关注:75  答案:2  悬赏:40 解决时间 2021-01-28 09:51 已解决 2021-01-28 00:09 linux 怎么查看文 ...

  2. linux 查看目录挂载,linux查看磁盘挂载的三种方法

    第一种方法:使用df命令,例如: 复制代码代码如下: orientalson:/home # df Filesystem 1K-blocks Used Available Use% Mounted o ...

  3. 【Linux】循序渐进学运维-服务篇-SCP命令

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第6篇文章 文章目录 前言 scp命令的使用 1. 什么是scp? 2. scp的格式 3. 复制本地文件到远程服务器 4. 拉取远程 ...

  4. 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...

  5. 【Linux】循序渐进学运维-服务篇-FTP的原理及使用

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第13篇文章 文章目录 一. FTP服务的概述 1. ftp的相关概念 2. 常见的FTP服务器 3. VSFTP基本信息 二. FT ...

  6. 【Linux】循序渐进学运维-服务篇-rysnc+inotify实战

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第12篇文章 文章目录 前言 实验环境 1. 配置ssh免秘钥登陆,且配置时间同步 2 . 设置rsync的配置文件,确保两台服务 ...

  7. 【Linux】循序渐进学运维-服务篇-inotify部署及应用

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第11篇文章 文章目录 前言 inotify 出现的原因 什么是inotify? 实验环境 1. 内核: 2. 查看当前系统是否支持安 ...

  8. 【Linux】循序渐进学运维-服务篇-rsync实战

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第10篇文章 文章目录 前言 实验环境 实验步骤 1. 修改配置文件 2. 创建提示文件及用户密码 1) 编辑欢迎信息 2) 创建密码 ...

  9. 【Linux】循序渐进学运维-服务篇-rysnc安装及使用

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第8篇文章 文章目录 前言 rsync安装 1. 查看是否已经安装 2. 安装rsync 3. 根据配置文件进行相关的配置 1) 创建 ...

最新文章

  1. 中国电子信息产业发展研究院主办的2018中国软件大会上大快搜索“又双叒叕”获奖了...
  2. 如何检查字符串是否包含特定单词?
  3. 合肥python培训-合肥Python测试开发全栈核心课程
  4. python 查找指定字符在字符串中的次数(全)
  5. subclipse用法
  6. 动态规划——K号数(蓝桥杯试题集)
  7. java实现自动登录_java实现用户自动登录
  8. 轻量级数据交换格式JSON
  9. Python中的字典(Dictionary)
  10. 程序员高效学习的六原则
  11. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三)
  12. FPGA定点数字信号处理技巧(一)
  13. 监听imput框的内容变化
  14. 网络质量监控 - 守好入口第一关
  15. 阅读类APP开发的好处有哪些
  16. 神策2020数据驱动用户大会:新愿景 + 新定位 + 新舰队正式亮相!
  17. 二分+思维点点之间最大距离
  18. 麦当劳中国推出全新平台“麦麦夜市”;美联航订购5000万加仑可持续航空燃料 | 美通企业日报...
  19. java频繁fullgc,fullgc过于频繁该怎么解决?(问题8)
  20. JZOJ 3158 【JSOI2013】丢番图

热门文章

  1. 反汇编分析工具IDA Pro的可视化插件使用方法
  2. 中兴的5G应用场景递增,不断整合内外资源
  3. 511遇见易语言数组插入成员
  4. 序列检测器(两种设计方法和四种检测模式|verilog代码|Testbench|仿真结果)
  5. 使用Ab命令对Apache服务器进行负载压力测试
  6. 如何制作营养膳食计算器_如何通过构建自动膳食计划器节省时间和金钱
  7. css 科技 边框_纯css制作带三角的边框(附效果图)
  8. Linux系统防CC攻击自动拉黑IP增强版(Shell脚本)
  9. 加勒比考试委员会将向24,000名候选人发放区块链证书
  10. STM32H750之SPI踩坑笔记