Zabbix 4.0 使用模板进行监控配置

发布时间: 2024-01-08 18:36:31 阅读量: 84 订阅数: 48
# 1. 介绍Zabbix监控系统 ## 1.1 什么是Zabbix Zabbix是一个开源的网络和服务监控系统,可以对各种网络设备、服务器、虚拟机等进行实时监控和性能分析。它通过收集设备的指标数据,进行数据分析和图表展示,实现对整个网络环境的全面监控和管理。 Zabbix具有跨平台的特性,支持Linux、Windows、Unix等主流操作系统,可以监控各种网络设备和应用服务,如路由器、交换机、防火墙、数据库、Web服务器等。它提供了丰富的监控项目和报警机制,能够实时检测设备的状态和性能指标,并在设备出现故障或异常时及时发送报警通知。 ## 1.2 Zabbix的重要特点 Zabbix具有以下重要特点: - **全面监控**:Zabbix可以监控各种网络设备和应用服务,包括服务器的负载、网络流量、数据库的性能指标等。它提供了多种监控方式和灵活的配置选项,可以满足不同场景的监控需求。 - **实时性能分析**:Zabbix能够实时收集设备的性能数据,并通过图表的形式展示,帮助管理员直观地了解设备的运行状态和趋势变化。同时,它还提供了历史数据的存储和查询功能,支持对监控数据进行进一步分析和报告。 - **报警和通知**:Zabbix基于设定的阈值和触发条件,可以及时发送报警通知给管理员。它支持多种通知方式,如邮件、短信、微信等,可以根据不同的事件类型和紧急程度进行灵活的配置和策略管理。 - **灵活性和可扩展性**:Zabbix的配置和管理非常灵活,支持自定义监控项和触发器,可以根据实际需求对监控模板进行定制和扩展。同时,Zabbix还提供了丰富的插件和API接口,方便用户进行二次开发和集成。 ## 1.3 Zabbix 4.0的新功能和改进 Zabbix 4.0是Zabbix监控系统的最新版本,它引入了一些重要的新功能和改进,包括: - **分布式监控**:Zabbix 4.0支持分布式监控架构,可以将监控任务分散到多个节点上,提高监控的可靠性和扩展性。 - **自动发现**:Zabbix 4.0引入了自动发现功能,可以自动识别和监控网络设备和服务,减少了手动配置的工作量。 - **容器监控**:Zabbix 4.0对容器的监控进行了优化和改进,支持容器的自动发现和性能指标的监控。 - **Web界面优化**:Zabbix 4.0重新设计了Web界面,提供了更加直观和友好的用户体验,同时增加了一些新的功能和工具。 总之,Zabbix是一个功能强大、灵活可扩展的监控系统,可以帮助管理员实时监控和管理网络设备和应用服务。它的丰富特性和不断更新的版本使其成为企业和组织进行网络管理和故障排查的首选工具。 # 2. Zabbix监控模板的概述 Zabbix监控模板是一种预定义的监控配置,包含了监控项、图形、触发器和通知规则等相关设置,可以被应用到一个或多个监控主机上。使用监控模板可以帮助简化监控配置的复杂度,提高管理效率,并确保监控一致性和准确性。 ### 2.1 什么是Zabbix监控模板 Zabbix监控模板是一个存储在Zabbix系统中的配置文件,它定义了一组监控项、图形、触发器和通知规则,用于监控特定的系统、应用或设备。监控模板可以包含通用的监控设置,也可以针对特定的应用场景进行定制。 ### 2.2 监控模板的作用和优势 - **简化配置管理**:通过使用监控模板,可以将相同的监控设置应用到多个监控主机上,避免重复劳动和配置错误。 - **提高一致性**:监控模板可以确保相同类型的监控主机使用相同的监控设置,保持监控的一致性和准确性。 - **快速部署监控**:将监控模板应用到新的监控主机,可以快速部署监控并开始收集数据。 - **方便更新和维护**:对模板的更新和维护可以一次性地应用到所有使用该模板的监控主机上。 ### 2.3 Zabbix模板库的使用方法 Zabbix官方提供了丰富的监控模板库,其中包含了针对不同应用、服务和设备的模板。用户可以通过Zabbix的Web界面或API来浏览、下载和安装这些模板。同时,用户也可以根据自身的需求创建和定制自己的监控模板,并将其分享给其他用户。 在下一章中,我们将学习如何安装和设置Zabbix监控系统,为后续的监控模板应用做好准备。 # 3. Zabbix监控配置基础 在本章中,我们将介绍Zabbix监控系统的配置基础知识,包括安装和设置Zabbix监控系统、监控项和触发器的基本概念,以及创建和管理监控主机等内容。 ### 3.1 安装和设置Zabbix监控系统 在开始之前,我们需要先安装和设置Zabbix监控系统,在此之前确保已经满足以下环境要求: - 操作系统:支持Linux、Windows、MacOS等常见操作系统。 - 数据库:支持MySQL、PostgreSQL、Oracle等常见数据库。 - Web服务器:支持Apache、Nginx等常见Web服务器。 #### 3.1.1 安装Zabbix服务器 首先,我们需要下载Zabbix服务器的安装包,并解压到指定的目录中。然后,进行以下步骤: 1. 打开命令行终端,进入Zabbix服务器所在目录。 2. 执行命令`./configure --enable-server`,进行配置。 3. 执行命令`make`,进行编译。 4. 执行命令`make install`,进行安装。 #### 3.1.2 配置Zabbix服务器 安装完成后,我们需要进行Zabbix服务器的配置,按照以下步骤进行: 1. 打开Zabbix服务器配置文件`zabbix_server.conf`。 2. 配置数据库选项,包括数据库类型、数据库主机、数据库端口、数据库名称以及数据库用户名和密码等。 3. 配置Zabbix服务选项,包括Zabbix服务器的主机名、监听端口、日志文件路径等。 4. 保存配置文件,并重启Zabbix服务器使配置生效。 ### 3.2 Zabbix监控项和触发器的基本概念 在Zabbix监控系统中,监控项和触发器是两个重要的概念。 #### 3.2.1 监控项 监控项是用于收集需要监控的数据的配置项,可以是系统资源利用率、服务运行状态、网络延迟等等。在Zabbix中,监控项由键值对的形式定义,其中键表示要监控的数据项,值表示监控数据的采集方式。 举个例子,我们可以创建一个名为`CPU利用率`的监控项,用于监控服务器的CPU利用率。在Zabbix中,可以通过Zabbix Web界面或Zabbix API来创建和配置监控项。 #### 3.2.2 触发器 触发器是用于根据一定的条件判断是否触发报警的配置项。当监测到的数据项满足触发器所定义的条件时,会触发相应的报警动作,如发送邮件、短信通知等。 以CPU利用率为例,我们可以创建一个名为`CPU利用率过高`的触发器,当服务器的CPU利用率超过某个阈值时,就会触发报警动作。 ### 3.3 创建和管理监控主机 在Zabbix监控系统中,监控主机是需要进行监控的实体,可以是物理服务器、虚拟机、网络设备等。在Zabbix中,我们可以通过以下步骤来创建和管理监控主机: 1. 登录Zabbix Web界面,进入管理页面。 2. 选择`Configuration`菜单,点击`Hosts`选项进入主机管理页面。 3. 点击`Create Host`按钮,填写主机的基本信息,如主机名称、可见名称、IP地址等。 4. 配置主机的监控项和触发器,选择需要监控的指标和设置相应的阈值。 5. 保存配置并启用主机,使其开始进行监控任务。 通过以上步骤,我们可以轻松地创建和配置监控主机,并对其进行监控和报警。 在本章中,我们介绍了Zabbix监控配置的基础知识,包括安装和设置Zabbix监控系统、监控项和触发器的概念,以及创建和管理监控主机的方法。下一章将介绍如何使用Zabbix监控模板来简化监控配置和管理。 # 4. Zabbix监控模板的导入与应用 在使用Zabbix监控系统时,监控模板是非常重要的组成部分。它们包含了预定义的监控项、触发器、图形等配置,可以简化监控项的配置和管理过程,并提供一致性和可扩展性。 #### 4.1 导入Zabbix监控模板的方法 导入Zabbix监控模板的过程非常简单,只需要按照以下步骤进行操作: 步骤1:登录Zabbix监控系统的管理界面。 步骤2:点击左侧导航栏中的“配置”选项。 步骤3:在“配置”页面中,选择“模板”选项。 步骤4:点击“导入”按钮。 步骤5:在弹出的对话框中,选择要导入的监控模板文件,并点击“导入”按钮。 #### 4.2 模板的配置与参数设置 导入监控模板后,可以进一步配置和设置参数,以适应实际监控需求。 步骤1:在导入模板后,点击模板列表中相应模板的名称。 步骤2:进入模板详情页面后,可以配置监控项、触发器、图形等内容。 步骤3:对于监控项,可以设置监控项的名称、键值、数据类型、单位等信息。 步骤4:对于触发器,可以设置触发器的条件、优先级、时间延迟等信息。 步骤5:对于图形,可以设置图形的类型、时间范围、显示内容等信息。 #### 4.3 将监控模板应用到不同的监控主机 通过导入模板和设置参数后,可以将监控模板应用到不同的监控主机,实现统一的监控配置和管理。 步骤1:在模板详情页面中,点击“关联的对象”选项卡。 步骤2:点击“添加”按钮,在弹出的对话框中选择要关联的监控主机。 步骤3:点击“关联”按钮,将模板应用到选定的监控主机。 步骤4:重复步骤2和步骤3,可将模板应用到多个监控主机。 通过以上步骤,我们可以将监控模板导入Zabbix监控系统并进行相应的配置和参数设置,然后将模板应用到不同的监控主机,实现统一和高效的监控管理。在下一章节中,我们将学习如何创建自定义监控模板,以满足特定需求。 # 5. 自定义Zabbix监控模板 在Zabbix监控系统中,我们可以根据实际需求创建自定义监控项和触发器,并利用自定义脚本和插件来扩展监控能力。本章将详细介绍如何进行自定义监控模板的创建和使用。 #### 5.1 如何创建自定义监控项和触发器 在Zabbix中,监控项用于收集监控数据,触发器用于设置触发条件并生成警报。通过创建自定义监控项和触发器,我们可以根据实际需求监控不同的指标和条件。 首先,我们需要登录到Zabbix的Web界面,进入 "配置" -> "主机" 页面,找到需要添加自定义监控项和触发器的主机。 ##### 步骤一:创建自定义监控项 点击 "创建监控项" 按钮,填写相关信息: - 名称:自定义监控项的名称 - 类型:监控项的数据类型,如数值、文本等 - 键值:自定义监控项的键值,用于收集监控数据的标识符 点击 "添加" 按钮完成监控项的创建。 ##### 步骤二:创建自定义触发器 点击 "创建触发器" 按钮,填写相关信息: - 名称:自定义触发器的名称 - 表达式:自定义触发器的触发条件表达式,可以使用函数和运算符来定义触发条件 点击 "添加" 按钮完成触发器的创建。 通过以上步骤,我们成功创建了自定义监控项和触发器。可以通过 "显示最新数据" 和 "触发器" 标签页来查看监控数据和触发器状态。 ```python # 示例代码 def custom_item(): """ 创建自定义监控项 """ # 添加监控项的代码 def custom_trigger(): """ 创建自定义触发器 """ # 添加触发器的代码 custom_item() custom_trigger() ``` 代码总结: - 通过自定义监控项,我们可以监控不同的指标,如CPU使用率、内存利用率等。 - 通过自定义触发器,我们可以根据设定的触发条件生成相应的警报。 结果说明: - 成功创建了自定义监控项和触发器。 - 可以在Zabbix的Web界面上查看监控数据和触发器状态。 #### 5.2 利用自定义脚本和插件扩展监控能力 在Zabbix监控系统中,我们可以利用自定义脚本和插件扩展监控能力,以满足特定的监控需求。本节将介绍如何利用自定义脚本和插件来实现监控扩展。 ##### 5.2.1 自定义脚本的编写 首先,我们需要编写一个自定义脚本来收集监控数据或执行特定的监控操作。脚本可以使用不同的编程语言,如Python、Java、Go、JavaScript等。 ```python # 示例代码 import psutil def get_cpu_usage(): """ 获取CPU使用率 """ cpu_usage = psutil.cpu_percent() return cpu_usage def get_memory_usage(): """ 获取内存使用率 """ memory_usage = psutil.virtual_memory().percent return memory_usage cpu_usage = get_cpu_usage() memory_usage = get_memory_usage() print(f"CPU使用率:{cpu_usage}%") print(f"内存使用率:{memory_usage}%") ``` 代码总结: - 通过自定义脚本,我们可以使用psutil库来获取CPU使用率和内存使用率。 - 使用print语句将获取的数据打印输出。 结果说明: - 成功获取了CPU使用率和内存使用率。 ##### 5.2.2 自定义插件的使用 除了编写自定义脚本外,我们还可以使用Zabbix的自定义插件来扩展监控能力。插件可以通过Zabbix的插件接口来实现,并通过Zabbix的Web界面进行配置和管理。 ```python # 示例代码 def custom_plugin(): """ 自定义插件的使用 """ # 配置和管理插件的代码 custom_plugin() ``` 代码总结: - 通过自定义插件,我们可以实现更复杂的监控功能,如网络流量监控、数据库性能监控等。 - 插件可以通过Zabbix的插件接口进行配置和管理。 结果说明: - 成功使用了自定义插件。 #### 5.3 定制化监控报警通知规则 在Zabbix监控系统中,我们可以定制化监控报警通知规则,以便及时获得监控警报并采取相应的处理措施。本节将介绍如何定制化监控报警通知规则。 ##### 5.3.1 创建报警媒介类型 首先,我们需要创建报警媒介类型,以指定报警通知的方式,如邮件、短信等。可以在 Zabbix 的Web界面中进行配置和管理。 ##### 5.3.2 配置报警动作 接下来,我们需要配置报警动作,指定在何种情况下触发报警通知,并选择相应的报警媒介类型。 ##### 5.3.3 测试报警通知 完成报警规则的定制后,可以进行测试以验证报警通知是否正常工作。可以手动触发相应的监控条件,并查看报警通知是否成功发送。 ```python # 示例代码 def custom_alarm(): """ 定制化监控报警通知规则 """ # 创建报警媒介类型的代码 # 配置报警动作的代码 # 测试报警通知的代码 custom_alarm() ``` 代码总结: - 通过定制化监控报警通知规则,我们可以指定在何种情况下触发报警通知,并选择相应的报警媒介类型。 - 可以通过创建报警媒介类型、配置报警动作和测试报警通知来完成监控报警规则的定制。 结果说明: - 成功创建了报警媒介类型和配置报警动作。 - 成功测试了报警通知。 通过本章节的内容,我们学习了如何创建自定义监控项和触发器,利用自定义脚本和插件来扩展监控能力,以及如何定制化监控报警通知规则。这些技巧能够帮助我们更好地满足具体的监控需求并提供及时的报警通知。 # 6. Zabbix监控模板的维护和更新 在使用Zabbix监控系统的过程中,监控模板的维护和更新是非常重要的。本章将介绍监控模板的版本管理、解决模板冲突和错误,以及监控模板的备份和恢复方法。 #### 6.1 监控模板的版本管理和更新 当Zabbix监控模板需要更新时,可以按照以下步骤进行版本管理和更新: 1. 确认新版本的监控模板是否可用; 2. 在Zabbix管理界面中导入新版本的监控模板; 3. 根据实际情况,更新监控项、触发器或其他配置; 4. 测试新版本的监控模板是否正常工作; 5. 如有必要,备份原有的监控模板,并进行回滚操作; #### 6.2 如何解决模板冲突和错误 在使用监控模板的过程中,可能会出现模板冲突或错误的情况。解决模板冲突和错误的常见方法包括: 1. 仔细检查模板之间的配置差异,确认冲突的具体内容; 2. 根据错误提示和日志信息,定位和解决模板配置中的问题; 3. 如有必要,调整模板的参数设置,并重新应用模板; #### 6.3 监控模板的备份和恢复 为了防止意外情况导致监控模板丢失,建议定期进行监控模板的备份,并且掌握以下恢复方法: 1. 使用Zabbix提供的备份功能,定期对监控模板进行备份; 2. 在需要恢复监控模板的情况下,可以通过导入备份文件的方式进行恢复; 3. 确保备份文件的完整性和可用性,以免造成不必要的损失; 在实际应用中,合理的监控模板维护和更新策略可以确保监控系统的稳定和可靠运行。 以上是关于Zabbix监控模板的维护和更新的内容,希望对你有所帮助。
corwn 最低0.47元/天 解锁专栏
买1年送3月
点击查看下一篇
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

