开源监控软件对比

  • Cacti(英文含义仙人掌)

是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,简化RRDtool使用。提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP结合进行用户认证,同时也能自定义模板。在历史数据展示监控方面,其功能相当不错。

Cacti通过添加模板,使不同设备的监控添加具有可复用性,并且具备可自定义绘图的功能,具有强大的运算能力(数据的叠加功能)

  •  nagios

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。

Nagios 可以监控的功能有:
1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
8、自动的日志回滚;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

  • Ganglia

是一个跨平台的、可扩展的、高性能的分布式监控系统,如集群和网格。它基于分层设计,使用广泛的技术,用RRDtool存储数据。具有可视化界面,适合对集群系统的自动化监控。其精心设计的数据结构和算法使得监控端到被监控端的连接开销非常低。目前已经有成千上万的集群正在使用这个监控系统,可以轻松的处理2000个节点的集群环境。

Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。

  • Zabbix

是一个基于web界面的分布式监控系统,支持多种采集方式采集客户端,有专用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的。

结论:

从以上各种监控系统的对比来看,Zabbix都是具有优势的,其丰富的功能、可扩展的能力、二次开发的能力和简单易用的特点,读者只要稍加学习,即可构建自己的监控系统。

Zabbix

选择zabbix的理由:

- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源

- 数据采集到数据库,可二次分析监控数据的。
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等

组成:

zabbix server:可以通过SNMP、zabbixagent、ping、端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。

zabbix agent(可选组件):安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

生命周期

目前推荐使用Zabbix2.2

安装

准备:

