Zabbix 系统监控详解

news2024/11/25 18:58:24

1 介绍

1.1 摘要

本文深入浅出,切近实际运维应用,由 zabbix 3.4 版本入手,学习 zabbix 监控告警实现方式,由 zabbix 5.0 浅出实现快速部署、快速应用。本人从业多年,关注 zabbix 开源社区,以及 zabbix 官方组织的各种峰会,了解到的前沿技术,因随着运维监控软件的不断发展,未来软件将是开箱即用的模式,运维人员在使用监控软件,不必再去花精力编写运维监控程序,而是完善监控项,这样的方式对于初学者越来越不容易学习。因此,学习 zabbix 3.4 版本是非常必要的, zabbix 官方那时候还没有集成更多的模板以直接使用,那里有大量的监控项需要自己编写实现,不仅全面了解了 zabbix ,也是对 linux 命令、 shell 脚本、 Python 语言等的很好学习,也有助于二次开发,自定义监控项的配置。

1.2 背景

以下是部署实施基于 zabbix 监控系统的建设背景,以解决诸多运维实际问题:

目前公司系统运维主要采用人工检查的方式,问题发现的时效性较低,容易出现问题不被立刻发现,人工也容易疏忽漏查,导致问题处理不及时,影响信息化系统服务效果,就需要更好保障系统稳定运行。

公司信息化系统、操作系统、设备种类多,各类信息化系统如:OA 、 U9 , PLM 、企业邮箱等,又有 Linux 、 Windows 、 VMware 、 EMC 等系统,设备有服务器、交换机、存储等,机房环境有动环系统进行监测。如此众多的信息化系统平台,当然需要统一运维界面,实时监测各系统运行状况,为运维工作提供便利。

为适应时代的发展,未来是个智能化的时代,运维工作要实现自动化,运维工作者要向开发去转变,开发即运维,或许有一天人工智能将代替运维人员,而今的运维人员希望是人工智能创造者的一份子,了解自动化运维,与时俱进是非常必要的。

综上,为了提高运维效率,节约人力资源,对设备、机房环境实时监控,能有效、实时发出告警信息,从而及时发现问题快速响应。急需一套能满足以上需求的监控系统,经考量 zabbix 监控系统应用广泛,可实现上述功能。

1.3 系统简介

Zabbix 是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。Zabbix 完全开源免费。

Zabbix 的主要特点有:

  1. 指标收集:从任何设备、系统、应用程序上进行指标采集
  2. 问题监测:定义智能阈值
  3. 可视化:单一界面管理平台
  4. 告警和修复:确保及时、有效的告警
  5. 安全和认证:保护您所有层级的数据
  6. 轻松搭建部署:大批模板,开箱即用,节省您宝贵的时间
  7. 自动发现:自动监控大型动态环境
  8. 分布式监控:无限制扩展
  9. ZABBIX API :将 Zabbix 集成到您 IT 环境的其他任何部分

1.4 名词术语

Zabbix 系统有一些自己定义的专业术语,为更好的熟悉系统名词,下面主要介绍本文以及 zabbix 常用的术语。

主机( host)

一台你想监控的服务器、工作站、交换机等网络设备,用 IP 或者域名表示。

主机组( host group)

多台具有某种相同角色、属性的集合。例如,所有 windows 服务器放在一个叫 “windows server” 的主机组中。

监控项( item)

你想要监控、获取主机或主机组的哪些数据。例如:我想监控所有机器的 CPU 使用情况,则需要建一个监控项,用于获取所有服务器的 CPU 使用率。

触发器( trigger)

由逻辑表达式组成的按照预先设置好的阀值来评估由监控项采集到的数据。触发器有两种状态,分别为 “ 问题 ” 和 “ 已解决 ” 。例如:在上述通过监控项获取了 CPU 的使用率,假如我想超过 CPU 使用超过 80% 的就预警,则可以创建一个触发器,当监控项获取的值超过 80% 时就按照预设的情况报警,状态为 “ 问题 ” ;低于 80% 时认为报警解除,状态恢复为 “ 已解决 ” 。

事件( event)

单次发生的需要注意的事情,例如上述触发器状态由问题变成了正常或者由正常变成了问题,均可以称为一个事件。事件包括触发器事件、自动发现事件、自动注册事件和内部事件 4 个部分。

动作( action)

