前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Galaxy 生信平台(二):生产环境部署

Galaxy 生信平台(二):生产环境部署

作者头像
章鱼猫先生
发布于 2021-10-15 04:24:16
发布于 2021-10-15 04:24:16
1.8K00
代码可运行
举报
文章被收录于专栏:BioIT爱好者BioIT爱好者
运行总次数:0
代码可运行

上一篇文章中,我们介绍了适合单个用户进行使用和开发的 Galaxy 在线平台,今天我们来聊一下在为多用户生产环境设置 Galaxy 时,我们应采取的一些可以让 Galaxy 获得最佳性能的额外步骤。

原因

默认情况下的 Galaxy 会启用下面的服务:

  • 使用 SQLite (无服务器数据库),因此您无需为快速或基本开发运行/配置额外的数据库服务器。但是,虽然SQLite 支持并发访问(concurrent access),但它不支持多个并发写入,这会降低系统吞吐量。
  • 使用基于 Python 编写的内置 HTTP 服务器。此服务器执行的大部分工作可以移动到 nginx 或 Apache,这将提高性能。
  • 在本地运行所有工具。如果将 Galaxy 迁移到群集(cluster)将大大增加其服务和计算的能力。
  • 在单个进程中运行,这是 CPython 中的性能问题。

Galaxy 附带以上的默认配置,以确保在进行基本开发时可以实现最简单,最防错的配置。正如您很快就会看到的,目标是尽可能多地从 Galaxy 流程中删除工作,因为这样做会大大加快其剩余职责的执行速度。这是由于 Python 全局解释器锁(GIL),详细说明可以参考 Galaxy 的高级配置部分文档。

基础

实现 Galaxy 可扩展性的基础就是, 我们需要一个干净的环境! 以下许多说明是适用于任何生产应用程序的最佳实践。

  • 创建一个名为 galaxy 的 非 ROOT 用户 。当您要授予或限制对数据的访问权限时,作为现有用户运行将导致问题。
  • 从一个全新版本的 Galaxy 开始,不要尝试从以前使用过的版本中进行切换以用于开发。下载并安装在 galaxy 用户主目录中。
  • 应该由 galaxy 用户运行 Galaxy 托管的一系列系统服务(如 Apache,邮件服务器,数据库服务器等)。发布的的 contrib/ 目录中提供了初始化脚本,OS X 启动定义和 Solaris SMF manifests。您还可以在 run.sh 中使用 --daemon--stop-daemon 参数来手动启动和停止 Galaxy 的服务,但仍然需要分离进行操作。当作为守护进程运行时,服务器的输出日志将写入 galaxy.log 而不是终端,除非使用 --log-file 参数进行自定义说明。
  • 为 Galaxy 提供自己的数据库用户和数据库,以防止 Galaxy 的架构与数据库中的其他表冲突。此外,限制 Galaxy 的数据库用户,以便它只能访问自己的数据库。
  • 确保 Galaxy 使用干净的 Python 解释器。$PYTHONPATH 或解释器的 site-packages/ 目录中的冲突可能会导致其他的一些问题。对于 Galaxy 自身的框架依赖项 Galaxy 可以自行进行管理,因此您不必担心。最简单的方法是使用 virtualenv
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nate@weyerbacher% pip install virtualenv
nate@weyerbacher% virtualenv --no-site-packages galaxy_env
nate@weyerbacher% . ./galaxy_env/bin/activate
nate@weyerbacher% cd galaxy-dist
nate@weyerbacher% sh run.sh
  • Galaxy 可以放在一个集群/网络文件系统中(它已经过 NFS 和 GPFS 测试),如果你要在集群上运行它,可以参考:《Galaxy Admin Documentation: Connecting to a Cluster》。

基础配置

安装 Galaxy 的步骤大多遵循常规说明的步骤(regular instructions)。不同之处在于,在执行上述基础工作之后,您应该初始化配置文件( cp config/galaxy.yml.sample config/galaxy.yml )并在启动服务器之前按照下面的描述对其进行修改。如果在服务器运行时对此配置文件进行任何更改,则必须重新启动服务器才能使更改生效。

禁用开发人员设置

