第13章 Zabbix分布式监控企业实战

企业服务器对用户提供服务,作为运维工程师最重要的事情就是保证该网站正常稳定的运行,需要实时监控网站、服务器的运行状态,并且有故障及时去处理。

监控网站无需人工时刻去访问WEB网站或者登陆服务器去检查,可以借助开源监控软件例如Zabbix、Cacti、Nagios、Ganglia等来实现对网站的7x24小时的监控,并且做到有故障及时报警通知SA解决。
本章向读者介绍企业级分布式监控Zabbix入门、Zabbix监控原理、最新版本Zabbix安装实战、Zabbix批量监控客户端、监控MYSQL、WEB关键词及微信报警等。

13.1 Zabbix监控系统入门简介

Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位并解决存在的各种问题。Zabbix分布式监控系统的优点如下:

 支持自动发现服务器和网络设备;
 支持底层自动发现;
 分布式的监控体系和集中式的WEB管理;
 支持主动监控和被动监控模式;
 服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, MAC等;
 Agent客户端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD,Windows等;
 基于SNMP、IPMI接口方式、Agent方式;
 安全的用户认证及权限配置;
 基于WEB的管理方法,支持自由的自定义事件和邮件、短信发送;
 高水平的业务视图监控资源,支持日志审计,资产管理等功能;
 支持高水平API二次开发、脚本监控、自Key定义、自动化运维整合调用。

13.2 Zabbix监控组件及流程

Zabbix监控组件如图13-1所示,主要由三大组件,分别是Zabbix server端、Zabbix Proxy、Agent客户端,其中Zabbix Server端包括:WEB GUI、Database、Zabbix_Server。

在这里插入图片描述

图13-1 Zabbix监控组件

Zabbix监控系统具体监控系统流程如图13-2所示:
在这里插入图片描述

图13-2 Zabbix监控流程图

Zabbix监控完整流程包括:Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。

当Zabbix监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:邮件、微信报警或者执行命令等操作。如下为Zabbix完整监控系统,各个部分负责的工作:

 Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
 Database Storage:专用于存储所有配置信息,以及存储由Zabbix收集到的数据;
 Web interface:Zabbix的GUI接口,通常与Server运行在同一台主机上;
 Proxy:常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
 Zabbix Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
Zabbix监控部署在系统中,会包含常见的四个程序:zabbix_server 、zabbix_get、zabbix_agentd 、zabbix_proxy、zabbix_sender等。四个程序启动后分别对应四个进程,如下为每个进程的功能:
 Zabbix_server:Zabbix服务端守护进程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的数据最终均是提交给Zabbix_Server;
 Zabbix_Agentd:客户端守护进程,负责收集客户端数据,例如收集cpu负载、内存、硬盘使用情况等;
 Zabbix_get:Zabbix数据获取工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令;
 Zabbix_sender:zabbix数据发送工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据;
 Zabbix_proxy:zabbix分布式代理守护进程,分布式监控架构需要部署Zabbix_Proxy。

13.3 Zabbix监控平台概念

Zabbix监控系统包括很多监控概念,掌握Zabbix监控概念能对Zabbix监控快速的理解,如下为Zabbix常用术语及解释。

主机(host): 被监控的网络设备,可以写IP或者DNS;
主机组(host group): 主机组用于管理主机,可以批量设置权限;
监控项(item): 具体监控项,items值由独立的keys进行识别;
触发器(trigger):为某个items设置触发器,达到触发器会执行action动作;
事件(event): 例如达到某个触发器,称之为一个事件;
动作(action): 对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation):发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等;
媒介(media):发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification):通过设置的媒介向用户发送的有关某事件的信息;
远程命令 : 达到触发器,可以在被监控端执行命令;
模板(template): 可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario):用于检测web站点可用性,监控HTTP关键词;
web前端(frontend):Zabbix的web接口;
图形(graph) : 监控图像;
屏幕(screens): 屏幕显示;
幻灯(slide show): 幻灯显示。

13.4 Zabbix监控平台部署

