首页 > 其他分享 >Zabbix 分布式监控平台

Zabbix 分布式监控平台

时间:2023-08-08 19:23:41浏览次数:46  
标签:zabbix agent server Zabbix yum 监控 分布式

目录

一、Zabbix 概述

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。

利用一个优秀的监控软件,我们可以:

  • 通过一个友好的界面进行浏览整个网站所有的服务器状态
  • 可以在Web 前端方便的查看监控数据
  • 可以回溯寻找事故发生时系统的问题和报警情况

1. Zabbix 是什么

  • Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

  • Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

  • Zabbix 由2部分构成,Zabbix server 与可选组件Zabbix agent。 通过C/S模式采集数据,通过B/S模式在web端展示和配置。

  • Zabbix server 可以通过SNMP(简单网络管理协议),Zabbix agent,ping, 端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它 可以运行在Linux等平台上。(支持多个平台,windows也支持)

  • Zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

2. Zabbix 监控原理

Zabbix agent安装在被监控的主机上,Zabbix agent 负责定期收集客户端本地各项数据,并发送至Zabbix server 端,Zabbix server收到数据后,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。

当Zabbix 监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、 restart、 install 等)。

用户可以基于Zabbix-web可以在WEBUI界面中查看展现的数据图像,以及进行相关的配置管理用户还可以在WEBUI界面中设置监控项的触发器,如被监控的数据指标超过触发器设定的阈值,会进行发送通知信息或者一些应急操作指令。

3. Zabbix 监控对象

系统监控、网络设备监控、java 监控、硬件监控、应用服务监控、mysql数据库监控、URL监控

4. Zabbix 常见的五个程序

Zabbix监控部署在系统中,包含常见的五个程序:

Zabbix_server、Zabbix_agent、 Zabbix_proxy、Zabbix_get、Zabbix_sender

(1)Zabbix server

Zabbix服务端守护进程,其中 Zabbix agent、Zabbix get、Zabbix_sender、Zabbix proxy钓数据最终都提交给Zabbix server

Zabbix server 默认端口号:10051

(2)Zabbix agent

客户端守护进程,负责收集客户端数据,例如:收集 CPU_负载、内存、硬盘使用情况等

Zabbix agent 默认端口号:10050

(3)Zabbix proxy

Zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署

(4)Zabbix get

Zabbix数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令

(5)Zabbix sender

Zabbix数据发送工具,用户发送数据给 server或 proxy端,通常用户耗时比较长的检查

5. Zabbix 工作原理

采用了两种模式

主动模式:agent 向server发起连接

被动模式:server向agent发起连接

主动模式 指的是Zabbix服务器主动向被监控的设备发送请求,以获取数据。在主动模式下,被监控设备不需要主动发送数据给Zabbix服务器,而是等待服务器的请求并响应。这种模式可以轮询设备并及时获取数据,但对服务器和被监控设备的资源消耗较高

**被动模式 **指的是被监控的设备主动将数据发送给Zabbix服务器。在被动模式下,Zabbix服务器会监听设备上的代理程序或端口,并接收来自设备的数据。这种模式可以减少服务器的负载,并且适用于大规模的监控环境

选择主动还是被动模式取决于具体的监控需求和网络环境。如果需要实时获取数据或者网络中存在大量被监控的设备,可以选择主动模式。如果希望降低服务器负载或者网络中的设备数量较少,可以选择被动模式。

二、部署 Zabbix

1. 环境

节点 主机IP 服务 硬件
zabbix-server 192.168.23.45 zabbix-server-mysql
zabbix-agent
2C 4G(至少)
zabbix-agent 192.168.23.50 zabbix-agent2

关闭防火墙及更改主机名

主机192.168.23.45

systemctl stop firewalld
setenforce 0

hostnamectl set-hostname zabbix-server
su

主机192.168.23.50

systemctl stop firewalld
setenforce 0

hostnamectl set-hostname zabbix-agent
su

2. 部署 Zabbix 服务端

建议使用Zabbix 5.0/4.6/4.8版本,关闭防火墙及SeLinux安全机制

(1)安装 Zabbix 源

# 获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

# 更换 zabbix.repo 为阿里云
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

# 清除yum缓存及创建缓存元数据
yum clean all && yum makecache

(2)安装 Zabbix服务端及mysql、客户端

yum -y install zabbix-server-mysql zabbix-agent

安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。

yum -y install centos-release-scl

(3)修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下

# 开启安装源
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/zabbix.repo

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

(4)安装 zbbix 所需的数据库

yum -y install mariadb-server mariadb
systemctl enable --now mariadb

# 初始化数据数据库,并设置密码,如 123123
mysql_secure_installation

(5)添加数据库用户以及 zabbix 所需的数据库信息

# 登录数据库
mysql -u root -p123123

# 创建zabbix数据库并设置编码为utf-8
create database zabbix character set utf8 collate utf8_bin;

# 给用户赋权 
grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';

# 刷新
flush privileges;

# 退出数据库界面
\q

(6)导入数据库信息

# 查询sql文件的位置
rpm -ql zabbix-server-mysql

# 导入数据库信息
zcat /usr/share/doc/zabbix-server-mysql-5.0.36/create.sql.gz | mysql -u root -p123123 zabbix

(7)修改 zabbix server 配置文件,修改数据库密码

vim /etc/zabbix/zabbix_server.conf
# 124行,指定zabbix数据库密码
DBPassword=zabbix

(8)修改 zabbix 的 php 配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
# 25行,取消注释,修改时区
php_value[date.timezone] = Asia/Shanghai

(9)启动 zabbix 相关服务

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

(10)浏览器检验

浏览器访问:http://192.168.23.45/zabbix

