运维是什么?
运维是指软件运行上线后,对应用程序进行的一系列维护和管理活动。系统的维护、监控和管理
。
为什么要运维?
运维的目的是确保应用程序的稳定运行、性能优化和安全防护。运维的范围非常广泛,包括硬件、软件、网络和安全等方面。
运维的职责:
- 系统监控:对应用程序进行实时监控,及时发现和解决潜在的问题。
- 故障排除:在系统出现故障时,迅速定位问题并解决,确保系统快速恢复。
- 性能优化:通过对系统性能的监测和分析,优化应用程序的性能。
- 安全防护:保障应用程序的安全,防止黑客攻击和数据泄露。
- 配置管理:维护应用程序的配置信息,确保系统的正常运行。
- 自动化工具:开发和维护自动化工具,提高运维效率。
监控告警:主要包括下面几个层次,主机,中间件,网络,应用软件,数据库等层次的高级
拨测:拨测,是业务层面的监控,监控软件的性能是否正常
自动化工具:常见的问题,自动化解决,比如流出运维接口等方式,比如写一些监控脚本来监控服务器的CPU,内存等
接入调用链工具,来快速定位问题
日志分析:接入日志中心平台,来查看线上的运行日志,快速排查具体问题
文档化:出现过的运维问题进行记录,提高运维效率,方便后续维护和管理
监控业务数据量的增长,接口的性能等自动化用例;
zabbix和promethus
监控的工具,常用的用比如zabbix和promethus技术:
- Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
使用 Zabbix + Grafana 搭建服务器监控系统
结合grafana,提供强大的指标分析和可视化套件,来帮助图像的可视化,监控体系,可以对接多数据源,可以在通一个图层中混合使用不同的数据源;
Zabbix 和 Grafana 都是监控工具,但它们在功能和使用场景上有所不同。结合使用 Zabbix 和 Grafana 可以提供一个全面且强大的监控和可视化解决方案。
(1)zabbix的开发背景
Zabbix是一款企业级的开源监控产品,基于C语言开发。它可以用于服务器、操作系统、网络、应用程序等目标对象监控。在监控和数据收集的方式上,可支持zabbix agent、SNMP、ping、端口监控等多种方式。
Zabbix属于大而全的系统,具有完善的Web界面,并且集成了可视化、告警等功能。用户可在界面上完成绝大部分的操作,这使得其上手难度低,可以被快速掌握。但与此同时,高度集成带来的缺点则是定制化的难度很大,无法很好地进行扩展。
(2)Prometheus的开发背景
Promehteus是一款近年来非常火热的监控系统,它使用go语言开发,设计思路来源于Google的Borgmom(一个监控容器平台的系统)。在监控上除了支持传统的服务器、网络、操作系统等对象外,还天然具有对Kubernetes和Docker等云原生产品的支持,这使得其可以在云原生时代大放异彩。
相比于Zabbix大而全的理念,Prometheus则要简单得多,产品只专注于监控的功能并提供简单Web界面供用户查询
,而将可视化和告警这些功能交由Grafana
和Alertmanager等第三方产品来实现。功能上的简洁使得Prometheus变得小巧而灵活,可以非常方便地进行部署与升级,并与第三方开源产品搭配实现定制化。
Prometheus的操作需要通过修改配置文件
来实现,还必须掌握自带的PromQL
语言,在学习门槛会较高,上手难度比较大。
首先可以肯定zabbix和Prometheus都是非常优秀的监控系统,但从选择上,可以根据实际需求来确定合适的监控系统。
Zabbix:更适用于传统业务架构的物理机、虚拟机环境的监控
,对容器的支持比较差;数据存储主要采用的是关系型数据库,会随着被监控节点数量的增加,关系型数据库的压力也会变大,监控数据的读写也会变慢;对大规模集群监控的性能比Prometheus要弱一些,可适用于单集群不超过2000台节点的场景。
Prometheus:还能支持云环境、K8S容器集群的监控,是目前容器监控最好的解决方案
;数据存储采用的是时序数据库
,大大的节省存储空间,还能提升查询效率;单集群能支持的节点规模更大,通常超过2000台节点、业务服务数量大于1000个的时候建议直接上Prometheus
。
Zabbix + Grafana 可以做什么:
-
数据可视化:Grafana 提供了丰富的数据可视化功能,可以创建交互式和可重用的仪表板 。Zabbix 通过其数据源插件与 Grafana 集成,使得 Zabbix 收集的数据可以在 Grafana 中以动态的方式展示 。
-
监控数据展示:Grafana 可以展示 Zabbix 监控的数据,包括系统性能、网络状态、应用指标等 。用户可以在 Grafana 的前端页面上查询和展示这些数据 。
-
自定义仪表板:Grafana 支持拖拉拽布局,用户可以根据需要调整分辨率、颜色等,创建个性化的仪表板 。
-
移动端访问:Grafana 基于 HTML5 编写,对移动端访问友好,用户可以在移动设备上查看监控数据 。
-
集成与扩展性:Grafana 提供了多种数据源和前端展示插件,可以与 Zabbix 以及其他数据源集成,提供更广泛的监控和分析能力 。
-
告警管理:Grafana 可以创建告警,并且在仪表板中显示问题面板(Problems panel),显示触发器状态 。
为什么不使用单纯的 Zabbix:
-
专注于数据收集:Zabbix 更专注于数据收集和监控,而 Grafana 则在数据可视化方面更为强大 。
-
用户界面和易用性:Grafana 提供了更直观、用户友好的界面,使得非技术用户也能轻松创建和自定义仪表板 。
-
扩展性:Grafana 有一个活跃的开源社区,提供了大量的插件和集成,可以扩展其功能 。
-
性能和可伸缩性:Grafana 可以水平扩展,适合高可用性和分布式设置,而 Zabbix 是一个单体应用,需要垂直扩展 。
-
社区和生态系统:Grafana 有一个广泛采用和支持的社区,提供了更多的插件和集成选项 。
总的来说,Zabbix 专注于监控和数据收集,而 Grafana 专注于数据的可视化和展示。结合两者可以提供一个更全面、更易于管理和分析的监控解决方案。