百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

通过源代码方式完整安装zabbix实战笔录

mhr18 2024-09-26 14:28 19 浏览 0 评论

文章索引:

成熟、易用的企业级开源监控解决方案zabbix功能介绍

一、获取 Zabbix

获取 Zabbix 安装介质有四种方法:

从官方的RPM和DEB 发行包安装;https://www.zabbix.com/download

下载最新的归档源码包并编译它;https://www.zabbix.com/download_sources

从 容器 中安装;https://www.zabbix.com/download_docker

二、安装要求

1、硬件要求

(1)、内存和磁盘

Zabbix 运行需要物理内存和磁盘空间。如果刚接触 Zabbix,128 MB 的物理内存和 256 MB 的可用磁盘空间可能是一个很好的起点。 然而,所需的内存和磁盘空间显然取决于被监控的主机数量和配置参数。 如果您计划调整参数以保留较长的历史数据,那么您应该考虑至少有几 GB 磁盘空间,以便有足够的磁盘空间将历史数据存储在数据库中。

每个 Zabbix 守护程序进程都需要与数据库服务器建立多个连接。 为连接分配的内存量取决于数据库引擎的配置。

您拥有的物理内存越多,数据库(以及 Zabbix )的工作速度就越快!

(2)、CPU

Zabbix,尤其是 Zabbix 数据库可能需要大量 CPU 资源,该具体取决于被监控参数的数量和所选的数据库引擎。

硬件资源配置参考

下表提供了几个硬件配置参考:

2、软件要求:

Zabbix 是基于先进 Apache Web 服务器、领先的数据库引擎和 PHP 脚本语言构建的。

数据库管理系统

3、前端

Zabbix 前端需要使用下列软件:

Zabbix 也许可以在以前的Apache、MySQL、Oracle 和 PostgreSQL 版本上运行。

二、从源代码包安装

可以通过从源代码编译来获取最新版本的Zabbix:https://www.zabbix.com/download_sources。

这里提供了从源代码安装 Zabbix 的具体步骤。

1、 安装 Zabbix守护进程

(1)、 下载源代码存档

转到下载源代码存档。待下载完毕后,执行以下命令解压缩源代码存档:

$ tar -zxvf zabbix-4.0.0.tar.gz

请在命令中输入正确的 Zabbix 版本。 它必须与下载的存档的名称匹配。

2 、创建用户账户

对于所有 Zabbix 守护进程,需要一个非特权用户。 如果从非特权用户帐户启动 Zabbix 守护程序,它将以该用户身份运行。

然而,如果一个守护进程以“root”启动,它会切换到“zabbix”用户,且这个用户必须存在。在 Linux 系统中,可以使用下面命令建立一个用户(该用户属于自己的用户组,“zabbix”):

groupadd zabbix
useradd -g zabbix zabbix

而对于 Zabbix 前端安装,并不需要单独的用户帐户。

如果 Zabbix server 和 agent 运行在相同的机器上,建议使用不同的用户运行来 Zabbix server 和 agent。 否则,如果两者都作为同一用户运行,则 Zabbix agent 可以访问 Zabbix server 配置文件,并且可以轻松检索到 Zabbix 中的任何管理员级别的用户,例如,数据库密码。

以 root 、bin 或其他具有特殊权限的账户运行 Zabbix 是非常危险的。

3 、创建 Zabbix 数据库

对于 Zabbix server 和 proxy 守护进程以及 Zabbix 前端,必须需要一个数据库。但是 Zabbix agent 并不需要。

SQL 脚本 用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。

当创建数据库后,继续执行编译 Zabbix 的步骤。

4、 配置源代码

当配置 Zabbix server 或者 proxy 的源代码时,需要指定所使用的数据库类型。一次只能使用 Zabbix server 或 Zabbix proxy 进程编译一种数据库类型。

如果要查看所有受支持的配置选项,请在解压缩的 Zabbix 源代码目录中运行:

./configure --help

如果要配置 Zabbix server 和 Zabbix proxy 的源代码,可以运行以下内容:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

从 Zabbix 3.0.0 起,STMP 认证需要需要 cURL 7.20.0 或更高版本的 --with-libcurl 配置选项。

从 Zabbix 2.2.0 起,虚拟机监控需要 --with-libcurl 和 --with-libxml2 配置选项。

从 Zabbix 3.4 开始,Zabbix 将始终使用 PCRE 库进行编译;安装时它不是可选的。 --with-libpcre=[DIR] 只允许指向特定的基础安装目录,而不是通过 libpcre 文件的多个公共位置搜索。

