Zabbix 主要有以下几个组件组成:

  • Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件。它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。

  • Zabbix Agent:Zabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 Zabbix Server 处理。

    Zabbix Agent 目前有两个版本:Zabbix agent 和 Zabbix agent 2。前者是 C 语言开发的,几乎支持所有的主流平台。而后者是 Go 开发的,优点包括:能有效降低 TCP 连接的数量;支持更高的并发;易于扩展。目标是替代 Zabbix agent ,目前只支持 Linux 和Windows 两个平台。

  • Zabbix Proxy:代替 Zabbix Server 接收监控数据并进行预处理,预处理后的数据批量发送给 Zabbix Server,这样可减轻 Zabbix Server 的压力。

  • Web 页面:可通过 Web 页面来管理和维护被监控设备的配置信息、查看监控数据、配置告警等。

  • 数据库:负责存储被监控设备的配置信息和监控数据。支持的数据库有:MySQL(Percona,MariaDB),Oracle,PostgreSQL,TimescaleDB for PostgreSQL,SQLite。

本文主要包括以下四部分:

1. 安装 Zabbix Server

2. 安装 Web 组件

3. 配置 Zabbix Web 页面

4. 安装 Zabbix Agent

安装 Zabbix Server

部署环境如下表所示。

角色 IP OS Zabbix 版本
Zabbix Server 10.0.0.228 CentOS 7.9 Zabbix 6.0.2
Zabbix Agent 10.0.0.232 CentOS 7.9 Zabbix 6.0.2

下面开始安装 Zabbix Server,具体步骤如下。

(1)准备工作

关闭防火墙和 SElinux

# systemctl stop firewalld.service
# systemctl disable firewalld.service # setenforce 0
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

(2)下载 zabbix 软件包:

下载地址:https://www.zabbix.com/download

我这里使用的是源码包。

(3)解压源码包,建立软链接:

# cd /usr/src/
# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.2.tar.gz
# tar xvf zabbix-6.0.2.tar.gz
# ln -s zabbix-6.0.2 zabbix

(4)创建 zabbix 用户:

# groupadd --system zabbix
# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

(5)创建 zabbix 数据库:

这里将 MySQL 作为 zabbix 的后端数据库,我这里使用的是 MySQL 8.0.27 二进制版本。

下面开始安装 MySQL 8.0.27 二进制版本。

# cd /usr/local/
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# ln -s mysql-8.0.27-linux-glibc2.12-x86_64 mysql

编辑 MySQL 配置文件

# vim /etc/my.cnf
[client]
socket=/data/mysql/3306/data/mysql.sock [mysqld]
#server configuration
user=mysql
datadir=/data/mysql/3306/data
basedir=/usr/local/mysql
port=3306
socket=/data/mysql/3306/data/mysql.sock
log_timestamps=system
log_error=/data/mysql/3306/data/mysqld.err
skip_name_resolve #Replication Framework
server_id=1
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=ON
log_bin=mysql-bin
binlog_format=ROW

创建数据目录,初始化实例,启动实例

# mkdir -p /data/mysql/3306/data/
# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

下面创建 zabbix 数据库和用户。

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix_admin'@'%' identified with mysql_native_password by 'zabbix_pass';
mysql> grant all privileges on zabbix.* to 'zabbix_admin'@'%';

接着初始化数据。

# cd /usr/src/zabbix/database/mysql/
# mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < schema.sql
# mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < images.sql
# mysql -h127.0.0.1 -uzabbix_admin -pzabbix_pass zabbix < data.sql

(6)编译安装 Zabbix Server:

# yum install gcc mysql-devel libevent-devel libcurl-devel libxml2-devel net-snmp-devel
# cd /usr/src/zabbix
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
# make install

编译时注意:

1. configure 命令中的 --prefix 是安装目录,如果不设置,则默认是 /usr/local。

2. 在 make install 的过程中,如果出现如下错误:

/bin/ld: warning: libcrypto.so.1.1, needed by /usr/local/mysql/lib/libmysqlclient.so, not found (try using -rpath or -rpath-link)
/bin/ld: warning: libssl.so.1.1, needed by /usr/local/mysql/lib/libmysqlclient.so, not found (try using -rpath or -rpath-link)

则需要对依赖的两个库做个软链接。具体命令如下:

# find / -name libssl.so.1.1
/usr/local/mysql-8.0.27-linux-glibc2.12-x86_64/lib/private/libssl.so.1.1
# ln -s /usr/local/mysql-8.0.27-linux-glibc2.12-x86_64/lib/private/libssl.so.1.1 /usr/lib64
# ln -s /usr/local/mysql-8.0.27-linux-glibc2.12-x86_64/lib/private/libcrypto.so.1.1 /usr/lib64

编译完成后,我们看看 /usr/local/zabbix/ 目录的内容。

