Zabbix监控系统

一.监控软件的作用:

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

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

  • 对系统不间断实时监控
  • 实时反馈系统当前状态
  • 保证服务可靠性安全性
  • 保证业务持续稳定运行

二.Zabbix基本介绍: 

1.什么是zabbix:

zabbix:是一款开源免费的,自动化发现服务与网络设备的分布式监控,可以监视应用层服务并以web前端页面集中管理并展示

2.zabbix功能:

监控服务器cpu负载、服务器内存使用、服务器磁盘使用网络状态、还可以监控中间件

缺点:只支持传统运维,不支持容器。

3.zabbix运行机制:

zabbix是C/S架构由zabbbix server和zabbix agent组成:

zabbix server 负责存储展示硬件信息,通过B/S模式传给web端展示配置,端口:10051

zabbix  agent 监控收集服务器信息,端口号为10050。

通过C/S模式采集数据,通过B/S模式Web端展示和配置

4.zabbix的3种架构:

C/S架构:

被监控的机器和zabbix直接相连zabbix agent负责采集服务器的信息,zabbix server 负责存储并通过web展示硬件信息

zabbix-proxy-client架构:

被监控的机器和zabbix中间有个proxy代理,zabbix agent将采集的信息传到代理上由代理同一传给zabbix server进行前端页面展示和数据存储。

跨机房,跨网络的中型架构——大于500台

master-zabbix-client架构:

 master下有node节点,node可以存储数据,node有自己的配置文件和数据库注意负责将配置信息和监控数据与master同步,node下可以直接接入主机或接入代理proxy。

Master-Node-Client该架构是Zabbix最复杂的监控架构,适用于跨网络跨机房设备多的大型环境。每个Node同时接一个Sever端,Node下面可以接Proxy端,也可以直接连接Client,Node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向Master进行数据同步,Master故障损坏对Node其下架构的完整性无任何影响

5.zabbix工作原理及数据走向:

  1. zabbix  agent在主机上采集监控数据,将采集的数据传给zabbix server
  2. zabbix server收到数据后将数据存在自己的数据库中
  3. 然后从数据库中提取数据进行分析,是否需要报警
  4. 分析完成后server在web前端页面进行界面数据展示

6.zabbix监控模式:

主动模式:

  • 主动检测: 由agent端主动收集信息发送给server端 工具是zabbix_sender
  • 相对于agent而言; agent(active),agent向server请求与自己相关监控项配置, 主动地将server配置的监控项相关的数据发送给server;
  • 主动监控能极大节约监控server的资源。

被动模式: 

  • 被动检测:由server端主动拉取信息 工具是zabbix_get
  • 相对于agent而言 ; agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;

7.Zabbix的监控对象:

  • 硬件监控:通过 SNMP 来进行路由器交换机的监控
  • 系统监控:如 CPU 的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘 inode 节点
  • 服务监控:比如公司用 LNMP nginx 自带 Status 模块、 PHP 也有相关的 Status 、 MySQL 的话可以通过 ODBC协议 来进行监控
  • 网络监控:如果是云主机又不是跨机房,那么可以选择不监控网络
  • 安全监控:如果是云主机可以考虑使用自带的安全防护。当然也可以Zabbix监控 iptables 如果是硬件,那么推荐以Zabbix监控硬件防火墙
  • Web 监控:web 监控的话题其实还是很多。比如可以使用自带的 web 监控来监控页面相关的延迟、 js 响应时间、下载时间、等等
  • 日志监控:如果是 web 的话可以使用监控 Nginx 的 500x 日志。PHP 的 ERROR 日志
  • 流量分析:平时我们分析日志都是拿 awk sed xxx 一堆工具来实现。这样对我们统计 ip 、 pv 、 uv 不是很方便。那么可以使用百度统计、 google 统计、商业,让开发嵌入代码即可 (不想关建议去掉)
  • 可视化:通过 screen 以及引入一 些第三方的库来美化界面,同时我们也需要知道、订单量突然增加、 突然减少。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了,还是被攻击了。可以结合监控平台来梳理各个系统之间的业务关系
  • 自动化监控:如上我们做了那么多的工作,当然不能是一台一台的来加 key 实现。可以通过Zabbix 的主动模式以及被动模式来实现。当然最好还是通过 API 来实现