如果要配置 Zabbix server 的源代码(使用 PostgreSQL 等),可以运行:

./configure --enable-server --with-postgresql --with-net-snmp

如果要配置 Zabbix proxy 的源代码(使用 SQLite 等),可以运行:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

如果要配置 Zabbix agent 的源代码,可以运行:

./configure --enable-agent

可以使用 --enable-static 标识静态连接类库。如果你打算在不同的服务器之间分发已编译的二进制文件,则必须使用此标识使这些二进制文件在没有必需库的情况下工作。请注意 --enable-static 在 Solaris 系统下无效 。

不建议在搭建 Zabbix server 的时候使用--enable-static 选项。

为了静态搭建 Zabbix server,必须拥有每个所需的外部类库的静态版本。配置脚本中不提供这些类库的严格检查。

命令行工具 zabbix_get 和 zabbix_sender 只有在 --enable-agent 选项启用时才会被编译。

如果 MySQL 客户端类库不处在默认的位置,则需要添加可选的 MySQL 的配置文件 --with-mysql=/<path_to_the_file>/mysql_config ,以选择所需的路径。

这可以有效解决,一个系统上安装了多个版本的 MySQL 或者 MariaDB 的情况。

5、安装

需要先运行以下命令:

#make install

这步需要使用一个拥有足够权限的用户来运行 (如 'root',或者使用 sudo)。

运行 make install 将使用在 /usr/local/sbin 下的守护进程二进制文件(zabbix_server, zabbix_agentd, zabbix_proxy)和在 /usr/local/bin 下的客户端二进制文件进行默认安装。

如需要指定 /usr/local 以外的位置,可在之前的配置源代码的步骤中使用 --prefix,例如 --prefix=/home/zabbix。在这个案例中,守护进程的二进制文件会被安装在 <prefix>/sbin 下,工具会安装在 <prefix>/bin 下。帮助文件会安装在 <prefix>/share 下。

6 查看和编辑配置文件

在此编辑 Zabbix agent 的配置文件 /usr/local/etc/zabbix_agentd.conf

需要为每台安装了 zabbix_agentd 的主机配置这个文件。

必须在这个文件中指定 Zabbix server 的 IP 地址 。若从其他主机发起的请求会被拒绝。

在此编辑 Zabbix server 的配置文件/usr/local/etc/zabbix_server.conf

必须指定数据库的名称、用户和密码(如果使用的话)。

如果进行小型环境部署(最多十个受监控主机),其余参数的默认值将适合的环境。 如果要最大化 Zabbix server(或 proxy)的性能,则应更改默认参数。

如果安装了 Zabbix proxy,请在此编辑 proxy 的配置文件 /usr/local/etc/zabbix_proxy.conf

必须指定 Zabbix server 的 IP 地址和 Zabbix proxy 主机名(必须被 Zabbix server 识别),同时也要指定数据库的名称、用户和密码(如果使用的话)。

7、 启动守护进程

在 Zabbix server 端运行 zabbix_server:

shell> zabbix_server

值得注意的是,确保的系统允许分配 36MB(或更多)的共享内存,否则 Zabbix server 将无法启动,并会在 Zabbix server 日志文件中看到 “Cannot allocate shared memory for <type of cache>.”。

在受监控的主机上运行 zabbix_agentd:

shell> zabbix_agentd

值得注意的是,请确保的系统允许分配 2MB 的共享内存,否则 Zabbix agent 可能会无法运行,并会在 Zabbix agent 日志文件中看到 “Cannot allocate shared memory for collector.” 这样的报错信息。

如果安装了 Zabbix proxy,请运行 zabbix_proxy:

shell> zabbix_proxy

二、安装 Zabbix web 界面

Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要简单的从 frontends/php 路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装。

Apache Web 服务器的 HTML 文档目录通常包括:

/usr/local/apache2/htdocs (从源代码安装 Apache 的默认目录)
/srv/www/htdocs (OpenSUSE, SLES)
/var/www/html (Debian, Ubuntu, Fedora, RHEL, CentOS)

建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下(注意替换为实际的目录):

mkdir <htdocs>/zabbix
cd frontends/php
cp -a . <htdocs>/zabbix

下面开始安装前端,第一步在浏览器打开 Zabbix 链接:http://<server_ip_or_name>/zabbix

可以看到前端安装向导的第一个页面。

第二步

请确认满足所有的软件安装前置条件。

先决条件最低要求如下表所示:

第三步

