prometheus比zabbix好在哪点

2024-11-28 16:51:26
推荐回答(2个)
回答1:

Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。首先,我们先来介绍下Zabblx:一.Zabbix简介zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix由zabbixserver与可选组件zabbixagent两部门组成。zabbixserver可以通过SNMP,zabbixagent,ping,端口监视等方法提供对远程服务器/网络状态的监视。zabbixagent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix的主要特点:-安装与配置简单,学习成本低-支持多语言(包括中文)-开源-自动发现服务器与网络设备-分布式监视以及WEB集中管理功能-可以无agent监视-用户安全认证和柔软的授权方式-通过WEB界面设置或查看监视结果-email等通知功能等等Zabbix主要功能:-CPU负荷-内存使用-磁盘使用-网络状况-端口监视-日志监视官方也提供了安装资料:二.Zabbix安装2.1zabbixWEB环境搭建zabbix的安装需要LAMP或者LNMP环境。需要其它的软件包yuminstallmysql-devgccnet-snmp-develcurl-develperl-DBIphp-gdphp-mysqlphp-bcmathphp-mbstringphp-xm2.2zabbix数据库设置zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。grantallprivilegesonzabbix.*tozabbix_user@'ip'identifiedby'123456';注:ip为zabbix服务器的IP地址。关于数据库的安装,可以查看Mysql安装,我习惯使用二进制包。启动数据库/usr/local/mysql/bin/mysqld_safe--user=mysql&登录数据库,创建帐号和设置权限:mysql>usemysql;mysql>createdatabasezabbixcharactersetutf8;mysql>grantallprivilegesonzabbix.*tozabbix_user@'192.168.10.197'identifiedby'123456';2.3安装zabbix服务增加zabbix用户和组#groupaddzabbix#useradd-gzabbix-mzabbix官网下载解压软件包。下载地址:#wget#tar-zxvfzabbix-2.0.3.tar.gz#cdzabbix-2.203导入数据库表#cdzabbix-2.0.3/database/mysql#mysql-uroot-pmysqlzabbix

回答2:

Prometheus由Go语言开发,是一套开源的监控、报警、时间序列数据库的组合,适合监控docker容器。因为K8S的流行带动了Prometheus的发展,它可以监控主机、服务、容器。
时间序列数据:按照时间顺序记录系统、设备状态变化的数据被称为时序数据。这种时序数据,会应用到很多场景,比如:系统日志、无人驾驶车辆运行记录、证券行业实时交易数据等。
时间序列数据库优势
性能好:关系型数据库对于大规模数据的处理性能槽糕,NOSQL可以比较好的处理大规模数据,但依然比不上时间序列数据库。
存储成本低:高效的压缩算法,节省存储空间,有效降低IO。
Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G的空间。
Prometheus的主要特征
1、多维度数据模型;
2、灵活的查询语言;
3、不依赖分布式存储,单个服务器节点是自主的;
4、以HTTP方式,通过pull模型拉取时间序列数据;
5、可以通过中间网关支持push模型;
6、通过服务发现或者静态配置,来发现目标服务对象;
7、支持多种多样的图表和界面展示,可以使用第三方的工具来展示内容,比如:grafana。
Prometheus监控原理
Prometheus Server负责定时在目标上抓取metrics数据;每个抓取目标都需要暴露一个HTTP服务接口用于Prometheus定时抓取。也就是说Prometheus会将获取到的监控数据打包成一个可访问的web页面,通过访问指定的url来确定主机的状态。