一. 准备环境
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 sources
2.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-fpm
2 . 安装基于 MySQL 的 Zabbix Server 和 Zabbix Web
代码语言:txt复制root@Server~# yum install -y zabbix-server-mysql-3.2.11 zabbix-web-mysql
3 . 初始化 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-server
6 . 编辑 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 所示。
7. 完成安装
点击“NextStep”按钮,进入安装完成页面,如图 1.8 所示。
8. 进入登录页面
点击“Finish”按钮,进入 Zabbix Web 登录页面,如图 1.9 所示。
9. 进入监控仪表页面
输入默认用户名/密码:Admin/zabbix,完成登录后,进入监控仪表页面,如图 1.10 所示。
图 1.10 监控仪表页面
10. 修改页面语言及登录密码
点击监控仪表页面右上角的管理员图标,进入管理员设置页面,如图 1.11 所示。
分别在图 1.11 的 Password 和 Language 处修改管理员密码及页面语言。修改完成后, 点击“Update”按钮,页面语言改为中文信息,如图 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-agent
2. 编辑 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.service
1.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-mysql
Zabbix 数据库初始化命令如下。
代码语言: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 -p
2. 编辑 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=3306
3. 启动 zabbix-proxy
代码语言:txt复制[root@Agent2~]# systemctl start zabbix-proxy
systemctl enable zabbix-proxy
1. 安装 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.service
1.1.1 Zabbix Web 前端配置
Zabbix Web 前端配置,是在 Zabbix Server 的 Web 管理界面的具体监控配置。分为添加主机、添加主机群组、配置 Proxy、定义监控项等几步来完成。下面首先进行“添加主机” 配置。
1. 添加主机
在 Web 界面上依次选择:配置 ,主机 à,创建主机,如图 1.13 所示。
按图 1.14 中的指示,填写客户端相关信息。
客户端信息填写完成后选择“模板”选项卡,为客户端主机选取监控模板,如图 1.15 所示。
勾选适合该客户端主机的模板,并点击“选择”按钮,如图 1.16 所示。
依次点击“添加”按钮和“更新”按钮,完成客户端主机的添加操作,如图 1.17 所示。
添加完成后回到主机列表,右侧绿色的“ZBX”代表添加成功。如果是红色的“ZBX”则表示添加失败,此时将鼠标移动至红色“ZBX”上会有具体的提示信息,如图 1.18 所示。
2. 添加主机群组
在 Web 页面上依次选择:配置,主机群组,创建主机群组,如图 1.19 所示。
填写组名并选择组成员,如图 1.20 所示。
3. 配置 Proxy
(1) 添加Proxy
在 Web 界面上依次选择:管理 à agent 代理程序 à 创建代理,如图 1.21 所示。
填写 Proxy 主机名称,并点击“添加”按钮,完成 Proxy 创建,如图 1.22 所示
(2) 添加Agent 主机
添加步骤与 192.168.10.2 相同,在主机页面选择使用 agent 代理程序监测,如图
4. 自定义监控项、触发器和监控模板
(1) 创建监控项
依次点击“配置” à “主机”,在要配置的主机一栏上,点击“监控项”,如图 1.24 所示。
点击“创建监控项”,如图 1.25 所示。
填写监控项相关信息,并点击“添加”按钮完成监控项创建操作,如图 1.26 所示。
添加成功后,监控项列表里会出现“CpuNum”监控项,如图 1.27 所示。
(2) 创建触发器
依次点击“配置”à“主机”,在要配置的主机一栏上,点击“触发器”,如图 1.28 所示。
点击“创建触发器”,如图 1.29 所示。
按图 1.30 中的指示,填写触发器相关信息。
创建成功后,在触发器列表里能够看到“{192.168.10.2:system.cpu.util[,idle].avg(1m)}<15”,如图 1.31 所示。
1.1.1 Zabbix 主要功能
Zabbix 可以监控 Windows、Linux 等多种主机操作系统,也能够监控常见的应用程序系统,比如 Web 系统、邮件系统等。下面从服务器监控、SSH 应用程序监控、Web 系统监控、网络拓扑配置几个方面,举例讲解 Zabbix 的常见功能。
1. 服务器监控
Linux 服务器基本监控项都存在于模板 Template OS Linux 中,只需将客户端主机与该模板相关联,便可以实现服务器基础监控。本例中两台客户端主机均已与该模板关联。
2. 应用程序监控
以监控 sshd 为例,首先创建监控项,监控 sshd 进程的数量,如图 1.36 所示。
其次,创建触发器,当进程数量小于 1 时触发异常事件。依次点击配置 à 主机 à触发器,选择创建触发器,如图 1.37 所示。