一个对事件做出反应的预定义的操作;例如 CPU 使用超过 80% 时,触发器状态变成了问题,即产生了一个事件,我们可以针对此事件预设一个动作(比如执行命令 reboot ),则系统会自动针对此事件的预设动作执行命令 reboot 。

媒介( media)

发送告警通知的手段或途径。例如:当 CPU 超过 80% 报警后,通过媒介(邮件、短信、自定义脚本、微信等)形式告知。

模板( template)

一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用, web 场景等)的集合。简单的说,即多个监控项的集合。

应用集( application)

一组监控项组成的逻辑分组。例如, CPU 的监控项,归集至 cpu ,在想查看有关 cpu 方面的信息时,可以直接在界面上提供的搜索框内查询所有有关 cpu 的信息。

zabbix server

zabbix 系统实现监控的核心程序,主要功能是与被监控主机、代理机等进行交互、触发器计算、发送告警通知、收集数据并存储等。

zabbix agent

一个部署在监控对象上的,能够主动监控本地资源和应用的程序;一般来讲,我们需要在所有被监控服务器上安装此程序。

zabbix proxy

一个帮助 zabbix server 收集数据,分担 zabbix server 的负载压力的程序;另外,还可以用在 server 与 agent 机器网络不通,使用 proxy 作为网络代理,实现两者的通信功能。

1.5 系统架构

系统结构说明:由 web 、 linux 、 php 、 mysql 等组件部署安装,实现 zabbix server 服务端;由被监控对象例如:Windows 系统, linux 系统、 Vmware 虚拟化平台、交换机,存储等组成了 agent 端。Zabbix server 可采用主动模式,获取 agent 上数据,也可采用被动模式,接收 agent 定时发送的数据。

2 指标

2.1 软件版本

版本选择说明:目前 zabbix 3 版本成熟稳定,各大企业公司运维监控系统运行于该平台上,提供的监控项比 zabbix 第 1 和 2 版本丰富,完全能满足监控对象的需要;至今 zabbix 第 3 版已持续发布 4 年多时间,开源系统积累了大量的资料与研究人员,可供交流学习,能很好服务于 zabbix 定制化;zabbix 4.0 版本 2018 年 10 月正式发布, 4.2 版本于 2019 年 4 月正式发布,目前最新的是 zabbix 5.2 版本,版本持续更新满足未来升级发展的需要,新版本增加了 ELK 、时序数据库,以及前端 web 优化,但监控本质并未发生大的变化。

2.1 硬件指标

Zabbix 可以运行于虚拟环境也可以部署在服务器上,因 zabbix 采集数据主要是文本,对网络带宽要求不高,千兆速率足矣,只要满足性能上的要求即可,主要为 CPU 、内存和硬盘三项。结合 zabbix 官网给出的指标、实际监控项数量、历史记录保存时间长度。根据上表的参考标准,测试环境建议小型化部署。

名称CPU/内存数据库可监控主机数量
小型4核心/16GMySQL + 500GB普通硬盘500台以内
中型4核心/32GMySQL + 500GB普通硬盘500-1000台
大型8核心/64GMySQL + 1TB RAID存储盘1000-3000台
超大型16核心/128GMySQL + 2TB RAID存储盘3000台以上

3 安装部署

Zabbix 安装方式主要是两种:1 、 yum 源安装 2 、 zabbix 源码安装,安装方法互联网上搜索非常多,这里就不再阐述。主要安装组件:PHP 、 Apache 或 Nginx 、 Mysql 、 Zabbix 软件包。

4 windows 系统状态监控

本节介绍实现对 windows 系统状态监控。使用zabbix 3.4版本,一起了解学习zabbix监控数据采集过程,这样对我们自定义监控项非常有帮助,提供方法扩展思路 。诚然zabbix 5.0 版本等高版本,许多监控项已经被zabbix agent集成,但那并不利于初学者学习与实践。

通过在被监控主机上,部署安装 zabbix_agent ,实现事件查看器监控、 CPU 监控、内存监控、磁盘读写监控、磁盘容量监控、网卡流量监控、系统时间监控、系统进程和服务监控。

考虑到公司使用的服务器目前多数为 windows server ,对于个别服务器安装了PC 操作系统不深入研究,经测试 Windows 版本支持情况如下表:

版本是否支持备注
Windows server 2003需要运行32位程序
Windows server 2008
Windows server 2012
Windows 7
Windows 10测试zabbix-agent程序有报错

4.1 windows 部署 zabbix_agent

