一. 准备环境
1. 环境初始化
(1)配置域名
代码语言:txt复制hostnamectl set-hostname server
hostnamectl set-hostname agent01
hostnamectl set-hostname agent02
cat > /etc/hosts << EOF
192.168.10.1 server
192.168.10.2 agent01
192.168.10.3 agent02
EOF(2)关闭防火墙, 关闭内核,
代码语言:txt复制systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config(3)时间同步
代码语言:txt复制yum install chrony -y
systemctl enable chronyd
systemctl start chronyd
chronyc sources2.yum源安装
代码语言:txt复制 wget -O /etc/yum.repos.d/aliyun.base.repo http://mirrors.aliyun.com/repo/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm二. 安装MySQL
1.在server主机上安装数据库
代码语言:txt复制yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb 代码语言:txt复制也有可能安装的MySQL数据库第一次让设置密码,命令如下:
ph
首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,接下来测试登录
mysql -uroot -ppassword
完成。2.登录mysql创建数据库并授权
代码语言:txt复制 mysql ##初始密码为空
mysql> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
USE mysql;
UPDATE mysql.user SET password = PASSWORD('zabbix') WHERE user = 'root'; ##设置root 账户密码为'zabbix'
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix'; ##授权zabbix 账户使用密码'zabbix'本地访问 zabbix 数据库
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix'; ##授权zabbix 账户使用密码'zabbix'远程访问 zabbix 数据库
mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix'; ##授权zabbix 账户使用密码'zabbix'本地访问 zabbix_proxy 数据库
mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; ##授权zabbix 账户使用密码'zabbix'远程访问 zabbix_proxy 数据库
mysql> FLUSH PRIVILEGES;
mysql> quit;三.部署 LNMP Zabbix Server
在 部 署 Zabbix Server 之 前 , 首 先 要 配 置 LNMP 环 境 , LNMP 是 Linux Nginx MySQL PHP 的简写,是 Linux 系统下常用的 php 脚本语言运行环境。
1 . 安装 Nginx 及 php-fpm
代码语言:txt复制root@Server~# yum install -y epel-release
root@Server~# yum install -y nginx php-fpm2 . 安装基于 MySQL 的 Zabbix Server 和 Zabbix Web
代码语言:txt复制root@Server~# yum install -y zabbix-server-mysql-3.2.11 zabbix-web-mysql3 . 初始化 Zabbix 数据库
代码语言:txt复制root@Server~# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -p zabbix 4 . 编辑 Zabbix Server 配置文件,修改数据库连接信息
代码语言:txt复制root@Server~# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password> ##此处输入实际的数据库账户密码,本例中为 zabbix`
5 . 启动 zabbix-server
代码语言:txt复制root@Server~# systemctl start zabbix-server
root@Server~# systemctl enable zabbix-server6 . 编辑 Nginx 配置文件
在 Nginx 配置文件中,添加如下表行号的内容,添加 php 模块支持。
代码语言:txt复制root@Server~# vim /etc/nginx/nginx.conf
user nginx;
worker\_processes auto;
error\_log /var/log/nginx/error.log;
pid /run/nginx.pid;
#Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/\*.conf;
events {
worker\_connections 1024;
}
http {
log\_format main '$remote\_addr - $remote\_user $time\_local "$request" '
'$status $body\_bytes\_sent "$http\_referer" '
'"$http\_user\_agent" "$http\_x\_forwarded\_for"';
access\_log /var/log/nginx/access.log main;
sendfile on;
tcp\_nopush on;
tcp\_nodelay on;
keepalive\_timeout 65;
types\_hash\_max\_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
Load modular configuration files from the /etc/nginx/conf.d directory.
# See [http://nginx.org/en/docs/ngx\_core\_module.html#include](http://nginx.org/en/docs/ngx_core_module.html#include)for more information.include /etc/nginx/conf.d/\*.conf;
server {
listen 80 defaultserver;
listen :::80 default\_server;
server_name ;
index index.html index.php; ##42行
root /usr/share/nginx/html;
#Load configuration files for the default server block.
include /etc/nginx/default.d/\*.conf;
location / {
}
location ~ .php$ { ##47行
fastcgi_pass 127.0.0.1:9000; ##48行
fastcgi_index index.php; ##49行
fastcgi_split_path_info ^(. .php)(/. )$; ##50行
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ##51行
fastcgi_param PATH_INFO $fastcgi_path_info; ##52行
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; ##53行
include fastcgi_params; ##54行
} ##55行
error\_page 404 /404.html; location = /40x.html {
}
error\_page 500 502 503 504 /50x.html; location = /50x.html {
}
}
}7 . 编辑 php.ini 文件
在 php.ini 文件中,修改如下配置项。
代码语言:txt复制root@Server~# vim /etc/php.ini
post_max_size = 16M ##672行
max_execution_time = 300 ##384
max_input_time = 300 ##394
memory_limit = 128M ##405
upload_max_filesize = 2M ##800
date.timezone = Asia/Shanghai ##878`
8 . 复制 Web 目录
拷贝 Zabbix Server 的 Web 目录到 Nginx 主目录。
代码语言:txt复制root@Server~# cp -rp /usr/share/zabbix /usr/share/nginx/html/`
9 . 启动 Nginx 及 php-fpm
代码语言:txt复制root@Server~# systemctl start nginx php-fpm
root@Server~# systemctl enable nginx php-fpm`
10 . 安装 Zabbix Web 端
在浏览器中访问 http://192.168.10.1/zabbix/index.php,将会进入到 Zabbix 安装引导页面.