配置示例文件 config/galaxy.yml 中设置了两个选项,这些选项不应在生产服务器上启用。您应该将两者都设置为 false

  • debug:false 禁用在内存中加载整个响应的中间件,以便在页面中显示调试信息。如果保持启用状态,代理服务器可能会超时等待响应,或者如果 Galaxy 进程正在为大文件提供服务,则可能会耗尽内存。
  • use_interactive:false禁止通过 Web 显示和实时调试回溯。保持启用状态将暴露您的配置(数据库密码,id_secret 等)。
  • 禁用 filter-with:gzip。启用 gzip 过滤器将导致 UI 失败,因为一旦 debug 设置为 False ,模板就会流式传输。您仍然可以(并且鼓励)在代理服务器中启用 gzip

在部署期间,您可能会遇到失败作业的问题。默认情况下,Galaxy 会删除与作业执行相关的文件。您可以指示 Galaxy 保留失败作业的文件:cleanup_job:onsuccess

切换到数据库服务器

最重要的建议是切换到实际的数据库服务器。默认情况下,Galaxy 将使用 SQLite,它是一个无服务器的简单文件数据库引擎。由于它是无服务器的,因此所有数据库处理都在 Galaxy 进程中进行。这有两个缺点:它占用前面提到的 GIL(意味着该进程不能自由地执行其他任务),并且它不如专用数据库服务器那么高效。还有其他缺点:当多个用户的负载增加时,事务锁的风险也会增加。锁定将导致(除其他外)超时和作业错误。如果从 SQLite 开始,然后意识到需要数据库服务器,则需要迁移数据库或重新开始。Galaxy 没有提供从 SQLite 迁移数据的内部方法,虽然 Web 上提供了免费的转换工具,但这个过程并非易事。

出于这个原因,Galaxy 还支持 PostgreSQLMySQL。PostgreSQL 是首选,因为我们发现它在我们的数据库抽象层 SQLAlchemy 中运行得更好。

要使用外部数据库,您需要自行去安装和设置。该过程超出了本文档的范围,但通常很简单。例如,在 Debian 和基于 Redhat 的 Linux 发行版上,可能已经安装了一个。如果没有,它应该是 apt-get installyum install 。在 macOS 上,PostgreSQL 网站上提供了安装程序。CentOS 下安装 PostgreSQL,请参考:《Linux 下 PostgreSQL 源码编译安装》

安装后,创建一个新用户和该新用户所属的新数据库。无需进一步设置,因为 Galaxy 会管理自己的架构。如果您使用 UNIX 套接字(UNIX socket)将应用程序连接到数据库(这是标准情况,如果 Galaxy 和数据库在同一系统上),运行 Galaxy 进程时您将要为数据库用户命名为与您所在的系统用户相同的名称。

要配置 Galaxy,请在 Galaxy 的配置文件 config/galaxy.yml 中设置 database_connection 。数据库 URL 相关的语法在 SQLAlchemy documentation 中有详细的描述。

这里是两个带有用户名和密码的示例数据库 URL:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgresql://username:password@localhost/mydatabase
mysql://username:password@localhost/mydatabase

值得注意的是,某些平台(例如,Debian/Ubuntu)将数据库套接字存储在数据库引擎默认目录以外的目录中。如果您在与 Galaxy 服务器相同的主机上连接到数据库服务器并且套接字位于非标准位置,则需要使用这些自定义参数(这些是 Debian/Ubuntu 的默认值,必要时可根据个人的安装进行更改):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgresql:///mydatabase?host=/var/run/postgresql
mysql:///mydatabase?unix_socket=/var/run/mysqld/mysqld.sock

有关数据库 URL 可用选项的更多提示,参考:SQLAlchemy documentation。

如果您使用 MySQL 并遇到 "MySQL server has gone away" 的错误,请注意 config/galaxy.yml主配置文件中的以下选项:

database_engine_option_pool_recycle

如果上面的设置还不能解决您的问题,请参阅 Galaxy Development 邮件列表中的这篇文章。

如果您使用的是 MySQL,请确保数据库输出为 UTF-8,否则您可能会遇到 Python TypeErrors。

如果您使用 MySQL 和 MyISAM 表引擎,当 Galaxy 处于多进程配置时,工作流程步骤可能出现无序执行 (get executed out of order) 并失败。请改用 InnoDB 引擎或切换到 PostgreSQL。

使用代理服务器

Galaxy 包含了一个独立的 Web 服务器,可以直接向客户端提供所有内容。但是,某些任务(例如提供静态内容)可以负载到更有效地处理这些任务的专用服务器。代理服务器还允许您使用代理支持的任何方法(例如,Kerberos 或 LDAP)在外部对用户进行身份验证,指示浏览器缓存内容以及压缩出站数据。此外,Galaxy 的内置 Web 服务器不支持字节范围请求(许多外部显示应用程序所需),但可以将此功能负载到代理服务器。除了释放 GIL 之外,压缩和缓存还可以减少页面加载的时间。