为了监控 window 系统,首先需要在该系统下部署 zabbix_agent 代理,用于收集该系统信息。

自研程序包列表:

角色安装包说明适用版本
基于zabbix-agent-3.4.6Zabbix目录bin conf scriptWindows server 2003、2008、2012

4.1.1 解压安装

Zabbix agent 的原始文件为 zabbix_agents_3.4.6.win.zip ,一般部署是:解压在 window 服务器 C 盘根目录下,再改写 conf 下的配置文件。为了部署方便快捷,现提供已经配置成熟的 zabbix 目录,直接复制 zabbix 目录到 window 服务器的 C 盘根目录下,最后进行程序安装和启动。因此,涉及 C:zabbixscriptconfzabbix_agentd.win.conf 文件的均可以忽略,供学习与交流。

cmd 或 powershell 下安装和启停命令如下:
cd C:zabbixbinwin64
.zabbix_agentd.exe -c C:zabbixconfzabbix_agentd.win.conf -i 安装
.zabbix_agentd.exe -c C:zabbixconfzabbix_agentd.win.conf -s 启动
.zabbix_agentd.exe -c C:zabbixconfzabbix_agentd.win.conf -x 停止

4.1.2 添加端口

Windows 防火墙需要添加端口的出站和入站规则,将 TCP 协议 10050 、 10051 端口开放。不然 zabbix 主动或被动模式就获取不到该设备的数据。10050 10051 是 zabbix 程序使用端口。

4.1.3 配置自启动

Zabbix agent 安装过程中,会自动将 zabbix agent 服务、开机自启动配置好,只需要检查下, agent 是否正常运行即可。

4.2 windows 事件查看器监控

对 windows 系统下 事件查看器中系统日志进行监控和信息获取,将事件查看器中的错误( Error )、关键( Critical )等系统、程序重要信息打印在 zabbix 界面中,也可以添加监控项,触发器来针对某个信息实现告警。例如:当事件查看器中,有磁盘坏块告警信息时, zabbix 界面会进行告警提示。或是配合研发部门程序日志,程序可将告警信息写入到事件查看器中,zabbix 对其进行监控告警。

4.2.1 zabbix 官网指导说明

https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent/win_keys

截图如下:

4.2.2 创建监控项

类型:必须是 zabbix 客户端(主动式)
键值:参考 zabbix 官方文档,例子

eventlog[System,,"Critical|Error"] 将事件查看器中 “ 系统 ” 栏中 “Critical|Error” 类型的信息过滤出来

eventlog[System,,"Error",".Disk."] 事件查看器中 “ 系统 ” 栏中 “Critical|Error” 类型的信息过滤,并使用正则表达式匹配详细信息中的来源:Disk 的关键字

eventlog[Security,,"Success Audit",,^4624$,,skip].nodata(60)}=0 and

eventlog[Security,,"Success Audit",,^4624$,,skip].regexp(administrator,1)}=0

如果在 60 秒内有监控到数据,并且监控内容不包含字符串 "administrator" 则触发告警,如果 60 秒内没有新的数据了,则触发器恢复 OK 。简单点说就是,用户登录后触发器触发至少会持续 60 秒,如果用户不断的登录成功,间隔小于 60 秒,则触发器一直是 problem 状态。

应用集:Event 事件日志

4.2.3 创建触发器

名称:{HOST.NAME} 代表主机名

表达式:添加 “ 最新一条日志级别不等于 N” , N 取值是 0 、 1 或其他, 0 表示正常, 1 和其他值表示不正常。所以 N 取值不等于 0 ,触发告警。

4.2.4 事件查看器注意事项

系统:System 安全:Security

级别:错误( Error )、关键( Critical )、信息( Information )等,参考 zabbix 官网指导说明

来源:一定要看详细信息中的 Provider Name ,次截图上,详细信息与常规来源不一致,一个是 Microsoft-Windows-TerminalServices-Printers ,一个是 TerminalServices-Printers 。容易导致正则匹配出错,建议使用含有匹配的方式。

4.2.5 监控结果

4.3 windows 系统 CPU 监控

4.3.1 监控 CPU 使用率

因为 zabbix 未提供能查看 cpu 使用率的监控项,只提供了 cpu 负载的监控项,就需新增建监控项,监控 CPU 用户使用率与其类似,不再说明。(zabbix 3.4版本)

4.3.2 创建监控项

名称:CPU 使用率

键值:为了规范命名 cpu_time

信息类型:浮点数

更新时间:1m

