企业级高级监控系统-cacti

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、工作原理

管理服务器(nms)通过一种协议监控远程被监控主机状态,并将返回结果统计分析。并且可以通过设置阈值来通知管理员告警信息的软件系统,就称为监控系统。

常见的通信方式:

SNMP协议通信

command,命令方式

remote script(ssh)

二、常见工具

cacti

强大的绘图展示工具,它通过RRDtool来统计数据。它以时间轴为基准进行统计和展示。

nagios

监控系统状态、通知机制。

三、SNMP

1、版本介绍

snmp-v1版本:

nms通过snmp和被监控端进行通信,他们之间通过“社区(comminuty)“进行安全认证,这种认证是明文的,只需要在客户端设置comminuty为一个相同的字符串即可。

comminuty的工作方式有readonly(nms只能获取信息),read-write(NMS可以修改查询请求),trap(陷阱模式,被监控端可以主动发送告警信息)。

snmp-v2版本(snmpv2c)

区别不大,功能做了一些强化。

snmp-v3版本:

增强了认证机制,但是使用率上同样是v1版本。

2、centos服务器SNMP程序:

net-snmp(agent):被监控端程序

net-snmp-utils(nms):监控端程序

注意:如果nms端要启动trap工作模式,就需要安装net-snmp程序,并且启动snmptrapd服务。

[root@node6.dtedu.com /etc/puppetlabs/puppet]# yum install net-snmp net-snmp-utils


配置文件:

[root@node6.dtedu.com /etc/puppetlabs/puppet]# rpm -ql net-snmp

/etc/rc.d/init.d/snmpd

/etc/rc.d/init.d/snmptrapd

/etc/snmp

/etc/snmp/snmpd.conf agent配置文件

/etc/snmp/snmptrapd.conf

/etc/sysconfig/snmpd agent配置文件

/etc/sysconfig/snmptrapd trap配置文件


3、MIBS

SNMP的管理信息库。此数据库有些类似树状结构,依据被被监控对象分层细化标识名称(像域名结构),这种结构的使用,也有一个类似FQDN的名称,就是OID。

通常所有监控软件都会提供一个最基本的MIB库,就是MIB-II。

[root@node6.dtedu.com /etc/puppetlabs/puppet]# ls /usr/share/snmp/mibs/

AGENTX-MIB.txt                       IPV6-TC.txt                SNMP-FRAMEWORK-MIB.txt

BRIDGE-MIB.txt                       IPV6-UDP-MIB.txt           SNMP-MPD-MIB.txt

COROSYNC-MIB.txt                     KEEPALIVED-MIB.txt         SNMP-NOTIFICATION-MIB.txt

DISMAN-EVENT-MIB.txt                 LM-SENSORS-MIB.txt         SNMP-PROXY-MIB.txt

DISMAN-SCHEDULE-MIB.txt              MTA-MIB.txt                SNMP-TARGET-MIB.txt

DISMAN-SCRIPT-MIB.txt                NET-SNMP-AGENT-MIB.txt     SNMP-USER-BASED-SM-MIB.txt

EtherLike-MIB.txt                    NET-SNMP-EXAMPLES-MIB.txt  SNMP-USM-AES-MIB.txt

HCNUM-TC.txt                         NET-SNMP-EXTEND-MIB.txt    SNMP-USM-DH-OBJECTS-MIB.txt

HOST-RESOURCES-MIB.txt               NET-SNMP-MIB.txt           SNMPv2-CONF.txt

HOST-RESOURCES-TYPES.txt             NET-SNMP-PASS-MIB.txt      SNMPv2-MIB.txt

IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt  NET-SNMP-TC.txt            SNMPv2-SMI.txt

IANAifType-MIB.txt                   NET-SNMP-VACM-MIB.txt      SNMPv2-TC.txt

IANA-LANGUAGE-MIB.txt                NETWORK-SERVICES-MIB.txt   SNMPv2-TM.txt

IANA-RTPROTO-MIB.txt                 NOTIFICATION-LOG-MIB.txt   SNMP-VIEW-BASED-ACM-MIB.txt

IF-INVERTED-STACK-MIB.txt            PCMK-MIB.txt               TCP-MIB.txt

IF-MIB.txt                           RFC1155-SMI.txt            TRANSPORT-ADDRESS-MIB.txt

INET-ADDRESS-MIB.txt                 RFC1213-MIB.txt            UCD-DEMO-MIB.txt