下载和上载数据也可以移动到代理服务器。详细介绍可以参考:Make the proxy handle uploads and downloads。

Galaxy 官方提供了提供了基于 Apache 和 Nginx 以下的配置示例:

  • Nginx,高性能的反向代理,公共 Galaxy 网站目前在使用中。
  • Apache,具有成熟代理功能,且广泛部署的通用 Web 服务器。

使用计算集群

Galaxy 是一个运行命令行工具的框架,如果配置正确,可以在计算群集上运行这些工具。如果没有群集,您将受限于服务器中的核心数量,减去运行 Galaxy 本身所需的核心数量。Galaxy 目前支持 TORQUE PBSPBS ProPlatform LSFSun Grid Engine 集群,不需要专用或特殊的集群配置。只要在该平台上可以使用运行这些工具所需的依赖,Galaxy 的工具甚至可以在异构集群节点(不同的操作系统)上运行。

使用群集还可以为您带来附带好处:在本地运行工具时,它们是 Galaxy 服务器的子进程。这意味着如果重新启动服务器,则会失去与这些作业的联系,并且必须重新启动它们。但是在群集上,如果 Galaxy 服务器重新启动,作业将继续运行并完成。一旦 Galaxy 工作正常启动,它将恢复跟踪并完成工作,就好像什么也没发生过一样。

设置群集后,Galaxy 的配置并不困难。详细的集群相关配置信息,可以参考 Galaxy cluster page。

清理数据集

从历史记录或库中删除数据集时,只会将其标记为已删除但未实际删除,因为以后可以取消删除。为了释放磁盘空间,可以运行一组脚本(例如, cron/ 目录相关脚本)以删除本地策略指定的数据文件。有关说明,请参阅 “清除历史记录和数据集” 页面。

日志切换

要使用 logrotate 切换 Galaxy 日志文件,请将名为 galaxy 的新文件添加到 /etc/logrotate.d/ 目录中,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PATH_TO_GALAXY_LOG_FILES {
  weekly
  rotate 8
  copytruncate
  compress
  missingok
  notifempty
}

本地数据

要开始设置本地数据,请参考:Data Integration。

  • 所有本地参考基因组必须包含在 builds.txt 文件中。
  • 某些工具(例如,Extract Genomic DNA)要求您缓存(可能很大)本地 .2bit 格式数据。
  • 其他工具(例如,Bowtie2)要求您缓存 .fasta 数据和特定工具的索引文件。
  • galaxy_dist/tool-data/ 目录包含一系列,用于描述元数据以及本地数据和索引路径的 location 示例( .loc )文件。
  • 从 Galaxy Tool Shed 中安装的工具包,也可能包含 location 文件。
  • location 文件中的注释,说明了该工具所需要的数据格式,设置前可以参考。
  • Data Integration 文档解释了如何获取、创建或重新编写许多常见数据和索引。有关更多详细信息,请参见各个 Tool Shed 存储库的文档。

通过 FTP 启用上传

由于快速提升的测序技术,文件大小已经变得非常大,并且通过浏览器上传这些文件并不总是可行的。值得庆幸的是,一个简单的解决方案是允许 Galaxy 用户通过 FTP 上传它们并将这些文件导入其历史记录中。详细的的配置请参考 File Upload via FTP page 中的说明。

高级配置

负载平衡和 Web 应用程序扩展

如前所述,由于 Python 全局解释器锁(GIL,Global Interpreter Lock),从 Galaxy 进程中 unloading work 非常重要。GIL 是 Python 确保线程安全的方式,它通过一次只允许一个线程控制执行来实现这一点。这意味着无论服务器中的核心数量如何,Galaxy 都只能使用一个核心。但是,有一个解决方案:运行多个 Galaxy 进程并使用代理服务器来平衡所有这些进程。实际上,Galaxy 分为作业处理程序和 Web 服务器进程。作业处理程序不直接通过 Web 为任何用户请求提供服务。相反,他们会在数据库中查看新作业,并在找到它们后,处理它们的准备,监视,运行和完成。同样,Web 服务器进程可以自由处理服务内容和文件到 Web 客户端。

有关如何配置扩展和负载平衡的完整详细信息,请参阅 the scaling 文档。

调整数据库