(1) Zabbix Server端和Zabbix Agent执行如下代码:
Zabbix监控平台部署,至少需要安装四个组件,分别是Zabbix_Server、Zabbix_Web、Databases、Zabbix_Agent,如下为Zabbix监控平台安装配置详细步骤:

(2) 系统环境
Server端:192.168.149.128
Agent端:192.168.149.129

(3) 下载zabbix版本,各个版本之间安装方法相差不大,可以根据实际情况选择安装版本,本文版本为Zabbix-3.2.6.tar.gz。

wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz 
yum -y  install  curl  curl-devel net-snmp net-snmp-devel perl-DBI
groupadd  zabbix
useradd  -g  zabbix zabbix
usermod  -s  /sbin/nologin  zabbix

(4) Zabbix Server端配置
创建zabbix数据库,执行授权命令:

create  database  zabbix  charset=utf8;
grant all on zabbix.* to zabbix@localhost identified by '123456';
flush privileges;

解压zabbix软件包并将Zabbix基础SQL文件导入数据至Zabbix数据库:

tar   zxvf  zabbix-3.2.6.tar.gz
cd   zabbix-3.2.6
mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql
mysql -uzabbix -p123456 zabbix <database/mysql/images.sql
mysql -uzabbix -p123456 zabbix < database/mysql/data.sql

切换至Zabbix解压目录,执行如下代码,安装Zabbix_server:

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp  --with-libcurl
make
make install
ln -s /usr/local/zabbix/sbin/zabbix_*  /usr/local/sbin/

Zabbix server安装完毕,cd /usr/local/zabbix/etc/目录,如图13-3所示:

在这里插入图片描述

图13-3 Zabbix监控流程图

备份Zabbix server配置文件,代码如下:

cp  zabbix_server.conf  zabbix_server.conf.bak

将zabbix_server.conf配置文件中代码设置为如下:

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456

同时cp zabbix_server启动脚本至/etc/init.d/目录,启动zabbix_server, Zabbix_server默认监听端口为10051。

cd  zabbix-3.2.6
cp  misc/init.d/tru64/zabbix_server  /etc/init.d/zabbix_server
chmod  o+x  /etc/init.d/zabbix_server

配置Zabbix interface Web页面,安装HTTP WEB服务器,将Zabbix WEB代码发布至Apache默认发布目录,由于Zabbix3.2+ PHP版本需要使用PHP5.4.0版本,请将本机PHP版本升级至5.4.0+,PHP5.3升级至PHP5.6,代码如下:

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
yum remove php*
yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64  -y
yum   install  httpd  httpd-devel  httpd-tools  -y
cp -a   /root/zabbix-3.2.6/frontends/php/*    /var/www/html/
sed    -i   '/date.timezone/i date.timezone = PRC'   /etc/php.ini

重新启动Zabbix Server、HTTP、MYSQL服务,代码如下:

/etc/init.d/zabbix_server  restart
/etc/init.d/httpd     restart 
/etc/init.d/mysqld   restart

(5) Zabbix WEB GUI安装配置
通过浏览器Zabbix_WEB验证,通过浏览器访问http://192.168.149.128/,如图13-4所示:

在这里插入图片描述

图13-4 Zabbix WEB安装界面

单击下一步,出现如图13-5所示,如果有错误提示,需要把错误依赖解决完,方可进行下一步操作。

在这里插入图片描述

图13-5 Zabbix WEB安装错误提示

如上异常错误解决方法代码如下,安装缺失的软包,并修改php.ini对应参数的值即可,如图13-6所示:

yum  install  php-mbstring  php-bcmath  php-gd  php-xml  -y
yum  install  gd  gd-devel  -y
sed   -i '/post_max_size/s/8/16/g;/max_execution_time/s/30/300/g;/max_input_time/s/60/300/g;s/\;date.timezone.*/date.timezone \= PRC/g;s/\;always_populate_raw_post_data/always_populate_raw_post_data/g'  /etc/php.ini
service  httpd  restart

在这里插入图片描述

图13-6 Zabbix WEB测试安装环境

单击下一步,如图13-7所示,配置数据库连接,输入数据库名、用户、密码,单击Test connection,显示OK,单击下一步即可。