# tree /usr/local/zabbix
/usr/local/zabbix
├── bin
│ ├── zabbix_get
│ ├── zabbix_js
│ └── zabbix_sender
├── etc
│ ├── zabbix_agentd.conf
│ ├── zabbix_agentd.conf.d
│ ├── zabbix_server.conf
│ └── zabbix_server.conf.d
├── lib
│ └── modules
├── sbin
│ ├── zabbix_agentd
│ └── zabbix_server
└── share
├── man
│ ├── man1
│ │ ├── zabbix_get.1
│ │ └── zabbix_sender.1
│ └── man8
│ ├── zabbix_agentd.8
│ └── zabbix_server.8
└── zabbix
├── alertscripts
└── externalscripts

14 directories, 11 files

其中,

etc 是配置文件目录。

alertscripts 是告警脚本目录。

externalscripts 是外部脚本目录。

(7)修改配置文件

首先修改 Zabbix Server 的配置文件,修改后的配置如下。

# grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix_admin
DBPassword=zabbix_pass
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

这里主要修改了连接数据库的相关参数。

其次修改 Zabbix Agent 的配置文件,修改后的配置如下。

# grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server

这里为什么也要修改 Zabbix Agent 的配置文件呢?因为 Zabbix Server 自身及所在服务器的监控数据也需要 Zabbix Agent 来采集,所以,Zabbix Agent 同样也需要安装并启动。

(8)配置服务管理脚本

针对 Zabbix Server,主要修改三处:1. 设置 zabbix_server 的路径;2. 设置配置文件的路径;3. 启动时指定配置文件。

# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_server
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
CONFIG_FILE="/usr/local/zabbix/etc/zabbix_server.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONFIG_FILE # cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_server /etc/init.d/

针对 Zabbix Agent,同样也是调整这三处的内容。

# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONGIG_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONGIG_FILE
...

# cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

(9)启动 Zabbix Server 和 Zabbix Agent

# service zabbix_server start
# service zabbix_agentd start

启动 Zabbix Server 的过程中,如果提示以下错误,

Starting Zabbix Server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory

同样可通过设置软链接来解决。

# ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib64

(10)将 Zabbix Server 和 Zabbix Agent 设置为开机自启动。

# chkconfig zabbix_server on
# chkconfig zabbix_agentd on

安装 Web 组件

安装完 Zabbix Server,接下来我们安装 Web 组件。

这里使用的 Web 服务器是 httpd,也可使用 Nginx。

(1)安装 httpd 和 PHP。

方便起见,这里直接通过 yum 安装 httpd 和 PHP。Zabbix 从 5.0 开始,要求 PHP 的版本不低于 7.2。但在 CentOS 7 中,yum 源中默认的是 PHP 5.4.16。所以,这里需要安装额外的 epel 和 webtatic 源。

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install httpd php72w-cli php72w-common php72w-gd php72w-ldap php72w-mbstring php72w-mysqlnd php72w-xml php72w-bcmath mod_php72w -y

(2)将 Zabbix 源码包中的 PHP 文件复制到 httpd 的根目录下。

# mkdir -p /var/www/html/zabbix
# cp -r /usr/src/zabbix/ui/* /var/www/html/zabbix
# chown -R apache.apache /var/www/html/

(3)修改 php 的配置文件。

# vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai

注意,这里给出的只是最小需求值,可根据实际需要调大。

(4)启动 httpd 服务

# service httpd start

(5)将 httpd 服务设置为开机自启动

# chkconfig httpd on

配置 Zabbix Web 页面

安装完 Web 组件,最后我们开始配置 Zabbix Web 页面。

(1)登录 Zabbix Server Web 首页。

浏览器中输入 http://10.0.0.228/zabbix ,其中,10.0.0.228 是 Zabbix Server 的地址

将默认的语言调整为 Chinese(zh_CN) ,点击下一步。

(2)依赖性检查。

主要是检查 php 的插件、配置是否满足要求。如果不满足,最右边的 OK 将显示为 Fail。

(3)配置数据库连接信息。

因为我们的演示环境 Zabbix Server 和数据库是在一台主机上部署,所以,这里 Database host 设置的是 127.0.0.1。生成环境建议分开部署。

(4)设置 Zabbix Server 信息

(5)检查配置是否正确。

(6)安装页面

进入Zabbix的登录界面,默认的用户名为Admin,密码为zabbix,管理员权限。

登录成功后的页面如下所示:

安装 Zabbix Agent

同样的源码包,在被监控主机(192.168.244.10)上部署。

(1)编译安装 Zabbix Agent:

# groupadd --system zabbix
# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
# cd /usr/src/
# tar xvf zabbix-6.0.2.tar.gz
# ln -s zabbix-6.0.2 zabbix
# yum install gcc pcre-devel -y
# cd zabbix
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make install

(2)修改配置文件:

# grep -Ev '^$|^#' /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.228
ServerActive=127.0.0.1
Hostname=node1