PostgreSQL 可以比 Galaxy 更有效地存储结果,从而减少 Galaxy 的内存占用。进行查询时,结果将保留在 Postgres 服务器上,Galaxy 可以只需要检索所需的行。要启用此功能,请在 Galaxy 配置中设置: database_engine_option_server_side_cursors:true

如果服务器记录有关数据库连接池大小的错误,则可能需要增加默认的最小和最大池连接数,即 5 和 10。这些配置文件选项分别为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
database_engine_option_pool_siz
database_engine_option_max_overflow

最后,如果您使用的是 Galaxy <= release_2014.06.02,我们建议您指示 Galaxy 为每个线程使用一个数据库连接,以避免连接开销和过度使用。这可以通过下面的参数启用:

database_engine_option_strategy:threadlocal

使代理处理上传和下载

默认情况下,Galaxy 从代理服务器接收文件流上传,然后将此文件写入磁盘。同样,它将文件作为流发送到代理服务器。这占据了 Galaxy 流程中的 GIL,并且会降低该流程中其他操作的响应能力。要解决此问题,您可以将代理服务器配置为直接提供下载,仅涉及授权用户有权读取数据集的任务。如果使用 nginx 作为代理,您可以将其配置为接收上传的文件并将其写入磁盘本身,只有在完成后才通知 Galaxy。有关如何配置这些内容的所有详细信息都可以在 Apache 和 nginx 代理指令页面上找到。

总结

以上就是 Galaxy 生信平台基于生产环境下部署的一些建议,其中涉及了很多数据库、系统,以及服务器、集群相关的知识。从个人而言,这是一个极好的实战学习项目;从公司而言,也是从传统命令行生信分析向可视化界面处理的一个很好开源案例,值得借鉴与参考。