在这里插入图片描述

图13-7 Zabbix WEB数据库配置

继续单击下一步出现如图13-8所示,填写Zabbix Title显示,可以为空,可以输入自定义的名称。

在这里插入图片描述

图13-8 Zabbix WEB详细信息

单击下一步,如图13-9所示,需修创建zabbix.conf.php文件,执行如下命令,或者单击“Download the configuration file”下载zabbix.conf.php文件,并将该文件上传至/var/www/html/conf/,并设置可写权限,刷新WEB页面,zabbix.conf.php内容代码如下,最后单击Finish即可:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15466.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024IJCAI | MetalISP: 仅用1M参数的RAW到RGB高效映射模型

文章标题是&#xff1a;《MetaISP:Effcient RAW-to-sRGB Mappings with Merely 1M Parameters》 MetaISP收录于2024IJCAI&#xff0c;是新加坡国立大学&#xff08;Xinchao Wang为通讯作者&#xff09;和华为联合研发的新型ai-isp。 原文链接&#xff1a;MetaISP 【1】论文的…

使用 ts-node 运行 ts文件,启动 nodejs项目

最近在写一个nodejs项目&#xff0c;使用 ts-node 启动项目。遇到了一些问题&#xff0c;在此记录一下。 ts-node 是 TypeScript 执行引擎和 Node.js 的 REPL(一个简单的交互式的编程环境)。 它能够直接在 Node.js 上执行 TypeScript&#xff0c;而无需预编译。 这是通过挂接…

《鸿蒙生态:开发者的机遇与挑战》

一、引言 在当今科技飞速发展的时代&#xff0c;操作系统作为连接硬件与软件的核心枢纽&#xff0c;其重要性不言而喻。鸿蒙系统的出现&#xff0c;为开发者带来了新的机遇与挑战。本文将从开发者的角度出发&#xff0c;阐述对鸿蒙生态的认知和了解&#xff0c;分析鸿蒙生态的…

PHP代码审计 - SQL注入

SQL注入 正则搜索(update|select|insert|delete).*?where.*示例一&#xff1a; bluecms源码下载&#xff1a;source-trace/bluecms 以项目打开网站根目录&#xff0c;并以ctrlshiftf打开全局搜索 (update|select|insert|delete).*?where.*并开启正则匹配 最快寻找脆弱点的…

Essential Cell Biology--Fifth Edition--Chapter one (5)

1.1.4 The eukaryotic cell [真核细胞] 真核细胞&#xff0c;一般来说&#xff0c;比细菌和古细菌更大&#xff0c;更复杂。有些是独立的单细胞生物&#xff0c;如变形虫和酵母&#xff08;图1-14&#xff09;&#xff1b;另一些则生活在多细胞集合中。所有更复杂的多细胞生物…

线程-2-线程概念与控制

main 线程常见寄存器&#xff08;CR3 EIP IR MMU TLB&#xff09; CR3是当前进程页表物理内存地址&#xff08;包不能虚拟地址&#xff0c;不然套娃了&#xff09; CPU中有寄存器指向task_struct* current EIP&#xff1a;入口虚拟地址 IR&#xff1a;当前命令地址系统总线&a…

Vulkan 开发(十一):Vulkan 交换链

Vulkan 系列文章&#xff1a; 1. 开篇&#xff0c;Vulkan 概述 2. Vulkan 实例 3. Vulkan 物理设备 4. Vulkan 设备队列 5. Vulkan 逻辑设备 6. Vulkan 内存管理 7. Vulkan 缓存 8. Vulkan 图像 9. Vulkan 图像视图 10. Vulkan 窗口表面&#xff08;Surface&#xff…

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…

百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章

百度搜索AI探索版是百度推出的一款基于大语言模型文心一言的综合搜索产品‌。以下是关于百度搜索AI探索版的详细介绍&#xff1a; ‌产品发布‌&#xff1a;百度搜索AI探索版在百度世界大会上进行了灰度测试&#xff0c;并面向用户开放体验‌。 ‌核心功能‌&#xff1a;与传…

Linux软件包管理与Vim编辑器使用指南