点击下一步,设置数据库的密码 zabbix

安装完成后,默认的登录账号和密码为:Admin/zabbix

设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

image-20230808164854488

image-20230808164920631

image-20230808164955976

image-20230808165017355

image-20230808165113114

image-20230808165207262

image-20230808165228403

image-20230808165430116

image-20230808165457274

image-20230808165520064

(11)解决zabbix web页面中文出现乱码

image-20230808170154332

安装文泉驿微米黑字体(wqy-microhei-fonts),然后将该字体文件复制到DejaVuSans.ttf文件

yum -y install wqy-microhei-fonts

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

image-20230808171049283

3. 部署 Zabbix 客户端

zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2

zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口

(1)服务器和客户端都配置时间同步

# zabbix-server和zabbix-agent节点
yum -y install ntpdate
ntpdate -u ntp.aliyun.com

(2)客户端配置时区,与服务器保持一致

mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date

(3)设置 zabbix 的下载源,安装 zabbix-agent2

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum -y install zabbix-agent2

(4)修改 agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.23.45			# 80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.23.45		# 125行,指定 zabbix 服务端的 IP 地址
Hostname=zabbix-agent			# 131行,指定当前 zabbix 客户端的主机名

(5)启动 zabbix-agent2

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

(6)在服务端验证 zabbix-agent2 的连通性

# 安装 zabbix 主动获取数据的命令
yum -y install zabbix-get

zabbix_get -s '192.168.23.50' -p 10050 -k 'agent.ping'

zabbix_get -s '192.168.23.50' -p 10050 -k 'system.hosthome'

image-20230808183521329

(7)在 Web 页面中添加 agent 主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】

【主机名称】设置成 zabbix-agent

【可见的名称】设置成 zabbix-agent-192.168.23.50

【群组】选择 Linux servers

【Interfaces】的【IP地址】设置成 192.168.23.50

再点击上方菜单栏【模板】

【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent

点击 【添加】

自定义脚本监控 https://kaikai136.blog.csdn.net/article/details/111309497?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&utm_relevant_index=1

标签:zabbix,agent,server,Zabbix,yum,监控,分布式
From: https://www.cnblogs.com/m-zhuang/p/17615179.html

相关文章

  • 深入浅出关于微服务架构实战指南:分布式系统的设计与部署技巧
    深入浅出关于微服务架构实战指南:分布式系统的设计与部署技巧微服务架构实战指南:分布式系统的设计与部署技巧摘要:随着互联网应用的快速发展,传统的单体应用架构已经无法满足高可用、可扩展、快速迭代等需求。微服务架构的出现为解决这些问题提供了一种新的思路。本文将深入探讨微......
  • zabbix 基于 Web 界面的提供分布式系统监视
    zabbix基于Web界面的提供分布式系统监视,能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。目录一、zabbix概述二、监控原理三、zabbix组件四、zabbix架构五、zabbix工作原理六、部署zabbix七、总结  ......
  • 安防监控视频汇聚平台EasyCVR分发的FLV视频流在VLC中无法播放是什么原因?
    众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上,视频监控汇聚平台EasyCVR的性能也同样表现得很优秀,平台可对外分发多格式的视......
  • 如何实现对主机的立体监控?
    主机监控是保证系统稳定性和性能的重要环节之一,那应该如何实现对主机的立体监控?本期EasyOps产品使用最佳实践,我们将为您揭晓:主机应该如何分组和管理?主机监控应该关注哪些关键性指标?背景通过监控主机的各项指标,我们可以及时发现问题、诊断故障,并采取相应的措施来确保主机的正常运行......
  • 如何通过navicat连接数据库修改EasyCVR视频监控管理平台的登录密码?
    TSINGSEE青犀视频监控管理平台EasyCVR可以根据不同的应用场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,平台可实现视频实时直播、云端录像、云存储、回放与检索、告警上报、视频快照、视频转码与分发、平台级联等。......
  • 监控Kafka的关键指标
    Kafka架构上面绿色部分PRODUCER(生产者)和下面紫色部分CONSUMER(消费者)是业务程序,通常由研发人员埋点解决监控问题,如果是Java客户端也会暴露JMX指标。组件运维监控层面着重关注蓝色部分的BROKER(Kafka节点)和红色部分的ZOOKEEPER。ZooKeeper也是Java语言写的,监控相对简单,另......
  • 【转】分布式事务,EventBus 解决方案:CAP【中文文档】
    【转】分布式事务,EventBus解决方案:CAP【中文文档】最新文档地址:https://github.com/dotnetcore/CAP/wiki前言很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对CAP还不知道的同学可以先看一下这篇文章。本文档为CAP文献(W......
  • 分布式链路跟踪springcloud-Sleuth和springcloud-Zipkin
    分布式链路跟踪springcloud-Sleuth和springcloud-Zipkin前言各大厂分布式链路跟踪系统架构对比随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,这些组件共同构成了繁杂的分......
  • 数据仓库(十二)---分布式SQL查询引擎---teradata版本的presto安装和使用
    我们在使用presto过程中,发现facebook原版和京东原版都是解压可用,teradata版本的安装要麻烦一些。下面对teradata版本的安装过程进行记录。首要条件1、需要python2.6或者python2.7环境之所以需要python环境是因为teradata版本的presto把安装封装成了集群式安装。根据配置在安装过......
  • python监控强势票日志
    c:\python38\python.exeF:/GZH/demo/量化/easyquant/utils/ts/A实时监控近10天最强票+昨日涨停票.pyglobal_config_path:c:\python38\lib\site-packages\easytrader/config/global.json++++++++++++++++(近10日最强+昨日涨停票)+++++++++++++++++++++++++++++++:selectdist......