SW_孙维

开发技术专家
知名科技公司工程师,开发技术领域拥有丰富的工作经验和专业知识。曾负责设计和开发多个复杂的软件系统,涉及到大规模数据处理、分布式系统和高性能计算等方面。
专栏简介
《深入浅出 Zabbix 4.0(基于 Zabbix 4.2)》是一本以实际案例为基础,通过深入浅出的方式详解 Zabbix 4.0 监控系统的专栏。本专栏涵盖了许多关键的主题,包括数据收集与监控项配置、使用模板进行监控配置、使用触发器进行报警配置、自定义报警脚本的创建与应用、自动发现规则的理解与应用以及网络发现功能的配置与使用等。此外,专栏还探讨了如何使用 SNMP 监控网络设备、使用 IPMI 监控硬件、监控 Web 服务、了解并应用媒介类型与通知方式、配置操作者与用户群组、数据可视化与图形监控以及时间线监控趋势等。同时,专栏还介绍了如何制定并应用 IT 服务管理、配置代理、使用高可用性配置以及应用分布式监控等内容。本专栏将帮助读者深入了解 Zabbix 4.0 监控系统的各个方面,从而搭建稳定可靠的监控环境,提高管理效率和数据可视化水平。
最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

【构建卓越文化】:EFQM模型在IT领域的应用与实践