目录 一、Linux软件包管理器yum 1.什么是软件包&#xff1f; 2.什么是软件包管理器&#xff1f; 3.查看软件包 4.安装软件 ​编辑 5.卸载软件 Linux开发工具&#xff1a; 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式&#xff08;Normal mode&#xff0…

Android Osmdroid + 天地图 (一)

Osmdroid 天地图 前言正文一、配置build.gradle二、配置AndroidManifest.xml三、获取天地图的API Key① 获取开发版SHA1② 获取发布版SHA1 四、请求权限五、显示地图六、源码 前言 Osmdroid是一款完全开源的地图基本操作SDK&#xff0c;我们可以通过这个SDK去加一些地图API&am…

2024国内AI工具十大推荐丨亲测好用‼️

&#x1f680;探索了市面上数百款AI工具后&#xff0c;我精心挑选了10款在不同场景下超级好用的神器&#xff0c;快来一起看看吧&#xff01;&#x1f31f; 1️⃣豆包 基于云雀模型开发&#xff0c;具备聊天机器人、写作助手、英语学习助手等功能&#xff0c;能够进行多轮对话…

Unity学习---IL2CPP打包时可能遇到的问题

写这篇主要是怕自己之后打包的时候出问题不知道怎么搞&#xff0c;所以记录一下。 问题一&#xff1a;类型裁剪 IL2CPP打包后会自动对Unity工程的dll进行裁剪&#xff0c;将代码中没有引用到的类型裁剪掉。特别是通过反射等方式调用一些类的时候&#xff0c;很容易出问题。 …

多模态大模型(2)--BLIP

大模型如火如荼&#xff0c;研究者们已经不再满足于基本文本的大语言模型&#xff08;LLM, Large Language Model&#xff09;&#xff0c;AI领域的热点正逐步向多模态转移&#xff0c;具备多模态能力的多模态大型语言模型&#xff08;MM&#xff08;Multi-Modal&#xff09;-L…

基于MATLAB身份证号码识别

课题介绍 本课题为基于连通域分割和模板匹配的二代居民身份证号码识别系统&#xff0c;带有一个GUI人机交互界面。可以识别数十张身份证图片。 首先从身份证图像上获取0&#xff5e;9和X共十一个号码字符的样本图像作为后续识别的字符库样本&#xff0c;其次将待测身份证图像…

Siggraph Asia 2024 | Adobe发布MagicClay:可通过文字引导去对3D模型中的特定部分进行雕刻

今天给大家介绍一篇来自Adobe研究人员在Siggraph Asia 2024上发表的最新工作MagicClay&#xff0c;它是一款结合网格和距离场(SDF)的混合式工具&#xff0c;可以通过文字引导去对3D模型中的特定部分进行雕刻。允许艺术家通过文字提示进行局部网格编辑&#xff0c;支持生成具纹理…

滑动窗口的使用

一、定义与基本原理 滑动窗口是一种流量控制技术&#xff0c;也用于管理和处理数据流。它通过定义一个固定大小或可根据特定条件动态调整的窗口&#xff0c;在数据流或数据序列上滑动&#xff0c;以便高效地处理其中的数据。这种技术能够限制同时处理的数据量&#xff0c;从而…

Python学习26天

集合 # 定义集合 num {1, 2, 3, 4, 5} print(f"num&#xff1a;{num}\nnum数据类型为&#xff1a;{type(num)}") # 求集合中元素个数 print(f"num中元素个数为&#xff1a;{len(num)}") # 增加集合中的元素 num.add(6) print(num) # {1,2,3,4,5,6} # 删除…

android开发

文章目录 android开发 类微信界面整体框架展示&#xff1a;主页Fragment_MainActivity2&#xff1a;1. 聊天界面2. 用户界面用户界面的跳转 3. 朋友圈界面4. 我的界面 android开发 类微信界面 整体效果展示&#xff1a; 整体框架展示&#xff1a; 4个主要的fragment页面&#…

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去&#xff0c;比如说送到HDFS、Hbase&#xff0c;简单来说flume就是收集日志的。 Flume两个版本区别&#xff1a; ​ 1&…