部署前准备:
1、Centos7虚拟机两台,内存为512M、配置好本地yum源
2、配置主机名:监控端为: zabbix-server、被监控端为: web1
[root@localhost ~]# hostnamectl set-hostname zabbix-server
[root@localhost ~]# hostnamectl set-hostname web1
3、配置VMnet8(NAT模式),使用dhcp在192.168.6.100 ~ 192.168.6.10之间分配IP给两台主机,监控端zabbix-server的IP地址为192.168.6.100 、被监控端web1的IP地址为192.168.6.101。具体步骤如下 :
1、在VMware上找到编辑 ——》 虚拟网络编辑器 ——》点击更改设置 ——》点击VMnet8网卡
2、DHCP配置、NAT配置、虚拟机设置
4、监控端zabbix-server需配置防火墙策略、彻底禁用(disabled)selinux,或者配置为宽松模式(permissive)。
[root@zabbix-server ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@zabbix-server ~]# firewall-cmd --reload
[root@zabbix-server ~]# firewall-cmd --zone=public --list-ports
查看当前系统的selinux模式
[root@zabbix-server ~]# getenforce
Enforcing
配置selinux为宽松模式(permissive) :
[root@zabbix-server ~]# setenforce 0 && getenforce //确认
Permissive
彻底禁用(disabled)selinux :
[root@zabbix-server ~]# vim /etc/selinux/config
SELINUX=disabled
:wq //保存并退出
因为selinux已经整合到内核中,需要重启生效
[root@zabbix-server ~]# reboot
搭建Zabbix平台
✏️ 监控端Zabbix Server,基于网络YUM源搭建LNMP( Linux + Nginx + Mariadb + PHP)环境
基于清华镜像仓库,安装网络YUM源
安装 epel 源 :
[root@zabbix-server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm
安装 remi 源: :
[root@zabbix-server ~]# yum -y install yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装 Yum 源管理工具 :
[root@zabbix-server ~]# yum install yum-utils
安装 nginx、php
根据Zabbix Documentation 5.0 官方说明 :所需的最低PHP版本已从5.4.0升级到7.2.0。
The minimum required PHP version has been upped to 7.2.0 from 5.4.0.
Zabbix Documentation 5.0 官方说明,直达链接 :Zabbix Documentation 5.0
安装nginx版本 1.16 :
[root@zabbix-server ~]# yum -y install nginx
安装php版本 7.3 :
[root@zabbix-server ~]# yum install -y php73-php-fpm php73-php-cli php73-php-bcmath \
php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt \
php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto \
php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode \
php73-php-snmp php73-php-soap php73-php-xml
安装mariadb数据库服务器、客户端、数据库依赖包 :
[root@zabbix-server ~]# yum -y install mariadb-server mariadb mariadb-devel
检查nginx、php是否安装成功 :
[root@zabbix-server ~]# rpm -qa |grep -aiE "nginx|php73|mariadb"
配置nginx动静分离并测试
1、查询nginx配置文件的路径 :
[root@zabbix-server ~]# rpm -ql nginx | grep "nginx.conf"
/etc/nginx/nginx.conf ⭐️
/etc/nginx/nginx.conf.default
2、配置nginx动静分离 :⭐️标注的地方,需修改或者额外添加的内容
[root@zabbix-server ~]# vim /etc/nginx/nginx.conf
......
http {
server {
listen 80; ⭐️
server_name localhost; ⭐️
......
location / {
root /usr/share/nginx/html; ⭐️
index index.php index.html index.htm; ⭐️
}
......
# 缓存php脚本执行的结果(网页内容),buffers是缓存的意思,8个、16k的脚本
fastcgi_buffers 8 16k; ⭐️
# 缓存php生成的数据包的包头封装信息
fastcgi_buffer_size 32k; ⭐️
# 连接php的超时时间
fastcgi_connect_timeout 300; ⭐️
# 发送请求的超时时间
fastcgi_send_timeout 300; ⭐️
# 读取请求的超时时间
fastcgi_read_timeout 300; ⭐️
location ~ \.php$ { ⭐️
root /usr/share/nginx/html; ⭐️
fastcgi_pass 127.0.0.1:9000; ⭐️
fastcgi_index index.php; ⭐️
include fastcgi.conf; ⭐️
}⭐️
}
}
3、配置nginx、php开机自启动并立即启动 :
[root@zabbix-server ~]# systemctl enable nginx --now
[root@zabbix-server ~]# systemctl enable php73-php-fpm --now
4、编写nginx动静分离测试页面 :
[root@zabbix-server ~]# vim /usr/share/nginx/html/test.php
<?php
print phpinfo();
?>
:wq //报错并退出
5、使用浏览器访问:http://192.168.6.100/test.php ,可以看到php的详细信息
✏️ 从zabbix官网仓库下载 zabbix版本:5.0.10
监控端zabbix-server和被监控端web1都配置,下面以zabbix-server为例 :
[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
清除YUM缓存、显示可用仓库 :
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum repolist -v
✏️ 安装Zabbix Server、Zabbix WEB、Zabbix Database(mariadb) 、Zabbix Agent
查询关于zabbix的软件包 :
[root@zabbix-server ~]# yum list | grep "zabbix*"
根据查询的结果,对监控端(zabbix-server)进行配置 :
Zabbix Server连接数据库的驱动程序 :
[root@zabbix-server ~]# yum -y install zabbix-server-mysql.x86_64
Zabbix WEB连接数据库的驱动程序 :
[root@zabbix-server ~]# yum -y install zabbix-web.noarch
监控端Zabbix Server,自己监控自己 :
[root@zabbix-server ~]# yum -y install zabbix-agent.x86_64
检查Zabbix Server、Zabbix WEB、Zabbix Database(mariadb) 、Zabbix Client(Agent)是否安装成功 :
[root@zabbix-server ~]# rpm -qa | grep -E "zabbix-server|zabbix-web|zabbix-agent"
根据查询的结果,对被监控端(web1)进行配置 :
[root@web1 ~]# yum -y install zabbix-agent.x86_64
检查Zabbix Agent是否安装成功 :
[root@web1 ~]# rpm -qa | grep zabbix-agent
✏️ 初始化zabbix前准备
上线 Zabbix WEB の 网页代码
将Zabbix WEB程序文件,拷贝到Nginx网站根目录 :
[root@zabbix-server ~]# \cp -a /usr/share/zabbix/* /usr/share/nginx/html/
修改Nginx网站根目录的拥有者为apache :
[root@zabbix-server ~]# chown -R apache:apache /usr/share/nginx/html/
创建zabbix数据库、数据库zabbix账户并赋权
使用初始化安全脚本 :
[root@zabbix-server ~]# mysql_secure_installation
使用root用户登录数据库 :
[root@zabbix-server ~]# mysql -uroot -p220617
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
导入基础数据库
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.10/create.sql.gz | mysql -uzabbix -pzabbix zabbix
zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令完全相同。
✏️ 配置mariadb、php-fpm、nginx服务开机自启动并立即启动
监控端(zabbix-server)配置 :
[root@zabbix-server ~]# systemctl enable nginx.service --now
[root@zabbix-server ~]# systemctl enable mariadb.service --now
[root@zabbix-server ~]# systemctl enable php73-php-fpm --now
检查mariadb、php-fpm、nginx服务是否立即启动并设置开机自启动 :
[root@zabbix-server ~]# ss -anptul | grep :80
[root@zabbix-server ~]# systemctl is-enabled nginx.service
[root@zabbix-server ~]# ss -anptul | grep :3306
[root@zabbix-server ~]# systemctl is-enabled mariadb.service
[root@zabbix-server ~]# ss -anptul | grep :9000
[root@zabbix-server ~]# systemctl is-enabled php73-php-fpm.service
✏️ 初始化 :浏览器访问 Zabbix WEB页面
根据上图Fail提示进行配置,确保Zabbix WEB初始化的要求都是OK状态
查询php.ini文件路径(php运行核心配置文件):
[root@zabbix-server zabbix]# find / -name php.ini
/etc/opt/remi/php73/php.ini
根据上图Fail提示,修改php.ini文件中选项的值 :
[root@zabbix-server nginx]# vim /etc/opt/remi/php73/php.ini
post_max_size = 16M ⭐️ POST数据最大容量
max_execution_time = 300 ⭐️ 最大执行时间,秒
max_input_time = 300 ⭐️ 服务器接收数据的时间限制
date.timezone = Asia/Shanghai ⭐️ 设置时区
:wq //保存
根据上图Fail提示,安装Zabbix WEB初始化的依赖包 :
[root@zabbix-server nginx]# yum -y install php73-php-ldap
重启php73-php-fpm服务,刷新重载该页面
[root@zabbix-server nginx]# systemctl restart php73-php-fpm
✏️ 根据上图所示,需修创建zabbix.conf.php文件,鼠标单击 “Download the configuration file” 下载zabbix.conf.php文件,用xshell将该文件上传至/var/www/html/conf/目录下,刷新重载该页面,最后单击Finish即可
初始化完成
使用默认登录账号Admin、默认密码zabbix登录
✏️ 启动Zabbix Server、Zabbix Agent服务
修改监控端的Zabbix Server主配置文件
查询mysql.sock文件路径 :
[root@zabbix-server ~]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
查询Zabbix server主配置文件的路径 :
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost ⭐️设置zabbix数据库所在的服务器IP
DBName=zabbix ⭐️设置zabbix数据库名称
DBUser=zabbix ⭐️设置Zabbix数据库用户名
DBPassword=zabbix ⭐️设置Zabbix数据库用户的密码
DBPort=3306 ⭐️设置zabbix数据库服务监听的端口号
DBSocket=/var/lib/mysql/mysql.sock ⭐️设置数据库本地套接字文件位置,配合DBHost参数localhost
LogFile=/var/log/zabbix/zabbix_server.log ⭐️Zabbix server的错误日志文件
:wq //保存并退出
修改被监控端的Zabbix Agent主配置文件
查询Zabbix Agent的主配置文件路径
[root@web1 ~]# find / -name "zabbix*"
......
/etc/zabbix/zabbix_agentd.conf
......
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
⭐️默认是本机127.0.0.1 在后面用“,”追加Zabbix Server的IP地址或者DNS域名
作用:指定允许访问的服务地址列表,包含本机、监控端Zabbix服务器。
Server=127.0.0.1,192.168.6.100
⭐️默认是本机127.0.0.1 在后面用“,”追加Zabbix Server的IP地址或主机名:端口号 或者 DNS域名:端口
作用:指定活动检查的监控端Zabbix服务器或者Zabbix代理对
ServerActive=192.168.6.100:10051
⭐️默认是空,填写Agent的IP地址或主机名
Hostname=web1
⭐️Zabbix Agent的错误日志文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log
:x //保存并退出
配置Zabbix Server、Zabbix Agent服务开机自启动并立即启动
监控端(zabbix-server)配置 :
[root@zabbix-server ~]# systemctl enable zabbix-server.service --now
[root@zabbix-server ~]# systemctl enable zabbix-agent.service --now
检查Zabbix Server、Zabbix Agent服务是否立即启动并设置开机自启动 :
[root@zabbix-server ~]# ss -anptul | grep :10051
[root@zabbix-server ~]# systemctl is-enabled zabbix-server.service
[root@zabbix-server ~]# ss -anptul | grep :10050
[root@zabbix-server ~]# systemctl is-enabled zabbix-agent.service
被监控端(web1)进行配置 :
[root@web1 ~]# systemctl enable zabbix-agent.service --now
检查Zabbix Agent服务是否立即启动并设置开机自启动 :
[root@web1 ~]# ss -anptul | grep :10050
[root@web1 ~]# systemctl is-enabled zabbix-agent.service
Q.E.D.