其中,

  • Server:被动模式下 Zabbix Server 的地址,在这种模式下,Zabbix Server 发送请求,Agent 才会响应数据。被动模式是 Zabbix Agent 默认的工作模式。

  • ServerActive:主动模式下 Zabbix Server 的地址,在这种模式下,Agent 会将采集到的数据主动发送给 Zabbix Server。

  • Hostname:主机名。注意,这里的主机名并不一定要是主机的 hostname,也可以是 IP 或其它有标识性的字符串,只要保证这个配置在 Zabbix Server 监控的主机内全局唯一即可。Hostname 只适用于主动模式,被动模式下无需设置。

(3)配置服务管理脚本:

# vim /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONGIG_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
echo -n $"Starting $prog: "
daemon $ZABBIX_BIN -c $CONGIG_FILE
...

# cp /usr/src/zabbix/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

(4)启动 Zabbix Agent:

# service zabbix_agentd start

(5)设置开机自启动:

# chkconfig zabbix_agentd on

CentOS 7 源码安装 Zabbix 6.0的更多相关文章

  1. CentOS 7源码安装zabbix

    一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统 ...

  2. 源码安装zabbix

    源码安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     欢迎加入:高级运维工程师之路 598432640 前言:参考网上多篇源码安装的连接,自己把安装过程丢在这 ...

  3. CentOS下源码安装Apache2.4+PHP5.4+MySQL5.5

    一.准备(把所有的源文件放在‘/home/yuanjun’目录下) apr http://mirror.bjtu.edu.cn/apache/apr/apr-1.4.6.tar.gz apr-util ...

  4. 以源码安装的lamp环境为依托,源码安装zabbix监控系统

    1.源码安装lamp环境 1)安装httpd, 以源码httpd-2.4.33为基础,解压后,执行./configure --prefix=/usr/local/ --sysconfdir=/etc/ ...

  5. CentOS Linux release 7.3源码安装zabbix

    CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...

  6. CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)

    1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...

  7. CentOS源码安装 Tomcat/8.0.24

    依个人的习惯,喜欢将源码安装在/usr/local这个目录下面: 第一步:下载源码 wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.2 ...

  8. 在 CentOS 下源码安装 Xen

    http://www.vpsee.com/2010/04/install-xen-on-centos-from-source/ 在 CentOS 源码编译安装 Xen 的过程和在 Debian 上编译 ...

  9. CentOS6源码安装zabbix服务器

    1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...

随机推荐

  1. SQL代码规范

    1.  建表规约 1)   表中字段名称 a)    表达是否概念的字段,必须使用is_xxx的方式命名,数据类型是bit b)    小数类型为decimal,禁止使用float和double. 说 ...

  2. 论文翻译:2022_PACDNN: A phase-aware composite deep neural network for speech enhancement

    论文地址:PACDNN:一种用于语音增强的相位感知复合深度神经网络 引用格式:Hasannezhad M,Yu H,Zhu W P,et al. PACDNN: A phase-aware compo ...

  3. Solution -「USACO 2020.12 P」Sleeping Cows

    \(\mathcal{Description}\)   Link.   有 \(n\) 个牛棚,大小为 \(t_{1..n}\),\(n\) 头奶牛,大小为 \(s_{1..n}\),奶牛只能住进不小 ...

  4. .NET官方封装的Win32API类库

    大部分朋友在使用C#.NET调用Win32API时都不清楚API函数的声明,要么就是抄网上的代码,但是总会遇到各种各样奇奇怪怪难以解决的问题,打算自己封装又发现工作量实在太大. 其实完全没有必要自己动 ...

  5. suse 12安装 python-pip

    文章目录 方法一 安装setup-tools 安装pip 方法二 配置阿里云pip源 pip安装pyotp 方法一 安装setup-tools linux-oz6w:~ # wget https:// ...

  6. 『无为则无心』Python面向对象 — 53、对Python中封装的介绍

    目录 1.继承的概念 2.继承的好处 3.继承体验 4.单继承 5.多继承 1.继承的概念 在Python中,如果两个类存在父子级别的继承关系,子类中即便没有任何属性和方法,此时创建一个子类对象,那么 ...

  7. tomcat 配置https证书 ssl

    修改tomcat-conf-server.xml,原配置文件是 <Connector connectionTimeout="20000" port="8080&qu ...

  8. 轩辕展览-为什么要做VR虚拟展厅设计?

    沉浸感,有趣和互动体验VR虚拟展厅设计给客户带来高度的沉浸感和互动体验,给客户一种真实的感觉,让客户更愿意参与,使商家的宣传更加客观. 展示方式多样化 ,增加宣传优势在展示产品或企业时,VR全景可达到 ...

  9. NSSCTF-easyupload3.0

    打开环境,是一个上传的界面,点击下面的会回显出上传成功之后的路径,选择上传文件可以直接上传文件 尝试各种文件的上传(菜狗不知道怎么一下做出来,只好一个一个试),最后试出来的文件是.htaccess文件 ...

  10. WPF中常用控件(TreeView, ComboBox, DataGrid, ListView)使用MVVM模式绑定的demo

    之前几篇关于TreeView的博客中只是贴了源代码,并没有把整个项目上传到github.最近就想着把我常用的几个控件做成一个demo,这样也方便自己以后查看.本人也是WPF新手,但是我并没有打算就往这 ...