单位:%

应用集:CPU 状态

4.3.3 创建触发器

名称:CPU 使用率过高:{HOST.NAME}

表达式:{Windows Server Model:cpu_time.avg(5m)}>90 5 分钟均值大于 90% 告警

4.3.4 配置图形

注:根据需要调整绘图风格

4.3.5 配置 zabbix_agentd.win.conf

最后行添加

# CPU 使用率
PerfCounter=cpu_time,"Processor(_Total)% Processor Time",60
# CPU 用户使用率
PerfCounter=cpu_usertime,"Processor(_Total)% User Time",60

注:cpu_time 为 zabbix 界面上监控项配置的键值,虽然可以自定义,但要规范命名。
60 为数据更新时间,单位秒,要小于等于 zabbix 界面上监控项配置 “ 更新时间 ” ,这样才有更新的意义。

配置完成后,重启 zabbix_agentd 生效

cd C:zabbixbinwin64
.zabbix_agentd.exe -c C:zabbixconfzabbix_agentd.win.conf -x
.zabbix_agentd.exe -c C:zabbixconfzabbix_agentd.win.conf -s

4.3.6 监控结果

4.4 windows 系统内存监控

应用集:Memory 内存状态

Memory 内存状态主要监控项有:Memory 内存使用率、 Memory 内存使用量、 Memory 内存总量(带上 Memory 方便了排序归类)。Swap 交换分区使用率、 Swap 交换分区使用量、 Swap 交换分区总量。

zabbix 自带内存监控项,可以直接创建使用。

监控项配置:

说明:windows 系统下没有支持 system.swap.size[pused] , swap 使用率监控项,一般 swap 分区被使用了,就可以说明物理内存不足,可以使用 pfree 替代。

4.4.1 创建监控项

以监控内存使用率为例:

名称:内存使用率

键值:vm.memory.size[pused]

其他键值:vm.memory.size[used] vm.memory.size[total]

信息类型:浮点数

更新时间:1m

单位:%

应用集:Memory 内存状态

4.4.2 创建触发器

名称:内存使用率过高:{HOST.NAME}

表达式:{Windows Server Model:vm.memory.size[pused].avg(5m)}>90 5 分钟均值大于 90% 告警

4.4.3 配置图形

4.4.5 监控结果

4.5 windows 磁盘读写监控

Windows 下磁盘监控,可以细分到监控各个磁盘数据如 C 、 D 、 E 等,目前未想到到自发现规则配置,就对所有磁盘进行监控取总体值,以总体值为例进行监控配置。

细分:

LogicalDisk(E:)Disk Write Bytes/sec

LogicalDisk(C:)Disk Write Bytes/sec

LogicalDisk(D:)Disk Write Bytes/sec

LogicalDisk(_Total)Disk Write Bytes/sec

总体:

PhysicalDisk(_Total)Disk Read Bytes/sec

4.5.1 创建监控项

磁盘读写监控项较多,配置监控项如下图:

键值:

disk_read_speed 、 disk_write_speed 、 disk_free_percent 、 disk_rw_percent 、 disk_rw_percent 等。

C:zabbixscriptconfzabbix_agentd.win.conf 文件配置为:

# Disk 磁盘读速率 Bytes/s
PerfCounter=disk_read_speed,"PhysicalDisk(_Total)Disk Read Bytes/sec",60

# Disk 磁盘写速率 Bytes/s
PerfCounter=disk_write_speed,"PhysicalDisk(_Total)Disk Write Bytes/sec",60

# Disk 磁盘空闲状态百分比
PerfCounter=disk_free_percent,"PhysicalDisk(_Total)% Idle Time",60

# Disk 磁盘读和写总共用时百分比
PerfCounter=disk_rw_percent,"PhysicalDisk(_Total)% Disk Time",60

# Disk 磁盘读用时百分比
PerfCounter=disk_read_percent,"PhysicalDisk(_Total)% Disk Read Time",60

# Disk 磁盘写用时百分比
PerfCounter=disk_write_percent,"PhysicalDisk(_Total)% Disk Write Time",60

# Disk 磁盘平均读写队列长度
PerfCounter=disk_queue_length,"PhysicalDisk(_Total)Avg. Disk Queue Length",60

# Disk 磁盘平均读队列长度
PerfCounter=disk_read_queue_length,"PhysicalDisk(_Total)Avg. Disk Read Queue Length",60