3. 检测配置项
点击“NextStep”按钮,Zabbix 将自动检测自身运行所依赖的 php 配置项。显示 “OK” 表示检测通过;显示“Fail”表示检测失败。此时,用户可根据建议值继续修改 php.ini 文件, 然后重启 php-fpm 服务,并刷新页面,继续安装步骤,如图 1.4 所示。
图 1.4 自动检测依赖的 php 配置项
4. 填写配置
如果检测全部通过,点击“NextStep”按钮,进入数据库配置页面,并填写正确的配置, 如图

5. 设置 Zabbix Server 的主机名及端口等信息
点击“NextStep”按钮,进入细节设置页面。此处可以设置 Zabbix Server 的主机名及端口等信息,保持默认值,如图 1.6 所示。

6. 信息确认
点击“NextStep”按钮,进入信息确认页面,如图 1.7 所示。
图 1.7 信息确认7. 完成安装
点击“NextStep”按钮,进入安装完成页面,如图 1.8 所示。
图 1.8 完成安装8. 进入登录页面
点击“Finish”按钮,进入 Zabbix Web 登录页面,如图 1.9 所示。
图 1.9 登录页面9. 进入监控仪表页面
输入默认用户名/密码:Admin/zabbix,完成登录后,进入监控仪表页面,如图 1.10 所示。
图 1.6 设置 Zabbix Server 的主机名及端口信息图 1.10 监控仪表页面
10. 修改页面语言及登录密码
点击监控仪表页面右上角的管理员图标,进入管理员设置页面,如图 1.11 所示。
图 1.11 修改页面语言及登录密码
分别在图 1.11 的 Password 和 Language 处修改管理员密码及页面语言。修改完成后, 点击“Update”按钮,页面语言改为中文信息,如图 1.12 所示。
图 1.12 中文界面1.1.1 部署Zabbix Agent 192.168.10.2
下面是在 192.168.10.2上安装、部署 Zabbix Agent 的步骤。
1. 安装 Zabbix Agent
执行下面的命令,安装 Zabbix Agent 软件。
代码语言:txt复制rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
yum install -y zabbix-agent2. 编辑 Zabbix Agent 配置文件
Zabbix Agent 配置文件中,修改以下配置项:
代码语言:txt复制[root@Agent1~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.1 ##95行
ServerActive=192.168.10.1 ##134行
Hostname=agent01 #Agent 本地的名称,此名称需要与 server 端的 Web 页面上的主机名称一致,名称自定义3. 启动 Zabbix Agent
代码语言:txt复制[root@Agent1~]# systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service1.1.2 部署Zabbix Proxy 192.168.10.3
在 192.168.10.3上,安装基于 MySQL 的 Zabbix Proxy。
1. 安装基于 MySQL 的 Zabbix Proxy
代码语言:txt复制rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
[root@Agent2~]# yum install -y zabbix-proxy-mysqlZabbix 数据库初始化命令如下。
代码语言:txt复制[root@Agent2~]#yum install -y mysql && zcat /usr/share/doc/zabbix-proxy-mysql-3.2.*/schema.sql.gz | mysql -h192.168.10.1 -uzabbix zabbix_proxy -p2. 编辑 Zabbix Proxy 配置文件
编辑 Zabbix Proxy 配置文件,修改以下信息。
代码语言:txt复制[root@Agent2~]# vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.10.1
Hostname=zabbix proxy ##Proxy 本地的名称,此名称需要与将来在 server 端的Web 页面上的代理
程序名称一致,名称自定义
DBHost=192.168.10.1 ##128行
DBName=zabbix_proxy ##167
DBUser=zabbix ##182
DBPassword= ##输入实际的密码,本实验中为 zabbix
DBPort=33063. 启动 zabbix-proxy
代码语言:txt复制[root@Agent2~]# systemctl start zabbix-proxy
systemctl enable zabbix-proxy1. 安装 Zabbix Agent 192.168.10.3
在 192.168.10.3 主机上安装 agent,操作步骤与 192.168.10.2 相同。修改 Zabbix Agent 配置文件内容如下:
代码语言:txt复制yum install -y zabbix-agent
[root@Agent2~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.3 #指向 Proxy 地址 97行
ServerActive=192.168.10.3 #指向 Proxy 地址
Hostname=aget02 #Agent 本地的名称,需要与将来在 Server 端的 Web 页面上的主机名称一致,名称自定义
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service1.1.1 Zabbix Web 前端配置
Zabbix Web 前端配置,是在 Zabbix Server 的 Web 管理界面的具体监控配置。分为添加主机、添加主机群组、配置 Proxy、定义监控项等几步来完成。下面首先进行“添加主机” 配置。
1. 添加主机
在 Web 界面上依次选择:配置 ,主机 à,创建主机,如图 1.13 所示。
图 1.13 创建主机按图 1.14 中的指示,填写客户端相关信息。
图 1.14 填写客户端相关信息客户端信息填写完成后选择“模板”选项卡,为客户端主机选取监控模板,如图 1.15 所示。
图 1.15 选取监控模板
勾选适合该客户端主机的模板,并点击“选择”按钮,如图 1.16 所示。
图 1.16 选择模板依次点击“添加”按钮和“更新”按钮,完成客户端主机的添加操作,如图 1.17 所示。
图 1.17 更新模板添加完成后回到主机列表,右侧绿色的“ZBX”代表添加成功。如果是红色的“ZBX”则表示添加失败,此时将鼠标移动至红色“ZBX”上会有具体的提示信息,如图 1.18 所示。
图 1.18 主机添加成功2. 添加主机群组
在 Web 页面上依次选择:配置,主机群组,创建主机群组,如图 1.19 所示。
图 1.19 创建主机群组填写组名并选择组成员,如图 1.20 所示。
图 1.20 填写组名并选择组成员3. 配置 Proxy
(1) 添加Proxy
在 Web 界面上依次选择:管理 à agent 代理程序 à 创建代理,如图 1.21 所示。
图 1.21 创建代理填写 Proxy 主机名称,并点击“添加”按钮,完成 Proxy 创建,如图 1.22 所示
图 1.22 完成代理创建(2) 添加Agent 主机
添加步骤与 192.168.10.2 相同,在主机页面选择使用 agent 代理程序监测,如图
图 1.23 添加 agent 主机4. 自定义监控项、触发器和监控模板
(1) 创建监控项
依次点击“配置” à “主机”,在要配置的主机一栏上,点击“监控项”,如图 1.24 所示。
图 1.24 准备设置监控项点击“创建监控项”,如图 1.25 所示。
图 1.25 创建监控项填写监控项相关信息,并点击“添加”按钮完成监控项创建操作,如图 1.26 所示。
图 1.26 完成监控项创建添加成功后,监控项列表里会出现“CpuNum”监控项,如图 1.27 所示。
图 1.27 监控项列表信息(2) 创建触发器
图 1.28 准备创建触发器依次点击“配置”à“主机”,在要配置的主机一栏上,点击“触发器”,如图 1.28 所示。
点击“创建触发器”,如图 1.29 所示。
图 1.29 创建触发器按图 1.30 中的指示,填写触发器相关信息。
图 1.30 填写触发器相关信息创建成功后,在触发器列表里能够看到“{192.168.10.2:system.cpu.util[,idle].avg(1m)}<15”,如图 1.31 所示。
图 1.31 已创建触发器信息列表1.1.1 Zabbix 主要功能
Zabbix 可以监控 Windows、Linux 等多种主机操作系统,也能够监控常见的应用程序系统,比如 Web 系统、邮件系统等。下面从服务器监控、SSH 应用程序监控、Web 系统监控、网络拓扑配置几个方面,举例讲解 Zabbix 的常见功能。
1. 服务器监控
Linux 服务器基本监控项都存在于模板 Template OS Linux 中,只需将客户端主机与该模板相关联,便可以实现服务器基础监控。本例中两台客户端主机均已与该模板关联。
2. 应用程序监控
以监控 sshd 为例,首先创建监控项,监控 sshd 进程的数量,如图 1.36 所示。
图 1.36 创建程序监控项其次,创建触发器,当进程数量小于 1 时触发异常事件。依次点击配置 à 主机 à触发器,选择创建触发器,如图 1.37 所示。
图 1.37 创建触发器

