跳转至
For the complete DHIS2 documentation index, see llms.txt.

安装

本节包含与 DHIS2 系统的安装、管理和维护相关的信息。它提供了如何在各种情况下安装 DHIS2 的信息,包括在线中央服务器、离线本地网络或独立应用程序。

介绍


DHIS2 可在 Java JRE 适用的所有平台上运行,其中包括 Linux、Windows 和 Mac 等大多数流行的操作系统。DHIS2 以标准 Java Web 档案(WAR-文件)的形式打包,因此可在 Tomcat 和 Jetty 等任何 Servlet 容器上运行。它将数据写入 PostgreSQL 数据库。建议在支持 Ubuntu LTS 的系统上运行、

本章提供了设置上述技术堆栈的指南。 但是,应将其作为起步和运行的指南,而不是 作为上述环境的详尽文档。我们提到 到官方的Ubuntu,PostgreSQL和Tomcat文档进行深入了解 阅读。

服务器规格


DHIS2 是一个数据库密集型应用程序,与内存和 CPU 资源成线性关系。这些建议应被视为起点--更多的资源将提高性能。

按实例大小分列的硬件要求{ #hardware-requirements-by-instance-size }

零件 小实例 中型实例 大型实例
RAM 至少 8 GB 16 GB 64GB 或以上
CPU内核 4 个内核 8 个内核 16 个以上内核
磁盘类型 需要固态硬盘 需要固态硬盘 需要固态硬盘
存储 100 GB+ 200 GB+ 500 GB+

存储性能要求{ #storage-performance-requirements }

**以下是推荐的读取速度:

  • 最低:150 兆比特/秒
  • 良好:200 兆比特/秒
  • 理想:350 兆比特/秒或更高

重要**

存储要求在很大程度上取决于数据量。分析表需要大量空间。规划可扩展的存储空间,以适应增长。

在 Linux 上测试磁盘性能{ #testing-disk-performance-on-linux }

您可以使用这些命令对磁盘性能进行基准测试:

# 测试磁盘延迟
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

# 测试磁盘吞吐量
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync

# 清理测试文件
rm -v -i /tmp/test1.img /tmp/test2.img

软件需求


核心部件{ #core-components }

DHIS2 需要以下软件栈:

零件 版本 storedBy
操作系统 Ubuntu LTS(推荐) 任何支持 Java JRE 的操作系统
JavaJDK OpenJDK 8、11 或 17 版本取决于 DHIS2 版本(见下表)
PostgreSQL 13 岁以上(建议 16 岁) 主要数据库
地理信息系统后 2.2+ (建议使用 3) PostgreSQL 空间扩展
汤姆猫 8.5.50+ 或 9+ Servlet 容器
Redis 4+ 可选:仅适用于群集设置

DHIS2 版本兼容性矩阵{ #dhis2-version-compatibility-matrix }

表格DHIS2 版本要求

DHIS2 版本 JRE(推荐) JRE(最低) 汤姆猫 Ubuntu LTS
2.42 17 17 10 24.04
2.41 17 17 9 22.04
2.40 17 11 9 22.04
2.38 11 11 9 22.04
2.35 11 8 9 22.04
2.35 前 8 8 9 22.04

最低与生产设置{ #minimal-vs-production-setup }

最小设置(开发/测试): - 带有 DHIS2 WAR 文件的 Tomcat 服务器 - PostgreSQL 数据库

**生产设置**需要额外的考虑: - 监控和警报系统 - 备份和灾难恢复 - 安全加固 - 性能优化 - 可扩展性规划

关于生产部署,请参阅下面的 部署选项 部分,了解自动和手动安装指南。

部署选项{ #install_install_approaches }


选择最适合您的环境和要求的部署方法。从生产就绪的自动安装到开发和测试环境,每个选项都针对特定的使用情况而设计。


使用 Ansible 自动安装{ #automated-installation-with-ansible }

建议用于生产部署

基于 Ansible 的自动化框架,用于在 Ubuntu Linux 服务器上安全、一致地部署 DHIS2。

您将获得:

  • 自动设置 PostgreSQL、DHIS2 和网络代理(Nginx/Apache2)
  • 内置安全加固和 SSL/TLS 证书管理
  • 应用程序性能监控(Glowroot)和服务器监控(Munin)
  • 支持单服务器或分布式多服务器架构
  • 多实例管理功能

适合:

  • 生产环境
  • 部署多个 DHIS2 实例的组织
  • 需要一致、可重复部署的团队

开始安装 在 GitHub 上查看 观看视频教程


手动安装{ #manual-installation }

用于学习和定制

逐步手动安装,在 Ubuntu 22.04 上完全控制部署过程。

您将获得:

  • 深入了解 DHIS2 组件的相互作用
  • 全面控制每个配置环节
  • 宝贵的故障排除知识
  • 灵活满足特殊要求

适合:

  • 开发和测试环境
  • 学习 DHIS2 基础设施
  • 自定义部署方案

开始安装

对于生产环境,我们强烈推荐使用自动安装方法,以确保一致性、安全性和易于管理。


Docker 部署{ #docker-deployment }

基于容器的基础设施

一个正在进行的项目正在积极为 DHIS2 开发一个生产就绪的 Docker 部署解决方案。该项目目前正在进行测试,并有望成为在生产环境中部署 DHIS2 的推荐方法。

该解决方案为带有 PostgreSQL、特拉菲克代理和监控工具的 DHIS2 提供全面的 Docker Compose 协调。

您将获得:

  • 通过 Let's Encrypt 实现自动 SSL/TLS 的完整基础架构协调
  • 可选的监控堆栈:Grafana、Prometheus、Loki
  • 内置备份和还原功能
  • 常见任务的基于制造的自动化

状态: 准备公开测试。尚未建议用于生产或关键数据。

适合:

  • 本地开发和测试
  • 概念验证部署
  • 熟悉 Docker 基础设施的组织

Get Started Docker Images


Kubernetes 部署{ #kubernetes-deployment }

高可用性容器协调

Kubernetes 是一个容器编排平台,专为高可用性部署而设计。它能在机器集群中自动部署、扩展和管理容器化应用程序。Kubernetes 集群可在内部部署,也可作为云提供商(如 Amazon EKS、Google GKE、Azure AKS)提供的托管服务使用。

可以在 Kubernetes 集群环境中运行容器化的 DHIS2,包括多个 DHIS2 实例连接到单个数据库的横向扩展设置。不过,这种集群式 DHIS2 部署仍处于试验阶段,在生产环境中并不常用。

Kubernetes的**优势:**

  • 根据需求自动缩放
  • 自愈能力(容器自动重启)
  • 多个实例之间的负载平衡
  • 滚动更新,零停机时间

重要考虑因素:

  • 在 Kubernetes 上运行 DHIS2 的实际生产经验有限,这意味着可借鉴的社区知识较少
  • 建立和管理 Kubernetes 环境需要专业知识
  • 如果要部署 Kubernetes,还必须考虑到关键的运行方面,例如
    • 备份和灾难恢复战略
    • 监控和警报基础设施
    • DHIS2 水平扩展配置(如果使用多个实例)

用于 DHIS2 的 Kubernetes 部署被视为试验性的。如果你对自己的 Kubernetes 专业知识和操作能力有信心,这可能是一个可行的选择,但要准备好开拓设置的某些方面。