# Disk 磁盘平均读队列长度
PerfCounter=disk_write_queue_length,"PhysicalDisk(_Total)Avg. Disk Write Queue Length",60

4.5.2 配置图形

Disk 磁盘读写用时百分比:选择

Windows 系统监控 模板 : Disk 磁盘读用时百分比

Windows 系统监控 模板 : Disk 磁盘写用时百分比

Windows 系统监控 模板 : Disk 磁盘读和写总共用时百分比

调整线条以及颜色

4.5.3 监控结果

4.6 windows 磁盘容量监控

Zabbix 自带监控模板,在自动发现规则 Mounted filesystem discovery 已经配置。可用来来监控 CDEF 等分区容量。可以改成中文易读。如下图:

4.7 windows 网卡流量监控

Zabbix 自带监控模板,在自动发现规则 Network interface discovery 已经配置。

需要过滤掉不需要监控的端口,只显示真实的网卡流量,在 zabbix 界面,管理 - 一般 - 正则表达式中找到 Network interfaces for discovery 项,添加过滤规则。例如:

4.8 windows 系统时间监控

需要创建两个监控项,一个是绝对时间用于触发器告警,另一个是易读时间显示。通过获取到被监控系统时间与 zabbix server 做时差比较,超过 10 分钟告警。

4.8.1 创建监控项

键值:system.localtime[local] 易读时间

键值:system.localtime[] 绝对时间

4.8.2 创建触发器

名称:与 zabbix 主机时差超过 10 分钟:{HOST.NAME}

表达式:{Windows Server Model:system.localtime[].fuzzytime(600)}=0

4.9 windows 系统进程监控

Windows 的进程或程序监控,是通过监控进程数量,以此为状态标志位来判断进程是否已停止运行。

当最新进程数为 0 时,判断进程已停止运行;当 5 分钟内,平均值大于等于 1 时,恢复触发器,判断进程已恢复运行;当最新进程数不为 0 时,判断进程正在运行。

下面以监控 Xshell.exe 程序,运行进程为例,来创建实施监控。

4.9.1 创建监控项

键值:proc.num[Xshell.exe]

Zabbix 官网样例 proc.num[,,,,]

信息类型:数字(无正负) 方便看图形,标志位

更新间隔:1m 1 分钟同一规定

注:windows 下 只支持进程名和用户名称

4.9.2 创建触发器

名称:Xshell 程序已停止运行:{HOST.NAME}

问题表现形式:{Windows Server Model:proc.num[Xshell.exe].last()}=0

恢复表达式:{Windows Server Model:proc.num[Xshell.exe].avg(5m)}>1 or {Windows Server Model:proc.num[Xshell.exe].avg(5m)}=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1400218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开源】基于JAVA的CRM客户管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 用例设计3.2 E-R 图设计3.3 数据库设计3.3.1 客户表3.3.2 商品表3.3.3 客户跟踪表3.3.4 客户消费表3.3.5 系统角色表 四、系统展示五、核心代码5.1 查询客户5.2 新增客户跟踪记录5.3 新增客户消费订单5.4 查…

大数据技术原理及应用课实验3 :熟悉常用的HBase操作

目录 实验3 熟悉常用的HBase操作 一、实验目的 二、实验平台 三、实验步骤(每个步骤下均需有运行截图) (一)编程实现以下指定功能,并用Hadoop提供的HBase Shell命令完成相同任务: 1.列出HBase所有的表…

人工智能攻克奥数几何难题:AlphaGeometry 接近金牌选手水平

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

直流过欠压继电器JSZD-1A DC220V 0-220V 面板嵌入式安装

一、 概述 JSZD-1系列直流电压继电器是专为直流系统设计的,以进口大规模集成电路为核心,配以本厂研制的模块和部分外围元件组装而成。具有通用性好、互换性强、寿命长、外形美观大方、性能稳定可靠等特点。 JSZD-1系列直流电压继电器既是一块过、欠压继…

Docker(八)高级网络配置

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 高级网络配置 注意:本章属于 Docker 高级配置,如果您是初学者,您可以暂时跳过本章节,直接学习…

Linux重定向:深入理解与实践

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:晴る—ヨルシカ 0:20━━━━━━️💟──────── 4:30 🔄 ◀️ ⏸ ▶️ ☰ &…

力扣hot100 相交链表 思维题

