先来说说什么是 Zabbix,Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,简单来说就是服务器的监控面板程序。这个程序是开源免费的,我使用它是主要是为了监控我的多台服务器运行状态。
Zabbix 由两部分构成,Zabbix Server(服务端) 与可选组件 Zabbix Agent(客户端)。Zabbix Server 可以通过 SNMP,Zabbix Agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。Zabbix 可以运行在 Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X 等各种平台上。

环境

CentOS 7、LNMP

部署 Zabbix 程序

Zabbix 需要 LNMP 或者 LAMP 环境,由于我的服务器已经部署了宝塔面板的 LNMP 环境,所以我需要基于宝塔安装 Zabbix Server。

1. 创建用户

为了安全考虑,Zabbix 只使用普通用户运行,假如你当前用户是 zhang3,那么你运行它,它便使用 zhang3 身份运行。但是如果你在 root 环境下运行 Zabbix,那么 Zabbix 将会主动使用 zabbix 用户来运行。假如你的系统没有名叫 zabbix 的用户,那么你需要创建一个用户,如下:

groupadd zabbix
useradd zabbix -g zabbix -s /sbin/nologin

2. 安装 Zabbix 所需依赖

这里我使用的是源码安装的方法,Zabbix 还可以使用容器安装,推荐的也是这两种安装方式。

yum -y install epel-release
yum -y install net-snmp-devel fping

3. 下载 Zabbix 源码并解压

截止发稿时最新版本为:5.0.1,本地电脑也下载一份以备后用。

wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz
tar -zxvf zabbix-5.0.1.tar.gz

4. 编译解压后的程序

# 查看其他参数说明 ./configure -h
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

若无报错则开始编译安装

make install

5. 在宝塔面板新建一个站点

注意不要创建数据库,因为宝塔自动创建的数据库 Zabbix Web 端大概率报错。

6. 建立 Zabbix 的数据库

  1. 使用命令的方式创建 zabbix 数据库,创建完成后去 宝塔面板-数据库-从服务器获取 就可以看到新建的数据库了。
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by ''<password>'';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> quit;
  1. 解压前面下载到本地的源码文件,进入 /database/mysql 目录,分别按顺序导入 schema.sql、images.sql、data.sql 这三个文件,这样数据库就创建完成并导入初始数据了。
mysql> show databases;
mysql> use zabbix;
Database changed
mysql> source /usr/local/zabbix-5.0.1/database/mysql/schema.sql;
mysql> source /usr/local/zabbix-5.0.1/database/mysql/images.sql;
mysql> source /usr/local/zabbix-5.0.1/database/mysql/data.sql;
mysql> quit;

7. 更新 Zabbix 的配置文件

  1. 使用
vi /usr/local/zabbix/etc/zabbix_server.conf

更改 DBName,DBUser和DBPassword 这三个值,即上面创建的 zabbix 数据库名称、用户名、密码

  1. 在宝塔面板安全里放行 10051 端口,也可以使用下面的命令直接关闭 Centos 防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 开机不启动防火墙
systemctl disable firewalld.service

8. 修改宝塔 PHP 配置

将下图的红框中的值改为 300,删除禁用函数中的 putenv 函数

9. 启动 Zabbix 程序

/usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_agentd

将上面的两行命令添加到 /etc/rc.d/rc.local 文件中,即可实现开机自启

部署 Zabbix Web 端

将本地解压的 Zabbix 源码文件中的 ui 目录中的所有内容,上传到刚才新建的站点根目录中,访问站点并根据流程安装程序,开始使用。

监控多个服务器

只需要在你想要监控的服务器上部署 Zabbix Agent 程序,放行 10050 端口,然后在你的服务端的 Web 后台添加相应的主机即可。这里不再赘述了,部署方法参照 官网 以及这个视频:主机监控部署


Never give up your dreams.