This master's thesis presents the comprehensive integration of the IT infrastructure monitoring system Zabbix with the Kubernetes platform, which is the standard for container orchestration in modern IT environments. The goal of the thesis was to design and implement an automated installation process using the GitOps approach, enabling transparent, reliable, and secure management of configurations in complex setups.
The introduction describes the evolution of application architectures, with an emphasis on the transition to microservice architecture, which, compared to monolithic architecture, offers greater flexibility, scalability, and faster implementation of new functionalities. Key characteristics of the presented architectures are discussed, along with their relation to modern technologies, such as containers, and development methodologies, such as DevOps and GitOps.
The core of the thesis focuses on the design, implementation, and configuration of a high-availability setup for the Zabbix system and the PostgreSQL database. The Kubernetes platform is presented in detail, with a thorough description of its core resources, key components, and functionalities that enable automated orchestration and centralized management of containerized applications. An overview of the Zabbix system is provided, outlining its capabilities, architectural features, and the roles of individual components such as the server, database, agent, and web interface. Using various tools such as FluxCD, Helm, External Secrets Operator, and HashiCorp Vault, an automated and secure installation process was established, ensuring the reliable deployment of the Zabbix system and PostgreSQL database.
A review of two existing integrations of the Zabbix system is presented, enabling monitoring of PostgreSQL databases and Kubernetes clusters. Both integrations were adapted to containerized environments and further optimized for the Tanzu environment, where the complete setup was implemented.
The reliability of the entire setup was tested through various scenarios, such as node failures, database recovery after a disaster, and regular maintenance tasks. The test results showed that the solution is suitable for use in production environments, provided that the requirements are properly defined and aligned with the available infrastructure. The presented solution can also serve as a guideline when integrating other systems with the Kubernetes platform.
|