参考官网:产品手册 (zabbix.com)
一、zabbix概述
Zabbix 是一个企业级的开源分布式监控解决方案。
Zabbix 是一款监控众多参数的网络以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和 trapping。所有 Zabbix 报告和统计数据以及配置参数都可以通过基于 Web 的前端访问。基于 Web 的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当,不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲,Zabbix 都可以在监控 IT 基础设施方面发挥重要作用。
1.1 功能
Zabbix 是一个高度集成的网络监控解决方案,在一个软件包中提供了多种功能。
-
可用性和性能检查
-
支持 SNMP(trapping 和 polling)、IPMI、JMX、VMware监控
-
自定义检查
-
以自定义间隔收集所需数据
-
由 server/proxy 和 agents 执行
-
可以定义非常灵活的问题阈值,称为触发器,从后端数据库引用值
-
可以针对升级计划、收件人、媒体类型自定义发送通知
-
使用宏可以使通知变得有意义和友好
-
自动化操作包括执行远程命令
-
采集到的监控项值可以使用内置的绘图功能立即图形化
-
Zabbix 可以跟踪网站上的模拟鼠标点击的路径并检查功能和响应时间
-
创建自定义图形的能力,可以将多个监控项组合成一个聚合图形
-
网络拓扑图
-
在仪表盘中显示幻灯片
-
报表
-
被监控资源的高级(业务)视图
-
存储在数据库中的数据
-
可配置的历史数据(保留趋势)
-
内置管家程序
-
将受监控的设备添加为主机
-
一旦主机添加到被数据库,就会开始进行数据采集
-
将模板应用于受监控的设备
-
在模板中分组检查
-
模板可以继承其他模板
-
网络设备自动发现
-
agent 自动注册
-
发现文件系统、网络接口和 SNMP OID
-
基于web的PHP前端
-
可从任何地方访问
-
可以通过你的方式点击(到任何页面)
-
审计日志
-
Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
-
安全用户认证
-
某些用户可以被限制仅访问某些视图
-
部署在被监控目标上
-
Linux 和 Windows 操作系统都适用于
-
用 C 编写,用于提高性能和减少内存占用
-
轻量级、便携
-
使用 Zabbix proxy 轻松实现远程监控
1.2 结构体系
Zabbix 由几个主要的软件组件组成。他们的职责概述如下。
Server
Zabbix server 是 agents 向其报告可用性和完整性信息和统计信息的中心组件。server 是存储所有配置、统计和操作数据的中央存储库。
数据存储
Zabbix 收集的所有配置信息以及数据都存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问,Zabbix 提供了基于 Web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)与 server 运行在同一台设备上。
Proxy
Zabbix proxy 可以代替 Zabbix server 收集性能和可用性数据。proxy 是 Zabbix 部署的可选部分;但是对于分散单个 Zabbix server 的负载非常有用。
Agent
Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序,并将收集到的数据报告给 Zabbix server。从 Zabbix 4.4 开始,有两种类型的 agent 可用:Zabbix agent (轻量级,在许多平台上支持,用 C 编写)和 Zabbix agent 2 (非常灵活,易于使用插件扩展,用 Go 编写)。
1.3 数据流
此外,回顾一下 Zabbix 中的整体数据流也是很重要的。为了创建一个收集数据的监控项,必须首先创建一个主机。另一方面 Zabbix 必须首先拥有一个监控项来创建触发器。必须有触发器才能创建动作。因此,如果你想收到 服务器 X 上的 CPU 负载过高的警报,必须首先为 服务器 X 创建一个主机条目,然后创建一个用于监控其 CPU 的监控项,然后是一个触发器,如果 CPU 过高则触发动作,然后通过通过动作操作向您发送电子邮件。这可能看起来像很多步骤,其实使用模板并不需要。而且,由于这种设计,可以创建非常灵活的设置。
二、极速实践
获取 Zabbix 安装介质有四种方法:
2.1 节点规划
角色 | 主机名 | 网卡 | 配置 |
---|---|---|---|
Zabbix服务端 | zabbix-server | 10.45.25.30 | 2C2G |
Zabbix客户端 | web01 | 10.45.25.31 | 1C1G |
Zabbix客户端 | db01 | 10.45.25.32 | 1C1G |
关闭防火墙和SELinux
# 以服务端为例
[root@zabbix-server ~]# systemctl stop firewalld.service && systemctl disable firewalld.service
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@zabbix-server ~]# setenforce 0
[root@zabbix-server ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
2.2 部署Nginx+PHP环境
[root@zabbix-server ~]# yum install -y nginx php-fpm
# nginx配置
[root@zabbix-server ~]# mv /etc/nginx/default.d/php.conf /etc/nginx/default.d/php.conf.bak
[root@zabbix-server ~]# vim /etc/nginx/conf.d/zyb.zabbix.com.conf
[root@zabbix-server ~]# cat /etc/nginx/conf.d/zyb.zabbix.com.conf
server {
listen 80;
server_name zyb.zabbix.com;
root /app/zbx;
location / {
index index.php;
}
location ~ \.(php|phar)(/.*)?$ {
fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-fpm;
}
}
[root@zabbix-server ~]#
#php配置
[root@zabbix-server ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf
[root@zabbix-server ~]# egrep '^(user|group)' /etc/php-fpm.d/www.conf
user = nginx
group = nginx
[root@zabbix-server ~]#
# 创建测试文件
[root@zabbix-server ~]# mkdir -p /app/zbx
[root@zabbix-server ~]# vim /app/zbx/info.php
[root@zabbix-server ~]# cat /app/zbx/info.php
<?php
phpinfo()
?>
[root@zabbix-server ~]#
# 配置hosts解析(注:如果要在windows中访问,则需要在windows中配置hosts解析)
[root@zabbix-server ~]# tail -1 /etc/hosts
10.45.25.30 zyb.zabbix.com
# 启动服务并测试
[root@zabbix-server ~]# systemctl enable nginx php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@zabbix-server ~]# systemctl start nginx php-fpm
[root@zabbix-server ~]#
访问zyb.zabbix.com/info.php
2.3 部署数据库
mysql安装在db01上
# 安装并启动数据库
[root@zabbix-server ~]# yum install -y mariadb-server
[root@zabbix-server ~]# rpm -qa | grep mariadb
mariadb-connector-c-config-3.2.6-1.el9.noarch
mariadb-common-10.5.22-1.el9.x86_64
mariadb-connector-c-3.2.6-1.el9.x86_64
mariadb-errmsg-10.5.22-1.el9.x86_64
mariadb-backup-10.5.22-1.el9.x86_64
mariadb-gssapi-server-10.5.22-1.el9.x86_64
mariadb-server-utils-10.5.22-1.el9.x86_64
mariadb-server-10.5.22-1.el9.x86_64
mariadb-10.5.22-1.el9.x86_64
[root@zabbix-server ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@zabbix-server ~]#
# 初始化数据库
[root@zabbix-server ~]# mysql_secure_installation
n n y y y y
[root@zabbix-server ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.22-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
# 创建和配置数据库和用户
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'%' identified by'zabbix';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> select user,host from mysql.user;
+-------------+------------+
| User | Host |
+-------------+------------+
| zabbix | % |
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
+-------------+------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]>
#数据库部署完成
2.4 安装zabbix-server
# 下载安装源仓库
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
dnf clean all
# 安装Zabbix server,Web前端及agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y
# 导入初始架构和数据,系统将提示您输入新创建的密码。
[root@zabbix-server ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Enter password:
[root@zabbix-server ~]#
MariaDB [(none)]> show tables from zabbix;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
·································
| widget |
| widget_field |
+----------------------------+
203 rows in set (0.001 sec)
MariaDB [(none)]>
# 可以看到数据导入成功,接下来禁用log bin trust function creators选项
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]>
# 为Zabbix server配置数据库
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
[root@zabbix-server ~]#
# 为Zabbix前端配置PHP
[root@zabbix-server ~]# vim /etc/nginx/conf.d/zabbix.conf
listen 8080;
server_name zyb.zabbix.com;
[root@zabbix-server ~]#
# 启动Zabbix server和agent进程
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent nginx php-fpm
2.5 zabbix web配置
浏览器访问:http://zyb.zabbix.com:8080
2.6 安装客户端
在web01和db01节点安装
# 下载安装源仓库并清理yum缓存
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
dnf clean all
# 安装Zabbix agent2
dnf install zabbix-agent2 zabbix-agent2-plugin-* -y
# 修改配置文件
[root@web01 ~]# cat /etc/zabbix/zabbix_agent2.conf | egrep '^Server|^Host'
Server=10.45.25.30
ServerActive=10.45.25.30
Hostname=web01
[root@web01 ~]#
[root@db01 ~]# cat /etc/zabbix/zabbix_agent2.conf | egrep '^Server|^Host'
Server=10.45.25.30
ServerActive=10.45.25.30
Hostname=db01
[root@db01 ~]#
# 启动并开机自启Zabbix agent2
systemctl enable --now zabbix-agent2
添加主机
标签:01,入门,Zabbix,server,etc,zabbix,php,root From: https://blog.csdn.net/weixin_52377412/article/details/142494499