监控架构-Zabbix-01
今日内容:
-
一、Zabbix概述
Zabbix是一个CS(服务端/客户端)架构的服务.
它的整体架构:
- 客户端agent收集集群信息
- agent反馈收集的信息给server服务端
- 通过前端展示数据
二、Zabbix使用指南
2.1 主机规划
2.1.1 推荐配置
规模 |
平台 |
CPU/内存 |
数据库 |
受监控的主机数 量 |
小型 |
CentOS |
Virtual Appliance |
MySQL InnoDB |
100 |
中型 |
CentOS |
2 CPU cores/2GB |
MySQL InnoDB |
500 |
大型 |
RedHat Enterprise Linux |
4 CPU cores/8GB |
RAID10 MySQL InnoDB 或 PostgreSQL |
>1000 |
极大 型 |
RedHat Enterprise Linux |
8 CPU cores/16GB |
Fast RAID10 MySQL InnoDB PostgreSQL 或 |
>10000 |
2.1.2 磁盘容量估算
参数 |
所需磁盘空间的计算公式 (单位:字节) |
Zabbix 配置 文件 |
固定大小。通常为 10MB 或更少。 |
History (历 史数据) |
days (items/refresh rate) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 refresh rate:监控项的更新间隔。 bytes:保留单个值所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。 |
Trends (趋 势数据) |
days (items/3600) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 bytes:保留单个趋 势数据所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。 |
Events (事 件数据) |
days events 24 3600 bytes events:每秒产生的事件数量。假设最糟糕的情况下,每秒产生 1 个事件。 days:保留历史数据的天数。 bytes:保留单个趋势数据所需的字节数,取决于数据库引擎,通常为 ~170 字节。 |
2.1.3 实验环境准备
角色 |
主机名 |
eth0/eth1 |
配置 |
zabbix server |
m02 |
10.0.0.62/172.16.1.62 |
1C1G(实际推荐1C2G) |
Zabbix前端界面 |
web01 |
10.0.0.7/172.16.1.7 |
1C1G |
Zabbix数据库 |
db01 |
10.0.0.51/172.16.1.51 |
1C1G |
Zabbix客户端 |
nfs01 |
10.0.0.31/172.16.1.31 |
1C1G |
其他综合架构部分的主机都是客户端 |
|
|
|
2.2 服务端部署-管理端
部署zabbix服务端流程
- 部署ngx+php环境并测试
- 部署数据库 mariadb 10.5及以上 然后进行配置
- 编译安装zabbix-server服务端及后续配置
- 部署前端代码代码进行访问
- web访问
- 配置客户端
2.2.1 部署ngx+php环境
以下操作在web01 - 10.0.0.7中执行
1、准备yum repo
2、安装Nginx和php
3、检查安装结果
4、配置nginx虚拟主机
5、配置php
6、创建站点目录和测试文件
7、启动服务
8、配置hosts进行测试
http://zbx.test.cn/
2.2.2 部署数据库
以下操作在db01 - 10.0.0.51操作
1、配置mariadb的repo源
zabbix 6.0 不支持默认源中的mariadb(mariadb 5.5版本),需要配置repo源安装新版本
2、启动数据库服务
3、数据库初始配置
创建数据库和用户
4、官网下载zabbix源码
https://www.zabbix.com/cn/download_sources#60LTS
4、导入zabbix数据库
5、检查
2.2.3 编译安装zabbix-server服务端
此操作在mn02 - 10.0.0.62操作
1、安装依赖包
2、coinfigure 源码
3、编译,安装
4、检查
2.2.4 zabbix配置和启动
修改配置文件(连接数据库)
创建zabbix用户
启动zabbix服务
2.2.5 systemctl配置
书写systemctl配置文件
重新加载服务
关闭已经打开的zabbix服务
使用systemctl控制开启
查看状态
2.2.6 部署前端代码
在web01进行部署
上传源码,并拷贝ui
测试访问:http://zbx.test.cn:80
遇到错误
修改php.ini,重启服务
刷新一下就过了,继续下一步
填写数据库信息,取消勾选数据库TLS加密
这里重新尝试的一次,改成中文了
设置zabbix主机名和时区,点击下一步
信息汇总,点击下一步
配置完成
登录
因为我们的server是分离部署的,所以进来后,首页会报错,连不上zabbix server
修改zabbix的配置文件,设置zbx server
连接成功
2.3 客户端部署-被监控端
2.3.1 安装客户端
以下操作在nfs01进行
2.3.2 配置客户端
这里用zabbix-agent2服务,相比于zabbix-agent,更先进
修改客户端配置文件
启动客服端服务
检查
2.3.3 添加监控主机
在zabbix首页添加监控主机 nfs01
2.4 ZBX中文乱码问题
以下操作在zabbix-web的部署服务器进行,web01
原因:zbx显示中文的字体有问题,导致显示中文异常。
解决:把zbx中文字体替换即可
三、Zabbix配置详解
3.1 服务端配置
文件和目录 |
作用 |
/etc/zabbix/zabbix_server.conf |
配置文件 |
/var/log/zabbix/zabbix_server.log |
当前放在/tmp/下面 |
/usr/lib/systemd/system/zabbix-server.service |
手写的systemctl管理文件,如果yum、rpm安装自带 |
/usr/local/share/zabbix/alertscripts/ |
用于实现告警的脚本 |
服务端配置文件详解
3.2 客户端配置
文件和目录 |
作用 |
/etc/zabbix/zabbix_agent2.conf |
配置文件 |
/etc/zabbix/zabbix_agent2.d/ |
子配置文件目录,用于自定义监控 |
/var/log/zabbix |
日志 |
客户端配置文件详解
3.3 zbx agent VS zbx zgent2
对比项 |
agent |
agent2 |
开发语言 |
C语言 |
Go语言和C语言 |
性能 |
独立进程方式运行 |
1个进行多线程方式运行,减少资源消耗,占用较少的TCP资源,能够承受更高并发 |
四、监控任意主机流程
整体流程如下:
- 安装客户端、修改配置文件、测试
- web页面添加主机、关联模板
- 调试
9.1 配置客户端
以监控db01 - 10.0.0.51为例
安装zbx agent2
配置文件
启动服务
检查
9.2 web页面添加主机
登录zabbix页面,创建主机
刚开始图标是灰色,耐心等待
变绿即为添加成功
后期可以通过ansbile来自动添加监控,也可以通过配置自动发现来实现
9.3 通过模板帮助你监控任意服务
zabbix提供很多监控模板供用户使用,案例使用的版本就有366个模板
可以在侧边栏进入模板页面,比如进入监控nginx的模板
这个nginx模板到底监控什么?可以点进去看,里面实际上有很多宏
可以按照自己的需求来配置宏,比如当前web服务器的nginx设置如下
配置宏如下: