分布式系统监控Zabbix
- 一、Zabbix监控
- 1.什么是Zabbix
- 2.Zabbix功能
- 3.Zabbix运行机制
- 4.Zabbix的三种架构
- 5.Zabbix工作原理及数据走向
- 6.zabbix监控模式
- 二、Zabbix部署
- 1.安装,部署准备
- 2.zabbix图形化页面显示设置
- 三、Zabbix监控使用
- 1.安装zabbix监控客户端
- 2.服务端验证连通性
- 3.Web 页面中添加agent 主机
- 4.配置主机模板
- 5.自定义监控内容
- 6.web页面配置自定义监控模板
- 7.zabbix 自动发现与自动注册
- 四、总结
- 1.安装和配置Zabbix服务器:
- 2.部署Zabbix代理:
- 3.创建主机和监控项:
- 4.创建触发器和操作:
- 5.查看报告和趋势:
一、Zabbix监控
1.什么是Zabbix
(1)一个基于web界面提供的分布式系统监控及网络监视功能的企业级开源解决方案
(2)Zabbix能监视各种网络参数,保证server系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
(3)Zabbix由两部分构成,zabbix server和可选组件zabbix agent。通过C/S模式采集数据,提供B/S在web前端展示和配置。
(4)一款开源免费的,自动化发现服务与网络设备的分布式监控,可以监视应用层。并以web页面集中管理并展示。
2.Zabbix功能
监控CPU负载,服务器内存使用,服务器磁盘使用及网络状态,还可以监控中间件。
缺点:只支持传统运维,不容错。
3.Zabbix运行机制
(1)Zabbix是C/S架构有zabbix server和zabbix agent组成。
(2)zabbix server:负责存储,展示硬件信息,通过B/S模式传给web端展示配置
(3)zabbix agent:监控收集服务器信息,端口号10500
4.Zabbix的三种架构
(1)C/S模式:
总结:zabbix C/S模式是最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-agent之间进行数据交换,适用于网络,比较简单。尽量在局域网内,设备较少的监控环境。
(2)zabbix-proxy-client分布式架构:
总结:proxy是server和client沟通的桥梁,proxy本身没有前端,且其本身存放的数据,只是将agent发的数据暂时存放,而后提交给server。适用于跨机房,跨网络,或中型网络架构的监控。
(3)master-node-client架构:
总结:master下有node节点,node可以存储数据,node有自己的配置文件和数据库注意负责将配置信息和监控数据与master同步,node下可以直接接入主机或接入代理proxy。
5.Zabbix工作原理及数据走向
(1)zabbix agent在主机上采集监控数据,将采集的数据传给zabbix server
(2)zabbix server收到数据后将数据存在自己的数据库中
(3)然后从数据库中提取数据进行分析,是否需要报警
(4)分析完成后server在web前端页面进行界面数据展示
6.zabbix监控模式
(1)主动模式:zabbix agent主动将采集到的监控信息传输给zabbix server
(2)被动模式:zabbix server向zabbix agent索引采集到的监控信息,zabbix agent返回采集到的数据
二、Zabbix部署
准备一台2核4G内存数据库,至少2核2G
1.安装,部署准备
systemctl stop firewalld.service
setenforce 0
#关闭防火墙
setenforce 0
#关闭selinux
hostnamectl set-hostname zbx-server
#更改主机名
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#获得zabbix下载yum源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
vim zabbix.repo
#编辑配置文件 开启安装源
[zabbix-frontend]
......
enabled=1 #1表示开启安装源
......
#进入yum源目录文件并使用sed将国外源替换为阿里云源
yum clean all && yum makecache
#清除原理yum源缓存并加载新的yum
yum install -y zabbix-server-mysql zabbix-agent
#安装zabbix客户端和服务端
yum install -y centos-release-scl
#安装scl,原因为便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4zabbix要求php版本为7.2以上,若达到要求则无须安装scl
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装连接数据库和连接apache前端页面的连接工具
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#安装并开启数据库
mysql_secure_installation
#初始化数据库,并设置密码,如 abc123选择执行,先回车,然后输入2次自己想设置的密码,其他全部yes即可
mysql -uroot -p #登陆数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#创建zabbix库并设置库格式为utf-8
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#创建并授权zabbix远程登录用户密码为zabbix
flush privileges;
#刷新数据
quit
rpm -ql zabbix-server-mysql
#查询zabbix数据库中配置文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.36/create.sql.gz | mysql -uroot -p123123 zabbix(导入的库名)
#将zabbix数据库格式导入数据库中,此处需要等待10s左右
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix #124行,去掉#注释然后指定 zabbix 数据库的密码
#编辑zabbix配置文件将设置的远程登录用户的密码zabbix输入进去保存退出
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai #24行,取消注释,修改时区
#编辑php的配置文件,将时区改为亚洲上海,注意去掉前面的;在此文件中表示注释
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#重启zabbix服务php服务并设置开机自启
2.zabbix图形化页面显示设置
(1)浏览器输入自己部署zabbix地址的服务器地址如本机:http://192.168.174.15/zabbix进入配置页面
(2)点击netxt step进入下一步检查zabbix配置,所有状态都要为ok,若有问题则需要去服务器侧检查配置
(3)所有配置都正常则继续点击下一步使用zabbix账户登录数据库
(4)连接数据库后下一步配置zabbix信息
(5)配置完成zabbix后检查配置项然后点击下一步保存安装
(6)信息检查完成后点击结束安装完成
(7)结束后登录验证,默认账户为:Admin 默认密码为:zabbix
(8)登录完成后主页面如下
(9)修改zabbix语言为中文,点击user settings然后选择语言为中文,点击update保存即可
三、Zabbix监控使用
1.安装zabbix监控客户端
再开启一台服务器进行zabbix agent客户端系统安装
systemctl stop firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
bash
#关闭防火墙和selinux,更改主机名并运行bash刷新主机名
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
#服务端和客户端都配置时间同步
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
#客户端配置时区,与服务器保持一致
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
#设置 zabbix 的下载源,安装 zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
#修改配置文件,修改内容如下
Server=192.168.174.15
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.174.15
#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01
#131行,指定当前 zabbix 客户端的主机名
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
#设置zabbix-agent2开机自启并现在启动,检查端口是否存在
2.服务端验证连通性
yum install -y zabbix-get
#安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.174.17' -p 10050 -k 'agent.ping'
#返回结果为1则表示连接成功
zabbix_get -s '192.168.174.17' -p 10050 -k 'system.hostname'
#可以显示客户端zbx-agent01的主机名表示连接成功
3.Web 页面中添加agent 主机
(1)点击左边菜单栏【配置】中的【主机】,点击【创建主机】
4.配置主机模板
5.自定义监控内容
1.明确需要执行的 linux 命令
who | wc -l
2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
296 # Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#添加内容如下
UserParameter=login.user,who|wc -l
#UserParameter为键不可变login.user为键值名称逗号后可写命令或脚步
systemctl restart zabbix-agent2
#重启zabbix-agent2
3.在服务端验证新建的监控项
zabbix_get -s '192.168.174.17' -p 10050 -k 'login.user'
#返回值为1则表示监控项无问题
6.web页面配置自定义监控模板
(1)创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】此时就可在【名字】中搜索到 Template Login User 了
(2)创建应用集(用于管理监控项的)
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击 【添加】
(3)创建监控项
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
(4)创建触发器
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】
(5)创建图形
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】
(6)设置邮件报警
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
(7)添加告警告知邮箱
点击左边菜单栏【用户设置】–>【报警媒介】,点击【添加】
7.zabbix 自动发现与自动注册
(1)zabbix自动发现说明,自动发现与自动注册指的是相对服务器而言,若为被动发现则需要手动将客户端机器添加到zabbix中,若是自动发现则是在zabbix上配置,由zabbix主动去扫描。
(2)确保监控server agent2客户端是存活状态
server agent2上执行:
systemctl is-active zabbix-agent2.service
#返回active即agent2正常
(3)删除原有的客户端主机
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
(4)客户端服务端添加hosts
vim /etc/hosts
192.168.174.15 zbx-server
192.168.174.17 zbx-agent01
(5)web页面自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】【名称】设置成 mynetw3ork
【IP范围】设置成 192.168.174.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【更新】
(6)发现客户端
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【发现动作】,点击 【启用】
(7)验证发现结果
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机 ,需要等待一段时间。
四、总结
Zabbix是一种流行的开源分布式系统监控工具。Zabbix支持多种操作系统和网络设备,可以通过Zabbix代理或SNMP协议收集数据。以下是使用Zabbix进行分布式系统监控的一些关键步骤:
1.安装和配置Zabbix服务器:
首先需要安装Zabbix服务器,并配置Zabbix数据库和Web界面。可以使用Zabbix官方提供的二进制安装包或从源代码编译。
2.部署Zabbix代理:
可以在需要监控的服务器上部署Zabbix代理,从而向Zabbix服务器发送数据。可以使用二进制安装包或从源代码编译。要配置代理以与Zabbix服务器通信,可以在代理配置文件中设置Server或ServerActive选项。
3.创建主机和监控项:
在Zabbix服务器上创建要监控的主机和监控项。主机可以是物理服务器、虚拟机或网络设备。监控项定义要监控的数据类型,例如CPU、内存、磁盘等。
4.创建触发器和操作:
根据监控项的值,可以创建触发器并定义操作。当条件满足时,触发器将触发操作,例如发送电子邮件或短信通知。
5.查看报告和趋势:
使用Zabbix报告和趋势功能可以查看历史数据、性能趋势和告警情况。可以创建各种自定义报告和图表以获得有关分布式系统健康状况的深入洞察。