目前,关于 Galaxy Project 在国内的深入研究相关介绍与文档不是很多,如果您有任何的想法,欢迎留言交流。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BioIT爱好者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Windows平台分布式架构实践 - 负载均衡
概述   最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行。那么大家(开发者和企业)为什么那么的迫切的希望.NET跨平台呢?第一个理由是便宜,淘宝号称4万多台服务器全部运行在Linux,Linux平台下还有免费的MySql,这些都是免费的,这些省下来直接就是利润呀,做企业的成本可以降低又没有任何损失,何乐而不为呢?第二个理由是在Linux系统下还有很多非常优秀的构架(当然同样也是免费的),分
用户1153966
2018/03/14
1.4K0
Windows平台分布式架构实践 - 负载均衡
Galaxy Release (v 22.01),新的颜色选择器
2022年1月3日,Galaxy Project 正式发布了 Release 22.01 的版本;随后的 3 月中,发布该版本的 announcement 文档。这里总结一下该版本一些主要的更新内容,为关注和从事 Galaxy 相关工作的中文用户提供参考。
章鱼猫先生
2022/04/05
8820
Galaxy Release (v 22.01),新的颜色选择器
高性能可靠服务集群架构
1、 需求分析 庞大的业务访问量需要高性能、可靠的服务器框架支撑。高性能要求服务器在巨大压力下仍然高速运行,读写返回正确的业务信息,前端用户体验良好。可靠性要求服务器出现宕机、罢工等情况,可以及时恢复服务器正常工作状态,支持业务系统24小时健康运行。使用缓存、读写分离技术提高服务器访问资源速度,解决大访问量资源拥堵问题;使用负载均衡与高可用技术提高服务器响应速度以及服务器稳定性,解决服务器处理大用户量请求问题以及服务器宕机的及时恢复能力。 同时,需要部署运维监控平台,监控服务器上服务程序与资源使用情况,出现
老七Linux
2018/05/31
8810
基于Spring boot的外卖项目 瑞吉外卖Day11 实现Mysql读写分离
​ MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySOL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySOL主从复制是MySQL数据库自带功能,无需借助第三方工具。
小小程序员
2023/04/12
6570
开源中间件Vitess助力MySQL实现分库分表
Vitess自2011年以来一直为YouTube的所有数据库流量提供服务,目前已被许多企业采用,以满足其生产需求。
MySQL轻松学
2019/10/24
4.4K0
【专业技术】OpenStack的架构详解
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 1. OpenStack是什么 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 OpenStack旗下包含了一组由社区维护的开源项目,他们分
程序员互动联盟
2018/03/16
2.7K0
【专业技术】OpenStack的架构详解
Web-第三十二天 WebLogic中间件【悟空教程】
中间件(middleware)是基础软件的一大类, 属于可复用软件的范畴. 顾名思义,中间件处于操作系统软件与用户的应用软件的中间.
Java帮帮
2018/08/16
3.6K0
Web-第三十二天 WebLogic中间件【悟空教程】
云原生数据库vitess简介
Vitess是用于部署,扩展和管理MySQL实例的大型群集的数据库解决方案。它在架构上可以像在专用硬件上一样有效地在公共或私有云架构中运行。它结合了NoSQL数据库的可伸缩性,并扩展了许多重要的MySQL功能。Vitess可以帮助您解决以下问题:
有点技术
2020/07/14
6.2K0
云原生数据库vitess简介
Kubernetes生产环境的16条建议
Kubernetes是用于构建高度可扩展系统的强大工具。结果,许多公司已经开始或正在计划使用它来协调生产服务。不幸的是,像大多数强大的技术一样,Kubernetes也很复杂。我们整理了以下清单,以帮助你生产环境最佳实践Kubernetes。
java进阶架构师
2020/06/16
7520
Kubernetes生产环境的16条建议
Django项目部署流程与Nginx安装配置
本节主要讲解的内容是 Nginx 如何和 uWSGI 配合使用,以及如何使用 Nginx 配置 Django 的静态资源,在本节的最后我们还要对项目部署流程做一下全面详细的总结,本节将作为本教程的最后一节,后续会根据读者的反馈再增加相应的 Django 知识介绍,最后希望各位读者阅读完这套《Python Django框架基础教程》能有所收获,这将是作为笔者的我最大的荣幸。
用户8816859
2021/07/09
9060
生信自动化流程搭建 07 | 配置文件
启动管道脚本时,Nextflow将在当前目录和脚本基本目录(如果与当前目录不同)中查找一个名为nextflow.config的文件。最后,它检查文件 $HOME/.nextflow/config。
白墨石
2021/01/12
5.8K0
使用云服务器部署 Spring Boot 项目
在现代的软件开发中,使用云服务器来部署应用程序已经成为一种常见的方式。云服务器提供了灵活、可扩展和高度可靠的计算资源,可以轻松地部署和管理应用程序。Spring Boot 是一款流行的 Java 框架,用于构建独立的、可执行的、自包含的 Spring 应用程序,它也可以轻松地在云服务器上进行部署。在本篇博客中,我将介绍如何使用云服务器来部署 Spring Boot 项目。
云服务器教程
2023/04/18
3.5K0
python web 部署:nginx + gunicorn + supervisor + flask 部署笔记
python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式:nginx + webservice + script nginx 不用多说,一个高性能的web服务器。通常用来在前端做反向代理服务器。所谓正向与反向(reverse),只是英文说法翻译。代理服务,简而言之,一个请求经过代理服务器从局域网发出,然后到达互联网上服务器,这个过程的代理为正向代理。如果一个请求,从互联网过
小小科
2018/05/03
1.4K0
python web 部署:nginx + gunicorn + supervisor + flask 部署笔记
Java程序员常用软件
工欲善其事必先利其器,作为有多年开发经验的Java程序员,应该都会有一些常用的软件来辅助自己的工作,下面分享从业几年来一直在用的一些软件。
全栈程序员站长
2022/09/08
5870
Java程序员常用软件
「技术架构」10个提升应用程序性能的倚天剑和屠龙刀
提高web应用程序性能比以往任何时候都更加重要。在线经济活动的份额正在增长;超过5%的发达国家的经济现在是在互联网上的(参见参考资料中的互联网统计数据)。而我们这个始终在线、高度连接的现代世界意味着用户的期望比以往任何时候都要高。如果您的站点没有立即响应,或者您的应用程序不能立即工作,用户将很快转向您的竞争对手。
架构师研究会
2019/09/27
8100
「技术架构」10个提升应用程序性能的倚天剑和屠龙刀
Zabbix之基础大全
一、监控基础 1、监控处理过程 采样---->存储----->报警---->展示 (1)、采样   采样的监控数据采集方法:ssh/telnet、SNMP、Protocol v3、IPMI(智能平台管理接口)、TLS。 (2)、数据存储   数据类型:历史数据(nvps)、趋势数据。   数据存储系统:rrd(轮询数据库);                 SQL(关系型数据库,MySQL/PostgreSQL);                 NoSQL(反关系型数据库,Redis/MangoDB);                 时间序列存储。 (3)、主机的四种监控接口:zbx、snmp、jmx、ipmi。 2、常用的开源监控工具 (1)、cacti:强大的【数据展示】功能。   cacti是基于php来编写的;   利用SNMP协议采集样本数据;   利用rrdtool进行数据存储;   报警机制有限。 (2)、nagios:强大的【报警机制】。   nagios不支持历史数据和趋势数据保存;   数据展示功能有限。 (3)、zabbix:集cacti、nagios优点。   强大的数据展示功能;   强大的报警机制;   支持历史数据和趋势数据的存储;   支持脚本实现故障的数据修复。 (4)、ganglia:用于集群监控。   ganglia用于集群监控时,可以实现多台主机的多种集合数据的集中展示。 二、zabbix -----------www.zabbix.com Zabbix功能特点 概述 Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。 数据收集     可用性和性能检查     支持SNMP(包括主动轮训和被动获取),IPMI,JMX,VMware监控     自定义检查     按照自定义的间隔收集需要的数据     通过server/proxy+agents来执行 灵活的阀值定义     您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值 高度可配置化的告警     可根据递增机制,接收方和媒介类型自定义发送告警通知     使用宏变量可以使告警通知更加高效有用     自动相应动作可包含远程命令 实时图表绘制     使用内置图表绘制功能可以将监控项的内容实时绘制成图表 Web监控功能     Zabbix可以追踪模拟鼠标在Web网站上的点击操作,来检查Web的功能和响应时间 丰富的可视化选项     支持创建自定义的图表,一个试图集中展现多个监控项     网络拓扑图     以仪表盘的样式自定义大屏展现和幻灯片轮询播放     报表     监控内容的高级(业务)视图 历史数据存储     数据库数据     可配置历史数据     内置数据管理机制(housekeeping) 配置简单     将被监控对象添加为主机     在数据库中获取主机进行监视     应用模板来监控设备 使用模板     在模板中分组检查     模板可以关联其他模板 网络发现     自动发现网络设备     监控代理自动注册     发现文件系统,网络接口和SNMP OID值 快捷的Web界面     PHP Web前端     可从任何地方访问     你可以定制自己的操作方式     审核日志 Zabbix API     Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的 权限管理系统     安全用户认证     特定用户可以限制访问特定的视图 功能强大,易于扩展的agent     部署在被监控对象上     支持Linux和Windows 二进制代码     为了性能和更少内存的占用,用C语言编写     便于移植 为复杂环境准备     使用Zabbix proxy代理服务器,使得远程监控更简单 结构 Zabbix由几个主要的软件组件构成,这些组件的功能如下。 Server Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 数据库存储 所有配置信息和Zabbix收集到的数据都被存储在数据库中。 Web界面 为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 如果使用SQLite,Zabbix Web界面必须要跟Zab
菲宇
2022/12/21
5150
Zabbix之基础大全
企业实战(10)基于Maxscale中间件实现Mysql读写分离实战
 读写分离的基本原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力这样的方案来进行部署与实施的。
