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. shell——trap捕捉信号(附信号表)

    trap捕捉信号有三种形式 第一种:trap "commands" signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令. 例 ...

  2. 利用LNMP实现wordpress站点搭建

    一.部署MySQL 1.1 二进制安装mysql5.6 # 准备用户,依赖包,二进制程序 [root@nginx ~]# yum install -y libaio perl-Data-Dumper ...

  3. python篇第10天【For 循环语句】

      实例 #!/usr/bin/python # -*- coding: UTF-8 -*- for a in 'Henry': print "This is ", a   fru ...

  4. python的namespace的理解

    Python命名空间的本质   python中的名称空间是名称(标识符)到对象的映射. 具体来说,python为模块.函数.类.对象保存一个字典(__dict__),里面就是重名称到对象的映射. -- ...

  5. tep集成mitmproxy录制流量自动生成用例

    使用 操作过程非常简单,流程如下: ①配置过滤域名 必须配置,不然会有很多无效流量造成数据冗余. ②启动代理 「示例」使用了反向代理,tep自带FastApi启动Mock服务: 「实际」使用正向代理, ...

  6. [LeetCode]20.有效的括号(Java)

    原题地址: valid-parentheses 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类 ...

  7. aspnetcore 使用serilog日志

    而在实际项目开发中,使用第三方日志框架来记录日志也是非常多的,首先一般基础的内置日志记录器在第三方日志框架中都有实现,然后很多第三方日志框架在功能上更强大和丰富,能满足我们更多的项目分析和诊断的需求. ...

  8. Django的后台管理系统Admin(5)

    Django的后台管理系统就是为了方便管理员管理网站,所以django自带了一个后台管理系统,接下来记录一下如何使用这个后台的管理系统. 首先我们要进入后台管理系统,就要有一个管理员的账号,先来创建有 ...

  9. JVM性能调优与实战进阶篇-上

    ZGC 诞生原因 Java生态非常强大,但还不够,有些场景仍处于劣势,而ZGC的出现可以让Java语言抢占其他语言的某些特定领域市场.比如 谷歌主导的Android手机系统显示卡顿. 证券交易市场,实 ...

  10. 实例演示:Excel实现数据更新获取,并根据公式计算后展示

    ​ 我们数据库中有一些明细数据,希望我们可以使用Excel的公式,对报表数据进行,最后展示在自定义的行列固定报表中. 如下图:从左侧表中获取大类名称为饮料.海鲜.日用品,从2016/11/11到201 ...