Problem: 160. 相交链表 文章目录 思路复杂度💖 Ac Code 思路 👨‍🏫 参考题解 👩‍🏫 参考图解 复杂度 时间复杂度: O ( n m ) O(nm) O(nm) 空间复杂度: 添加空间复杂度, 示例: O ( 1 ) O(1) O(…

2024年第十二届亚洲机械与材料工程国际会议(ACMME 2024)即将召开!

时间:2024年6月14-17日 地点:日本京都先端科学大学太秦校区 会议官网:第11届ACMME |日本京都 2024年第十二届亚洲机械与材料工程会议 (ACMME 2024)将于2024年6月14日-17日在日本京都先端科学大学召开。亚洲机械与材料…

三、arcgispro二次开发创建第一个工程

忙了几天,总算可以创建第一工程了。 步骤一: 步骤二: 工具介绍: 项目创建成功:项目目录在解决方案资源管理器中,整个工具都是动态可调整的,如下图: 想把窗口放哪里就把鼠标移到红…

CorelDRAW Graphics Suite2024专业图形设计软件Mac/Windows版

以激情为创造动力,以目的为设计导向。“对专业的图形设计人士来说,CorelDRAW 是市面上最易于使用的软件。 我用它设计过标牌、横幅、T 恤,甚至 45 英尺长的房车图形!” 使用 CorelDRAW 全新的聚焦模式,现在可以单独编…

[设计模式Java实现附plantuml源码~创建型] 产品族的创建——抽象工厂模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

Ubuntu系统pycharm以及annaconda的安装配置笔记以及问题集锦(更新中)

Ubuntu 22.04系统pycharm以及annaconda的安装配置笔记以及问题集锦 pycharm安装 安装完之后桌面上并没有生成图标 后面每次启动pycharm都要到它的安装路径下的bin文件夹下, cd Downloads/pycharm-2018.1.4/bin然后使用sh命令启动脚本程序来打开pycharm sh pycha…

FindMy技术与相机结合

FindMy是苹果公司提供的设备追踪服务,用来帮助用户定位丢失的设备。自苹果公司开放Findmy网络之后,FindMy技术便与各种生活设备相结合,比如与相机的结合。 想象一下,你正在外出办事或者旅行时,突然意识到相机丢了&…

vectorCast——CBA功能实现代码手动覆盖

选择被测文件,点击右键,选择add coverage analysis.选择添加覆盖分析后,会自动打开CBA。此时就可以在代码里选择没有覆盖的代码,勾选后填写未覆盖分析并保存,就可以实现代码覆盖了。查看覆盖率报告。 手动覆盖代码完成…

uniapp组件库Popup 弹出层 的使用方法

目录 #平台差异说明 #基本使用 #设置弹出层的方向 #设置弹出层的圆角 #控制弹窗的宽度 | 高度 #内容局部滚动 #API #Props #Event 弹出层容器,用于展示弹窗、信息提示等内容,支持上、下、左、右和中部弹出。组件只提供容器,内部内容…

C语言总结十一:自定义类型:结构体、枚举、联合(共用体)

本篇博客详细介绍C语言最后的三种自定义类型,它们分别有着各自的特点和应用场景,重点在于理解这三种自定义类型的声明方式和使用,以及各自的特点,最后重点掌握该章节常考的考点,如:结构体内存对齐问题&…

Java 数组原理内存图

Java 虚拟机的内存划分 为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。 JVM 的内存划分 数组在内存中的存储 一个数组内存图 public static void main(String[] args) {int[] nums new int[] {1…

64位ATT汇编语言as汇编ld链接,执行报错Segmentation fault

absCallAndPrintAbsAsLd.s里边的内容如下: .section .datastringToShow:.ascii "The abs of number is %d\n\0" .global _start .section .text _start:pushq %rbpmovq %rsp,%rbpmovq $-5,%rdicall absmovq $stringToShow,%rdimovq %rax,%rsicall printf…

鸿蒙星河版启航,开发者驶入生态新征程

操作系统市场的气候已经不同以往。在鸿蒙决定不再兼容安卓之后,这里正欲长出一片全新的天地。 四年前,华为鸿蒙系统横空出世,彼时它还不完全与安卓和iOS的性质划等号,而是定义为物联网操作系统。而如今的华为鸿蒙要改写故事篇章&…

关于C语言整型提升的讲解

目录 1.什么是整型提升 2.整型提升的意义 3.整型提升是怎么提升的 4.整型提升的实例 1.什么是整型提升 C语言中的整型算术运算总是以缺省(默认)整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前会被转换…