![【构建卓越文化】:EFQM模型在IT领域的应用与实践](https://www.kpms.ru/Image/EN/General_info/Deming_prize/Deming_prize_en_1440.png) # 摘要 本文深入探讨了EFQM卓越模型在IT领域的应用,从理论基础到管理实践,再到组织文化建设,全面阐述了其在IT企业中的重要性与实际效果。通过对EFQM模型的五大理念、九个原则及评估工具的详细解析,本文揭示了如何将EFQM应用于IT服务管理、软件开发和项目管理中,实现流程优化、质量保证和风险控制。同时,通过案例研究,本文展示了EFQM模型在不同IT企业文化中的成功应用,

【数据模型设计原则】:保险行业数据模型设计的最佳实践

![数据模型设计](https://neo4j.com/labs/etl-tool/_images/etl10_mapping_rule3.jpg) # 摘要 保险行业数据模型设计是提升业务处理效率和保证数据完整性的关键。本文首先介绍了数据模型设计的核心理论,包括其定义、分类以及设计原则,接着详述了数据模型设计的流程,强调了需求分析和概念模型设计的重要性。在实践章节中,本文探讨了保险产品、客户和理赔数据模型的设计考量,旨在优化产品关联性、客户信息管理和理赔流程数据化。此外,文章还强调了数据模型优化、安全管理和持续维护的必要性,并展望了在大数据和人工智能技术推动下数据模型设计的未来趋势,包括技

【SOEM代码注释与可读性提升】:编码的艺术与最佳实践

![win-vs-soem-win10及11系统VisualStudio-SOEM-控制电机走周期同步位置模式(CSP模式)代码注释](https://opengraph.githubassets.com/8034f005bbdba33c2f05d15a5986da0ac361f1c2e46bd1e101c96528d571d8b1/lipoyang/SOEM.NET) # 摘要 代码注释和可读性在软件开发中扮演着至关重要的角色,它们不仅帮助开发者理解和维护代码,还能提升整个项目的可维护性和协作效率。本文深入探讨了代码注释的重要性、建立规范、提升可读性的策略、相关工具支持以及案例分析。文章详

信息熵的计算艺术:数据集中度量信息量的终极指南

![信息熵的计算艺术:数据集中度量信息量的终极指南](https://img-blog.csdnimg.cn/20210603163722550.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MjE4OTI5MQ==,size_16,color_FFFFFF,t_70) # 摘要 信息熵作为衡量信息不确定性的数学工具,在数据集的度量、机器学习以及系统科学等多个领域具有广泛的应用。本文从数学基础出发,详细介绍了信息

【AVR编程高手心得】:资深开发者亲授avrdude 6.3手册解读与应用

![【AVR编程高手心得】:资深开发者亲授avrdude 6.3手册解读与应用](https://community.intel.com/t5/image/serverpage/image-id/18311i457A3F8A1CEDB1E3?v=v2&whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright) # 摘要 本论文首先介绍了AVR单片机的基本概念和avrdude工具的使用概览。深入探讨了avrdude的安装、配置和命令行参数,详细阐述了其在读取、编程以及验证擦除操作中的应

【QZXing技术解读】:7大技巧提升移动应用中的二维码扫描效率

![【QZXing技术解读】:7大技巧提升移动应用中的二维码扫描效率](https://opengraph.githubassets.com/c3c3ff3f93cc038fadea29cdb898c4a2b7e6a92d9298ba256160c15c698495ba/Redth/ZXing.Net.Mobile) # 摘要 QZXing技术是二维码扫描领域的一个重要进步,它在移动应用中的应用显著提升了二维码识别的效率和准确性。本文首先介绍了QZXing技术的基本概念及其在二维码扫描中的作用,包括其核心组件和与其它库的比较。随后,文章探讨了提升扫描效率的理论基础,重点分析了影响扫描速度的因

硬件通信协议深度解析:SRIO Gen2的工作原理与六大优势

![硬件通信协议深度解析:SRIO Gen2的工作原理与六大优势](https://opengraph.githubassets.com/8d55a12cfe0e306ead3488af351aa9f4c3c6278b46ff75b0aedb3b563a52b0ee/GOOD-Stuff/srio_test) # 摘要 本篇论文全面介绍了SRIO Gen2硬件通信协议的技术架构及其工作原理,深入探讨了其在现代系统中的应用案例。SRIO Gen2作为一种高性能的通信标准,不仅在数据传输机制上优化了协议基础,而且在物理层特性上展示了其电气优势。本文详细解析了SRIO Gen2如何通过其数据链路层

通风系统优化:地质保障技术的新视角与效果提升

![通风系统优化:地质保障技术的新视角与效果提升](https://www.efectoled.com/blog/es/wp-content/uploads/2018/05/Flujos-de-aire.jpg) # 摘要 通风系统作为建筑物内部空气质量控制的关键组成部分,其优化对于提高能效和保障使用者的健康至关重要。本文首先概述了通风系统优化的必要性,接着深入探讨了通风系统的基础理论,包括气流动力学、热力学的应用以及数学建模和控制理论。第三章重点介绍了地质保障技术在通风系统中的应用,及其对优化通风性能的实际影响。第四章通过具体案例分析,展示了通风系统优化在工业和公共场所的实际应用效果,并讨

事件驱动与响应:微信群聊交互细节的AutoJs源码剖析

![事件驱动与响应:微信群聊交互细节的AutoJs源码剖析](https://opengraph.githubassets.com/3444c3ad82c1ef0f431aa04cbc24b6cd085d205b9b6f38b89920abeb104626a9/wiatingpub/autojs) # 摘要 本论文旨在深入探讨事件驱动与响应的理论基础,通过分析AutoJs框架的环境搭建、微信群聊交互事件解析以及实践应用案例,全面阐述如何利用AutoJs进行高效的事件处理和交互设计。论文首先介绍事件驱动的理论,并概述AutoJs框架及其环境搭建的重要性。随后,重点分析微信群聊中的事件监听和消息

数据安全必读:Overleaf项目备份与迁移的全方位策略

![Overleaf](https://ft.syncfusion.com/featuretour/essential-js2/images/rich-text-editor/multirow-feature-in-javascript-rich-text-editor.png) # 摘要 随着在线协作编写平台Overleaf在学术和教育领域中的广泛应用,备份与迁移成为了确保项目安全与连续性的关键操作。本文首先概述了Overleaf项目备份与迁移的重要性和理论基础,包括数据丢失的风险分析及备份策略的原则。接着,探讨了实施迁移的策略和技巧,包括对迁移需求的分析和确保数据一致性的方法。在实践应用