1. Zabbix是什么
Zabbix是一个企业级的开源分布式监控解决方案。
Zabbix是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix基于存储的数据提供出色的报告和数据可视化功能。这使得Zabbix成为容量规划的理想选择。
所有Zabbix报告和统计数据以及配置参数都可以通过基于Web的前端访问。基于Web的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当,不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲,Zabbix都可以在监控IT基础设施方面发挥重要作用。
2. Zabbix组件
Zabbix Server:是Agents向其报告可用性和完整性信息和统计信息的中心组件。Server是存储所有配置、统计和操作数据的中央存储库。Server默认端口10051
。
Zabbix Proxy:可以代替Zabbix Server收集性能和可用性数据。Proxy是Zabbix部署的可选部分;但是对于分散单个Zabbix Server的负载非常有用。Proxy默认端口10051
。
Zabbix Agent:部署在被监控目标上,以主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。默认端口10050
。
监控结构分为两种模式:
Server/Agent:Zabbix最简单的架构,监控设备和被监控设备之间直接相连,Server和Agent之间直接进行数据交互。
Server/Proxy/Agent:Proxy是连接Server和Agent之间的桥梁,其本身不存放数据,只是将Agent端发来的数据暂存,然后再提交给Server。此模式可以分担Server的压力,并适合用在不同网络的服务器环境。
数据收集分为两种模式,两种模式可并存:
被动模式:Server向Agent请求获取配置的各监控项相关的数据,Agent接收请求、获取数据并响应给Server(居委会找你统计你家的隔离情况)。
被动模式工作流程:
Server打开一个TCP连接
Server发送一个Key到Agent,Key的名字为Agent.ping
Agent接受这个请求,然后响应< HEADER >< DATALEN >
Server对接受到的数据进行处理
TCP连接关闭
主动模式:Agent向Server请求与自己相关监控项配置,主动地将Server配置的监控项相关的数据发送给Server(你主动找居委会汇报你家庭的隔离情况)主动模式一定程度上可以减轻Server的压力。
主动模式工作流程:
Agent向Server建立一个TCP连接
Agent请求需要检测的数据列表
Agent允许响应
TCP连接完成本次会话关闭
Agent开始周期性地收集数据
3. Server/Agent模式环境准备
-关闭Selinux
setenforce 0
-关闭防火墙
systemctl stop firewalld
-禁止防火墙自启
systemctl disable firewalld
4. Server部署
4.1 Server安装
a. 安装Zabbix官方源。
[root@140 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
[root@140 ~]# dnf clean all
b. 安装Zabbix Server,Web,Agent。
[root@140 ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y
4.2 Mysql安装
官网下载安装包
c. 上传到Server解压安装。
[root@140 ~]# tar -xvf mysql-8.1.0-1.el8.x86_64.rpm-bundle.tar
[root@140 ~]# dnf -y install mysql-community*
4.3 Mysql配置
d. Mysql配置文件my.cnf 新增参数,更改Mysql默认身份验证方式为mysql_native_password
。
[root@140 ~]# vim /etc/my.cnf
default_authentication_plugin = mysql_native_password
e. 运行Mysql并配置管理员密码。
--启动和开机自启动
[root@140 ~]# systemctl start mysqld
[root@140 ~]# systemctl enable mysqld
--查看Mysql默认密码
[root@140 ~]# grep 'temporary password' /var/log/mysqld.log
--使用默认密码登录
[root@140 ~]# mysql -uroot -p
--修改管理员密码为Abc123456!@#
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc123456!@#';
f. 创建Zabbix Server数据库和导入初始数据。
--创建Server数据库zabbix
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
--创建zabbix用户,密码为Zabbix123456!@#
mysql> create user zabbix@localhost identified by 'Zabbix123456!@#';
--授权zabbix用户连接和使用zabbix 库
mysql> grant all privileges on zabbix.* to zabbix@localhost;
--关闭Mysql对创建存储函数的限制
mysql> set global log_bin_trust_function_creators = 1;
--登出
mysql> quit;
--导入Server数据库初始数据,输入zabbix用户密码
[root@140 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
--登录数据库开启Mysql对创建存储函数的限制
[root@140 ~]# mysql -uroot -p
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
4.4 Server配置
g. 编辑Server配置文件,配置数据库zabbix用户密码。
[root@140 ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=Zabbix123456!@#
h. 编辑PHP配置文件,最底下新增一行配置Server时区为上海。
[root@140 ~]# vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
i. 编辑Nginx配置文件,配置Server Web管理界面端口为80
。
--zabbox nginx配置文件更改端口
[root@140 ~]# vim /etc/nginx/conf.d/zabbix.conf
listen 80;
--注释nginx默认80端口配置
[root@140 ~]# vim /etc/nginx/nginx.conf
# listen 80 default_server;
# listen [::]:80 default_serve;
j. 启动Server,Agent和相关进程,并设置开机自启动。
[root@140 ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm
[root@140 ~]# systemctl enable zabbix-server zabbix-agent nginx php-fpm
4.5 Web配置
浏览器访问Server IP即可访问,如配置的端口不是80
,需IP:Port访问指定端口。
端口为Mysql数据库默认端口3306
,密码为数据库zabbix用户密码。
默认账号:Admin 密码:zabbix
Zabbix Server部署完成。
5. Agent被动模式部署(141)
5.1 Agent安装
a. 安装Zabbix官方源。
[root@141 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
[root@141 ~]# dnf clean all
b. 安装Agent。
[root@141 ~]# dnf install zabbix-agent -y
5.2 Agent配置
c. 编辑Agent配置文件,配置Zabbix Server地址和其它参数。
[root@141 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.248.140
# Hostname=Zabbix server
HostnameItem=system.hostname
常用参数含义
d. 启动Agent进程,并设置开机自启动。
[root@141 ~]# systemctl restart zabbix-agent
[root@141 ~]# systemctl enable zabbix-agent
5.3 Web添加Agent
注意!被动模式要配置客户端。
6. Agent主动模式部署(142)
6.1 Agent安装
a. 安装Zabbix官方源。
[root@142 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
[root@142 ~]# dnf clean all
b. 安装Agent。
[root@142 ~]# dnf install zabbix-agent -y
6.2 Agent配置
c. 编辑Agent配置文件,配置Zabbix Server Active地址和其它参数。
[root@142 ~]# vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.248.140
Hostname=192.168.248.142
#主动模式Agent和Server通过主机名来通信,静态设置Agent IP为主机名,Server获取到Agent传递过来的主机名也就是Agent IP可以直接通信。
如不使用Agent IP做主机名,Server的Hosts文件需要添加主机名解析,Server才能通过主机名找到Agent
d. 启动Agent进程,并设置开机自启动。
[root@142 ~]# systemctl restart zabbix-agent
[root@142 ~]# systemctl enable zabbix-agent
6.3 Web添加Agent
注意!主动模式主机名称要和6.2步骤Agent配置文件的Hostname
一致。