IP-FORWARD-MIB.txt                   RFC-1215.txt               UCD-DISKIO-MIB.txt

IP-MIB.txt                           RMON-MIB.txt               UCD-DLMOD-MIB.txt

IPV6-ICMP-MIB.txt                    SCTP-MIB.txt               UCD-IPFWACC-MIB.txt

IPV6-MIB.txt                         SMUX-MIB.txt               UCD-SNMP-MIB.txt

IPV6-TCP-MIB.txt                     SNMP-COMMUNITY-MIB.txt     UDP-MIB.txt


MIB下面的常用监控主机选项:

host:OID:1.3.6.1.2.1.25

hrsystem:主机系统状态信息,1

hrstorage:主机存储信息,2

hrdevice:主机设备信息,3

hrswrun:4,

hrswrunperf:主机性能信息,5

hrswinstalled:主机已安装软件,6

[root@node6.dtedu.com /etc/puppetlabs/puppet]# snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.25.1

HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (33931409) 3 days, 22:15:14.09

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

[root@node6.dtedu.com /etc/puppetlabs/puppet]# 


282953.tmp472969.tmp

805140.tmp

4、基本配置

被监控端监控端口:UDP161

监控端端口:UDP 162(仅在使用trap模式时使用)

SNMP的操作

get:获取OID信息

getnext:获取指定节点下的所有OID信息

getbulk:v2或v3版本用

set:

getresponse:获取响应报文

trap:

notification

inform:

report:

修改配置文件的安全属性,comminuty。

#com2sec notConfigUser  default       public


com2sec notConfigUser  127.0.0.1       mypublic

com2sec notConfigUser  10.40.0         mypublic


四、RRDtool

轮转数据库,用于收集并存储snmp被监控端信息。以rrd文件名结尾。需要编译安装rrdtool工具。

314202.tmp

实例:

每个5秒钟生成一个随机数,并查看每5秒的平均值,50秒的平均值。并存储一天的统计信息。

24h*60*60=86400,86400/5=17280,表示存储在rrd数据库中的分区个数。

命令格式:

rrdtool create filename [—start|-b start time] [—step|-s step] [—no-overwrite] [DS:] [RRA:CF:cf arguments]

五、CACTI

1、简介:

将rrdtool通过命令行方式实现的数据统计制图工具,通过简单的窗口方式实现的工具。

支持模板工具,简化管理及编写脚本工作。

运行lnmp的前提是需要lnmp平台,并且php需要启用 --enable-sockets。

2、模板类型

图形模板:通过数据模板制作图形文件。

数据模板:用来定义cacti服务器从被监控主机上获取的数据的保存格式。

主机模板

3、安装

安装教程使用的0.8.8a,适用于yum安装的mysql5.1,这里我就图省事了。

首先是解压缩cacti.0.8.8a软件包,并复制到/var/www/html/cacti目录下。

修改httpd.conf的配置文件及创建cacti数据库,及相关账户。(用1.1.7相同)

修改cacti的配置文件/var/www/html/cacti/include/conf.php文件,将mysql相关信息添加进去。

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "123123";

$database_port = "3306";

$database_ssl = false;

$url_path = "/“; 修改url访问路径


注意:poller.php脚本用于实现定期执行收集数据的工作的,但是他适用于单线程工作,如果是多线程工作方式需要使用spine进行替换。

为cacti制作周期性计划:

[root@node6.dtedu.com /var/www/html/cacti]# echo '*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null' >/var/spool/cron/cactiuser


可以通过登录cactiuser来验证计划执行情况,这个时候会有错误的,也就是需要配置php.ini文件修改时区了。重启mysql、php-fpm、httpd服务。

date.timezone = Asia/Shanghai



以下适用于通过yum安装cacti,并且版本为1.1.7。要求mysql使用5.6及以上版本。步骤是yum安装lamp平台,修改httpd.conf配置文件创建虚机主机(关闭documentroot)。创建mysql数据库cacti,并导入cacti.sql文件。

 <virtualhost *:80>

        servername cacti.dtedu.com

        documentroot /var/www/html/cacti/

        <directory "/var/www/html/cacti/">

                options indexes

                allowoverride none

                 Order allow,deny

                 Allow from all

                 directoryindex index.php

                #require all granted

        </directory>

        errorlog "/var/log/cacti/error.log"

        customlog "/var/log/cacti/access.log" common

 </virtualhost>


addtype application/x-httpd-php .php

addtype application/x-httpd-php-source .phps