非著名运维
2022/06/22
6190
企业实战(10)基于Maxscale中间件实现Mysql读写分离实战
YH11:Oracle Flex ASM 知识库
在 Oracle 12c 之前,对于要使用 ASM 的数据库实例来说,所有节点上的 ASM 实例必须已处于运行状态,才能启动数据库实例。如果 ASM 实例未运行,则意味着在存储级使用 ASM 的数据库实例不能启动。这实际上意味着无论采用何种技术(即 RAC、ASM 和共享存储),均不能访问数据库实例。 随着 Oracle 12c 的推出,一个名为 Oracle Flex ASM 的特性解除了上述限制,它的一个主要特性是故障切换到集群中的其他节点。本质上是一个中心和叶架构,Oracle Clusterwar
数据和云
2018/03/07
1K0
YH11:Oracle Flex ASM 知识库
分布式部署:第二章:MyCat和Nginx部署
如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。
Java廖志伟
2022/09/28
6770
分布式部署:第二章:MyCat和Nginx部署
如何使用Python和sqlite3构建一个轻量级的数据采集和分析平台
数据采集和分析是当今时代的一项重要技能,它可以帮助我们从互联网上获取有价值的数据,并对其进行处理和挖掘,从而获得有用的信息和洞察。但是,数据采集和分析并不是一件容易的事情,它需要我们掌握各种工具和技术,如爬虫、数据库、编程语言、统计方法、可视化工具等。
jackcode
2023/07/11
5460
如何使用Python和sqlite3构建一个轻量级的数据采集和分析平台
推荐阅读
相关推荐
Windows平台分布式架构实践 - 负载均衡
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验