企业级高级监控系统-cacti

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 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
相关文章
|
4月前
|
监控 Cloud Native Linux
Linux 企业级夜莺监控分析工具远程访问
Linux 企业级夜莺监控分析工具远程访问
77 0
|
监控 网络协议 Unix
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
1152 0
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
|
9天前
|
存储 监控 关系型数据库
Cacti 监控平台搭建
Cacti 监控平台搭建
24 6
|
监控 Linux 数据库
Zabbix4.0监控系统搭建与使用
搭建监控系统的目的大致分为三类:1.获取监控对象的当前可用性以及监控项的趋势2.数据展示和分析3.预警和告知功能。
5711 0
|
监控 应用服务中间件 数据库
|
Web App开发 存储 监控
企业级分布式监控系统--zabbix
1.Zabbix简介   Zabbix 是一个企业级的分布式开源监控方案。 2.zabbix安装 zabbix重要的不是部署,而是学会操作使用,所以推荐大家进行一键部署。 手动部署可参考官方文档:https://www.
3421 0
|
监控 关系型数据库 Unix