directoryindex inex.php


[root@node6.dtedu.com ~]# rpm -ql cacti |grep .sql

/usr/share/doc/cacti-1.1.7/cacti.sql

/usr/share/doc/cacti-1.1.7/docs/html/check-mysql-updating.html

/usr/share/doc/cacti-1.1.7/docs/html/unix-configure-mysql.html

/var/lib/cacti/cli/sqltable_to_php.php

/var/lib/cacti/scripts/sql.php

/var/lib/cacti/scripts/ss_sql.php

[root@node6.dtedu.com ~]# mysql cacti < /usr/share/doc/cacti-1.1.7/cacti.sql 

[root@node6.dtedu.com ~]# 


[root@node6.dtedu.com ~]# mysql -e " GRANT  all ON cacti.* TO cactiuser@localhost IDENTIFIED BY '123123' "

[root@node6.dtedu.com ~]# mysqladmin flush-privileges

[root@node6.dtedu.com ~]# mysql -u cactiuser 

ERROR 1045 (28000): Access denied for user 'cactiuser'@'localhost' (using password: NO)

[root@node6.dtedu.com ~]# mysql -u cactiuser -p

Enter password: 


[root@node6.dtedu.com ~]# vim /etc/cacti/db.php 


<?php


$database_type     = 'mysql';

$database_default  = 'cacti';

$database_hostname = 'localhost';

$database_username = 'cactiuser';

$database_password = '123123';

$database_port     = '3306';

$database_ssl      = false;

$url_path = '/‘; 表示直接通过”/“来访问,根据需要设置。


修改log 和rra目录的属主和属组改成cactiuser。

[root@node6.dtedu.com /var/www/html/cacti]# chown cactiuser:cactiuser  /var/www/html/cacti/{log,rra} -R



485352.tmp

修改device选项卡的SNMP选项,并保证/etc/snmp/snmpd.conf的comminuty和其相同。

14513.tmp

模板也可以通过cacti的官网论坛下载。

http://forums.cacti.net/viewforum.php?f=12&sid=ca55172419984bfeef1e79a0fb559b2f

established:0[root@node6.dtedu.com /var/www/html/cacti]# vim scripts/enstablished.sh


#!/bin/bash

#total localhost established

# $1:hostname or IP

# $2:community


SNMPNETSTAT=/usr/bin/snmpnetstat


established=`$SNMPNETSTAT -v 2c -c $2 -Can -Cp  tcp $1 |grep -i 'established' |wc -l`

echo -n "established:$established"




本文转自 blackstome 51CTO博客,原文链接:http://blog.51cto.com/137783/1968811,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
监控 Cloud Native Linux
Linux 企业级夜莺监控分析工具远程访问
Linux 企业级夜莺监控分析工具远程访问
90 0
|
监控 前端开发 关系型数据库
案例:搭建Zabbix监控系统
案例:搭建Zabbix监控系统
424 0
|
监控 网络协议 Unix
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
1252 0
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
|
2月前
|
存储 监控 关系型数据库
Cacti 监控平台搭建
Cacti 监控平台搭建
42 6
|
存储 监控 前端开发
Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加
Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加
464 0
|
存储 监控 安全
zabbix 监控系统概述及部署(上)
zabbix是一个个基于web界而的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让理员快速定位/解决存在的各种问题. zabbix由2部分构成。zabbix server 与可选组件zabbix agent 通过C/S模式采集数据,通过B/S模式在web端展示和配置. zabbix server可以通过SNMP(简单网络管理协议), zabbix agent(监控端),ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能 他可以运行在Linux等平台上. zabbix agent
zabbix 监控系统概述及部署(上)
|
监控
zabbix 监控系统概述及部署(下)
zabbix是一个个基于web界而的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.
zabbix 监控系统概述及部署(下)
|
监控 Linux 数据库
Zabbix4.0监控系统搭建与使用
搭建监控系统的目的大致分为三类:1.获取监控对象的当前可用性以及监控项的趋势2.数据展示和分析3.预警和告知功能。
5728 0
|
监控 应用服务中间件 数据库
|
Web App开发 存储 监控
企业级分布式监控系统--zabbix
1.Zabbix简介   Zabbix 是一个企业级的分布式开源监控方案。 2.zabbix安装 zabbix重要的不是部署,而是学会操作使用,所以推荐大家进行一键部署。 手动部署可参考官方文档:https://www.
3429 0
下一篇
无影云桌面