8.Zabbix的程序组件:

  1. Zabbix agent:客户端守护进程,负责部署在被监控主机上,把被监控主机的数据传送给zabbix server,例如:收集 CPU 负载、内存、硬盘使用情况等;
  2. Zabbix server:服务端守护进程,负责接收agent发送的信息,组织配置信息,统计配置信息和操作数据等
  3. Zabbix proxy:zabbix分布式代理守护进程,分布式环境中使用,zabbix proxy代表server端管理该区域中的信息收集,最终统一发往zabbix server
  4. Zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令
  5. Zabbix sender:zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查

三、部署Zabbix:

1. 环境准备:

节点IP地址安装服务
zabbix-server192.168.91.10zabbix-server-mysql 、zabbix-agent
zabbix-agent192.168.91.20zabbix-agent2

关闭防火墙和防护:

#开机不再启动防火墙
systemctl disable --now firewalld   
setenforce 0

2.部署Zabbix服务端(端口号10051):

#获取下载资源
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/
 
#更换 zabbix.repo 为阿里源
sed -i  's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo  
 
#清缓存并重新建立元数据
yum clean all && yum makecache 

安装SCL(Software Collections),修改 Zabbix-front 前端源:

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

#安装SCL所需
yum install -y centos-release-scl.noarch
 
#修改zabbix-frontend前端源,开启安装源
vim zabbix.repo 
---------------
第11行 enabled=1
------------------
 
#安装SCL
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

安装Zabbix所需的数据库:

yum install -y mariadb-server.x86_64 mariadb
systemctl enable --now mariadb.service 
yum install -y zabbix-server-mysql zabbix-agent

初始化数据库:

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

添加数据库用户,以及Zabbix所需的数据库信息:

#登入数据库
mysql -uroot -p123
 
#修改字符集utf8
create database zabbix character set utf8 collate utf8_bin;  
 
#创建权限用户,是的zabbix可以访问数据库
grant all on zabbix.*to 'zabbix'@'%' identified by 'zabbix'; 
 
#刷新权限
flush privileges;  

导入数据库信息:

#查询sql文件位置
rpm -ql zabbix-server-mysql  
zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uroot -p123 zabbix

修改Zabbix server配置文件:

#修改数据库密码
vim /etc/zabbix/zabbix_server.conf 
------------------------------------------------
DBPassword=zabbix					#124行,指定 zabbix 数据库的密码
 
#修改时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 
--------------------------------------------------
php_value[date.timezone] = Asia/Shanghai  #25行,取消注释,修改时区

启动Zabbix相关服务:

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

浏览器访问验证 :

 

 

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

 

解决 zabbix-server Web页面web问题:

yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 

3.部署zabbix客户端(端口号10050):

zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

服务端和客户端,配置时间同步:

yum install -y ntpdate.x86_64 
ntpdate -u ntp.aliyun.com

客户端配置时区,要与服务端保持一致:

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

设置Zabbix的下载源,安装Zabbix-agent2

#设置zabbix的下载源
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

安装Zabbix-agent2,并修改配置文件:

#安装zabbix-agent2
yum install -y zabbix-agent2  
 
#修改配置文件
vim /etc/zabbix/zabbix_agent2.conf 
-------------------------------------------
Server=192.168.79.210			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.79.210		#125行,指定 zabbix 服务端的 IP 地址
Hostname=agent1			        #136行,指定当前 zabbix 客户端的主机名
---------------------------------------------

启动Zabbix-agent2:

systemctl start zabbix-agent2.service 
systemctl enable zabbix-agent2.service 
ss -natp | grep zabbix

服务端验证Zabbix-agent2 的连通性:

yum install -y zabbix-get.x86_64 
zabbix_get -s '192.168.91.20' -p 10050 -k 'agent.ping'
zabbix_get -s '192.168.91.20' -p 10050 -k 'system.hostname'

 

4.在Web页面创建自定义监控项模板:

客户端操作:

#切换目录
cd /etc/zabbix/zabbix_agent2.d/
 
#修改
vim UserParameter_login.conf
----------------------------------
UserParameter=login.user,who|wc -l
-----------------------------------------
 
#重启服务
systemctl restart zabbix-agent2

创建模板:

【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义

创建应用集(用于管理监控项的): 

 创建监控项:

创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警) 

创建图形:

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

测试:多开几个终端: 

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值