epel源、mysql已安装(yum install mysql-server)、zabbix官方仓库(http://repo.zabbix.com/

1. 安装epel源

# wget –O  /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

2. 安装Zabbix官方源码:

#rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

安装zabbix server:

3. 安装依赖包yum install -y OpenIPMI

4. yum install -y zabbix-server zabbix-server-mysql

5. 创建数据库

mysql> create database zabbix;

mysql> grant all on zabbix.* to zabbix@localhost identified by "zabbix_pass";

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix # 测试

# rpm -ql zabbix-server-mysql

导入server端数据表(注意顺序):

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/schema.sql  <--导入数据结构

#mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/images.sql  <--导入图片

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/data.sql   <--导入数据

6. 修改配置文件 # vim /etc/zabbix/zabbix_server.conf   <--增加zabbix使用数据库的密码

[root@zabbix-server ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix_pass   <--需修改同数据库设置

DBSocket=/tmp/mysql.sock 

SNMPTrapperFile=/var/log/snmptt/snmptt.log

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

7. 启动zabbix server

#service zabbix-server start

# netstat -ntlpu|grep 10051 ß检查启动状态

# chkconfig zabbix-server on   ß添加开机启动

server端安装zabbix web:

1. # yum install zabbix-web zabbix-web-mysql

默认安装了httpd服务,启动httpd

# chkconfig httpd on    ß添加开机启动

2. 访问http://ip/zabbix进入安装

==>解决:修改时区 # vim /etc/httpd/conf.d/zabbix.conf

3. 登录默认用户admin 密码:zabbix

4. 修改字体

vim /usr/share/zabbix/include/locales.inc.php

yum -y install wqy-microhei-fonts ß安装中文字体集

rm -f /etc/alternatives/zabbix-web-font #删除原有字体连接文件

ln -s /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /etc/alternatives/zabbix-web-font

安装agent

客户端和服务端都安装

1. # yum install -y zabbix-agent

# vim /etc/zabbix/zabbix_agentd.conf     //修改被动模式IP为zabbix server ip

:(一个Agent是可以同时向多个服务器端发送数据,多个Ip用逗号隔开)

Server:被动模式,允许哪台服务器连接Agent。

ServerActive:主动模式,向哪台服务器传送数据。

# /etc/init.d/zabbix-agent start //启动agent

# netstat -lntp |grep 10050 //验证端口

 

如果提示不能正常运行,分别检查zabbix_server.conf中的各项配置文件、Selinux、Iptables等。配置文件请检查以下文件的正确配置参数。

1./etc/zabbix/zabbix_server.conf中的参数。

#

DBHost=localhost         ß数据库的IP(域名)地址

DBName=zabbix              ß数据库的名称

DBUser=zabbix                ß数据库的用户

DBPassword=zabbix        ß数据库的密码

2./etc/zabbix/web/zabbix.conf.php中的配置。

[root@linux-node1 ~]# cat

/etc/zabbix/web/zabbix.conf.php

<?php

// Zabbix GUI configuration file.

global $DB;

$DB[‘TYPE’]    = ‘MYSQL’;          //数据库类型

$DB[‘SERVER’]  = ‘localhost’;              //数据库的IP(域名)地址

$DB[‘PORT’]    = ‘0’;           //数据库的端口

$DB[‘DATABASE’] = ‘zabbix’;           //数据库的名称

$DB[‘USER’]    = ‘zabbix’;            //数据库的用户

$DB[‘PASSWORD’] = ‘zabbix’;          //数据库的密码

// Schema name. Used for IBM DB2 and PostgreSQL.

$DB[‘SCHEMA’] = ”;

$ZBX_SERVER     = ‘localhost’;          ßZabbix-Server的IP(域名)地址

$ZBX_SERVER_PORT = ‘10051’;              ßZabbix-Server的端口

$ZBX_SERVER_NAME = ‘Zabbix-Xuliangwei’;          ßZabbix-Server web界面的标识

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

?>

监控流程

Zabbix-Get使用

Zabbix-Get是Zabbix中的一个程序,用于Zabbix-Server到Zabbix-Agent的数据获取,通常可以用来检测验证Agent的配置是否正确。

用法:zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>

-s:远程Zabbix-Agent的IP地址或者是主机名。

-p:远程Zabbix-Agent的端口。

-l:本机出去的IP地址,用于一台机器中又多个网卡的情况。

-k:获取远程Zabbix-Agent数据所使用的Key。

实现监控cpu(zabbix server主机上操作)

# yum install -y zabbix-get //安装zabbix-get工具

# zabbix_get -s 192.168.3.113 -k system.cpu.util[,user]

Agent数据采集方式:passive、active

Other Agent:SNMP、IPMI、Java Gateway

 

到此记录,谢谢观摩,待续…

监控利器---Zabbix(一)的更多相关文章

  1. 自动化监控利器-Zabbix

    转自: http://www.xuliangwei.com/xubusi/117.html   1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是 ...

  2. 自动化监控利器-Zabbix深入配置和使用

    1.  配置流程 Zabbix完整的监控配置流程可以简单描述为: Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触 ...

  3. 一、自动化监控利器-Zabbix

    目录 1. 监控的作用 1.1 为何需要监控系统 1.2 监控系统的实现 1.3 常用的监控软件 2. Zabbix简介 2.1 选择Zabbix的理由 2.2 Zabbix的功能特性 3. Zabb ...

  4. 分布式监控系统--zabbix

    1Zabbix简介 Zabbix 是一个企业级的分布式开源监控方案. 2.监控系统架构 C/S架构 客户端/服务器端,这种架构适合规模较小,处于同一地域的环境 C/P/S 客户端/代理端/服务器端/, ...

  5. 测者的性能测试手册:JVM的监控利器

    测者的性能测试手册:JVM的监控利器 每次聊起性能测试,最后的终结话题就是怎么做优化.其实在Java的复杂项目中都会有内存不足问题.内存泄露问题.线程死锁问题.CPU问题.这些问题工程测试或者是小压力 ...

  6. Linux 服务器运行健康状况监控利器 Spotlight on Unix 的安装与使用

    1.本文背景 1.1.Linux 服务器情况 # cat /etc/issueRed Hat Enterprise Linux Server release 6.1 (Santiago)Kernel ...

  7. 运维监控-使用Zabbix Server 创建 Actions

    运维监控-使用Zabbix Server 创建 Actions 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. zabbix的action默认是关闭的,因此我们想使用它就得先启用哟. ...

  8. 运维监控-使用Zabbix Server 创建触发器Triggers

    运维监控-使用Zabbix Server 创建触发器Triggers  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.点击相应主机的触发器 2>.点击创建触发器 ...

  9. 运维监控-使用Zabbix Server 添加自定义 item

    运维监控-使用Zabbix Server 监控自定义 item  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...

随机推荐

  1. Python 007- python的各种函数

    1.chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是Unicod ...

  2. Hibernate基础知识介绍

    一.什么是Hibernate? Hibernate,翻译过来是冬眠的意思,其实对于对象来说就是持久化.持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘) ...

  3. Netty 仿QQ聊天室 (实战二)

    Netty 聊天器(百万级流量实战二):仿QQ客户端 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之15 [博客园 总入口 ] 源码IDEA工程获取链接:Java 聊天室 实战 源码 写在 ...

  4. 配置hadoop用户SSH无密码登陆 的2种方式 落脚点是 可以ssh免密进入的主机名写入动作发出主机的 known_hosts,而被无密进入主机的authorized_keys文件 免密登录

    cat /proc/versionLinux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version ...

  5. some base knowledge

    har类型的长度被定义为一个8位字节,这很简单. short类型的长度至少为两字节.在有些计算机上,对于有些编译程序,short类型的长度可能为4字节,或者更长. int类型是一个整数的“自然”大小, ...

  6. memset 导致的段错误(segmentation fault)

    在调试Minixml库时,定义了一个结构体: struct ssid_info_s{ std::string wl_ssid_name; std::string wl_ssid_mac; std::s ...

  7. Codeforces Round #364 (Div. 1)(vp) 没什么题解就留坑待填

    我就做了前两题,第一题第一次vp就把我搞自闭跑路了,第二题第二次又把我搞自闭了 A. As Fast As Possible 细节题 #include<cstdio> #include&l ...

  8. CentOS(Linux) - 安装软件笔记(一) - VPSMate(服务器可视化管理工具)安装

    更多详情点击参考官网说明 vpsmate官方推荐centos版本为6.2 64位 使用 SSH 连接工具,如 PuTTY.XShell.SecureCRT 等,连接到您的 Linux 服务器. 执行以 ...

  9. Codeforces Round #369 (Div. 2) D. Directed Roads —— DFS找环 + 快速幂

    题目链接:http://codeforces.com/problemset/problem/711/D D. Directed Roads time limit per test 2 seconds ...

  10. Java接口测试之使用有道翻译API

    写接口测试框架,找了有道翻译API来当测试数据 package com.httpGetTest; import java.beans.Encoder; import java.net.URLEncod ...