请输入连接到数据库的详细信息。Zabbix 数据库必须提前创建完成。

第四步

请输入 Zabbix server 的详细信息。

第五步

查看设置的摘要。

第六步

下载配置文件并将其放在 conf/ 路径下,即在您复制 Zabbix PHP 文件的 Web 服务器 HTML 文档子目录中。

如果 Web服务器用户具有对 conf/ 目录的写访问权,则会自动保存配置文件,并且可以直接继续执行下一步。

第七步

完成安装。

第八步

Zabbix 前端已经就绪!默认的用户名是 Admin,密码是zabbix

至此,安装完成。

相关推荐

Java培训机构,你选对了吗?(java培训机构官网)

如今IT行业发展迅速,不仅是大学生,甚至有些在职的员工都想学习java开发,需求量的扩大,薪资必定增长,这也是更多人选择java开发的主要原因。不过对于没有基础的学员来说,java技术不是一两天就能...

产品经理MacBook软件清单-20个实用软件

三年前开始使用MacBookPro,从此再也不想用Windows电脑了,作为生产工具,MacBook可以说是非常胜任。作为产品经理,值得拥有一台MacBook。MacBook是工作平台,要发挥更大作...

RAD Studio(Delphi) 本月隆重推出新的版本12.3

#在头条记录我的2025#自2024年9月,推出Delphi12.2版本后,本月隆重推出新的版本12.3,RADStudio12.3,包含了Delphi12.3和C++builder12.3最...

图解Java垃圾回收机制,写得非常好

什么是自动垃圾回收?自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用...

Centos7 初始化硬盘分区、挂载(针对2T以上)添加磁盘到卷

1、通过命令fdisk-l查看硬盘信息:#fdisk-l,发现硬盘为/dev/sdb大小4T。2、如果此硬盘以前有过分区,则先对磁盘格式化。命令:mkfs.文件系统格式-f/dev/sdb...

半虚拟化如何提高服务器性能(虚拟化 半虚拟化)

半虚拟化是一种重新编译客户机操作系统(OS)将其安装在虚拟机(VM)上的一种虚拟化类型,并在主机操作系统(OS)运行的管理程序上运行。与传统的完全虚拟化相比,半虚拟化可以减少开销,并提高系统性能。虚...

HashMap底层实现原理以及线程安全实现

HashMap底层实现原理数据结构:HashMap的底层实现原理主要依赖于数组+链表+红黑树的结构。1、数组:HashMap最底层是一个数组,称为table,它存放着键值对。2、链...

long和double类型操作的非原子性探究

前言“深入java虚拟机”中提到,int等不大于32位的基本类型的操作都是原子操作,但是某些jvm对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。其实这里的某些jvm是指...

数据库DELETE 语句,还保存原有的磁盘空间

MySQL和Oracle的DELETE语句与数据存储MySQL的DELETE操作当你在MySQL中执行DELETE语句时:逻辑删除:数据从表中标记为删除,不再可见于查询结果物理...

线程池—ThreadPoolExecutor详解(线程池实战)

一、ThreadPoolExecutor简介在juc-executors框架概述的章节中,我们已经简要介绍过ThreadPoolExecutor了,通过Executors工厂,用户可以创建自己需要的执...

navicat如何使用orcale(详细步骤)

前言:看过我昨天文章的同鞋都知道最近接手另一个国企项目,数据库用的是orcale。实话实说,也有快三年没用过orcale数据库了。这期间问题不断,因为orcale日渐消沉,网上资料也是真真假假,难辨虚...

你的程序是不是慢吞吞?GraalVM来帮你飞起来性能提升秘籍大公开

各位IT圈内外的朋友们,大家好!我是你们的老朋友,头条上的IT技术博主。不知道你们有没有这样的经历:打开一个软件,半天没反应;点开一个网站,图片刷不出来;或者玩个游戏,卡顿得想砸电脑?是不是特别上火?...

大数据正当时,理解这几个术语很重要

目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢?今天我们就来聊聊那些避不开的大数据技术术语,梳理并...

秒懂列式数据库和行式数据库(列式数据库的特点)

行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hb...

AMD发布ROCm 6.4更新:带来了多项底层改进,但仍不支持RDNA 4

AMD宣布,对ROCm软件栈进行了更新,推出了新的迭代版本ROCm6.4。这一新版本里,AMD带来了多项底层改进,包括更新改进了ROCm的用户空间库和AMDKFD内核驱动程序之间的兼容性,使其更容易...

取消回复欢迎 发表评论: