Administrator
Administrator
Published on 2023-11-08 / 364 Visits
0
0

Zabbix部署

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模式环境准备

OS

IP

角色

Anolis OS release 8.8

192.168.248.140

Zabbix Server 6.0

Anolis OS release 8.8

192.168.248.141

Zabbix Agent 6.0

Anolis OS release 8.8

192.168.248.142

Zabbix Agent 6.0

Snipaste_2023-12-20_01-03-25.png

-关闭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安装

官网下载安装包https://downloads.mysql.com/archives/community/

Snipaste_2023-11-08_21-48-51.png

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用户密码。

Snipaste_2023-11-08_22-22-59.png

默认账号:Admin 密码:zabbix

Snipaste_2023-11-08_22-41-41.png

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

常用参数含义

参数

含义

Server

被动模式Zabbix Server地址

StartAgents

被动模式Agent的进程个数,设置为0则将被动模式关闭

ServerActive

主动模式Zabbix Server地址

Hostname

静态配置Agent主机名

HostnameItem=system.hostname

动态获取当前主机名为Agent主机名

HostMetadata

静态配置Agent元数据

HostMetadataItem=system.uname

动态获取系统信息为Agent元数据

d. 启动Agent进程,并设置开机自启动。

[root@141 ~]# systemctl restart zabbix-agent
[root@141 ~]# systemctl enable zabbix-agent

5.3 Web添加Agent

注意!被动模式要配置客户端。

Snipaste_2023-11-08_23-29-33.pngSnipaste_2023-11-08_23-30-44.pngSnipaste_2023-11-08_23-31-22.png

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一致。

Snipaste_2023-11-08_23-48-41.pngSnipaste_2023-11-09_00-16-07.png


Comment