网络运维Day14
监控概述
-
监控的目的
- 报告系统运行状况
- 每一部分必须同时监控
- 内容包括吞吐量、反应时间、使用率等
- 提前发现问题
- 进行服务器性能调整前,知道调整什么
- 找出系统的瓶颈在什么地方
-
监控的资源类别
- 公开数据
- Web、FTP、SSH、数据库等应用服务
- TCP或UDP端口
- 私有数据
- CPU、内存、磁盘、网卡流量等使用信息一用户、进程等运行信息
- 公开数据
-
自动化监控系统
- Cacti:基于SNMP协议的监控软件,强大的绘图能力
- Nagios:基于Agent监控,强大的状态检查与报警机制插件极多,自己写监控脚本嵌入到Nagios非常方便-
- Zabbix:基于多种监控机制,支持分布式监控
Zabbix简介
- Zabbix是一个高度集成的监控解决方案可以实现企业级的开源分布式监控
- Zabbix通过C/S模式采集监控数据
- Zabbix通过B/S模式实现Web管理

环境部署
- 监控服务器需要使用Web页面操作,因此需要先部署LNMP
- 监控服务器可以通过SNMP或Agent采集数据数据可以写入MySQL、Oracle等数据库中
- 服务器使用LNMP实现web前端的管理
- 被监控主机
- 被监控主机需要安装Zabbix_agent
- 常见的网络设备一般支持SNMP
- 使用模板机克隆下方实验主机
| 主机名 | IP地址 |
|---|---|
| zabbix-server | 192.168.8.100 |
| zabbx-agent | 192.168.8.101 |
zabbix-server部署监控环境(将教学环境中的som.tar.gz上传至虚拟机Zabbix-server的/root)
[root@proxy ~]# hostnamectl set-hostname zabbix-server #修改主机名
[root@zabbix-server ~]# yum -y install gcc pcre-devel openssl-devel make #安装nginx依赖包
[root@zabbix-server ~]# mkdir /root/som
[root@zabbix-server ~]# tar -xf som.tar.gz -C /root/som
[root@zabbix-server ~]# cd som/
[root@zabbix-server som]# tar -xf nginx-1.16.1.tar.gz
[root@zabbix-server som]# cd nginx-1.16.1/
[root@zabbix-server nginx-1.16.1]# ./configure --with-http_ssl_module #配置nginx,支持加密功能
[root@zabbix-server nginx-1.16.1]# make #编译
[root@zabbix-server nginx-1.16.1]# make install #编译并安装
[root@zabbix-server ~]# yum -y install php php-mysql php-fpm #安装php相关软件
[root@zabbix-server ~]# yum -y install mariadb mariadb-devel mariadb-server #安装mariadb相关软件
- 修改nginx配置文件实现动静分离,并且需要添加几行内容,开启缓存容量
- 因为zabbix的web页面是使用php写的,这些代码需要占用大量的缓存
[root@zabbix-server~]# vim /usr/local/nginx/conf/nginx.conf
http{fastcgi_buffers 8 16k; #缓存php生成的页面内容,8个16kfastcgi_buffer_size 32k; #缓存php生产的头部信息fastcgi_connect_timeout 300; #连接PHP的超时时间fastcgi_send_timeout 300; #发送请求的超时时间fastcgi_read_timeout 300; #读取请求的超时时间location ~\.php${root html; #访问根目录fastcgi_pass 127.0.0.1:9000; #动态页面转发给9000端口fastcgi_index index.php; #访问首页include fastcgi.conf; #调用配置文件
}
启动相关服务
[root@zabbix-server ~]# systemctl start mariadb #启动mariadb
[root@zabbix-server ~]# systemctl enable mariadb
[root@zabbix-server ~]# systemctl start php-fpm #启动php-fpm
[root@zabbix-server ~]# systemctl enable php-fpm
[root@zabbix-server ~]# /usr/local/nginx/sbin/nginx #启动nginx
编写测试页面
[root@zabbix-server nginx-1.16.1]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
真机访问测试http://192.168.8.100/test.php
安装Zabbix-server(服务端)
- 源码安装zabbix
- 使用MobaXterm将zabbix-3.4.4.tar.gz上传至zabbix-server和zabbix-agent主机的/root
[root@zabbix-server nginx-1.16.1]# cd ..
[root@zabbix-server ~]# yum -y install net-snmp-devel curl-devel libevent-devel #安装zabbix所需要依赖
[root@zabbix-server ~]# tar -xf zabbix-3.4.4.tar.gz #解压zabbix
[root@zabbix-server ~]# cd zabbix-3.4.4/
[root@zabbix-server zabbix-3.4.4]#./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl #配置zabbix
[root@zabbix-server zabbix-3.4.4]# make install #安装zabbix
[root@zabbix-server zabbix-3.4.4]# ls /usr/local/etc/
[root@zabbix-server zabbix-3.4.4]# ls /usr/local/bin/
[root@zabbix-server zabbix-3.4.4]# ls /usr/local/sbin/
初始化准备,创建数据库与数据库账户
[root@zabbix-server ~]# mysql #进入数据库
mysql> CREATE DATABASE zabbix CHARACTER SET utf8; #创建zabbix库支持中文字符集
mysql> GRANT ALL ON zabbix.* to zabbix@"localhost" IDENTIFIED BY 'zabbix'; #授权用户zabbix,密码为zabbix
MariaDB [(none)]> EXIT; #退出数据库连接
私用文件还原数据
MariaDB [(none)]> exit
[root@zabbix-server zabbix-3.4.4]# cd database/mysql/
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql #导入数据
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql #导入数据
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql #导入数据
#注:还原数据的时候顺序不能错
部署监控端站点
[root@zabbix-server mysql]# cd
[root@zabbix-server ~]# cd /root/zabbix-3.4.4/frontends/php/
[root@zabbix-server php]# cp -r * /usr/local/nginx/html/ #将页面放到访问根目录
[root@zabbix-server php]# chmod -R 777 /usr/local/nginx/html/ #服务apache用户权限
初始化zabbix
- 真机浏览器访问: http://192.168.8.100/index.php

根据报错提示需要修改php-fpm的配置文件
[root@zabbix-server~]# vim /etc/php.ini
878 date.timezone = Asia/Shanghai #设置时区
384 max_execution_time = 300 #最大执行时间,秒
672 post_max_size = 32M #POST(上传提交)数据最大容量
394 max_input_time = 300 #服务器接收数据的时间限制
[root@zabbix-server~]# systemctl restart php-fpm #重启php-fpm
[root@zabbix-server~]# yum -y install php-gd php-xml php-ldap php-bcmath php-mbstring
[root@zabbix-server~]# systemctl restart php-fpm #重启php-fpm

- 登录,用户名admin,密码zabbix

- 设置中文环境

启动zabbix_server
启动zabbix服务的监控程序,修改zabbix配置文件
[root@zabbix-server~]# vim /usr/local/etc/zabbix_server.conf
85 DBHost=localhost #数据库主机
95 DBName=zabbix #设置数据库名称
111 DBUser=zabbix #设置数据库账户
119 DBPassword=zabbix #设置数据库密码
38 LogFile=/tmp/zabbix_server.log #设置日志
启动服务
[root@zabbix-server php]# useradd zabbix #不创建用户无法启动服务
[root@zabbix-server php]# zabbix_server
[root@zabbix-server php]# ss -antlp | grep 10051
将zabbix_server设置为开机自启服务
[root@zabbix-server ~]# echo zabbix_server >> /etc/rc.d/rc.local
[root@zabbix-server ~]# echo zabbix_agentd >> /etc/rc.d/rc.local
[root@zabbix-server ~]# chmod +x /etc/rc.d/rc.local
部署zabbix客户端
部署zabbix被监控端服务器
安装软件(以8.101为例)
[root@zabbix-server ~]# scp -r zabbix-3.4.4/ 192.168.8.101:/root/ #将zabbix拷贝给zabbix-agent
[root@zabbix-agent ~]# yum -y install gcc pcre-devel autoconf #安装客户端依赖包
[root@zabbix-agent ~]# cd zabbix-3.4.4/
[root@zabbix-agent zabbix-3.4.4]# ./configure --enable-agent #配置zabbix
[root@zabbix-agentzabbix-3.4.4]# make install #安装zabbix
[root@zabbix-agent ~]# ls /usr/local/etc
[root@zabbix-agent ~]# ls /usr/local/bin
[root@zabbix-agent ~]# ls /usr/local/sbin
修改被监控主机配置文件
[root@zabbix-agent~]# vim /usr/local/etc/zabbix_agentd.conf
93 Server=127.0.0.1,192.168.8.100 #允许访问服务地址列表,即允许谁监控我
134 ServerActive=192.168.8.100:10051 #监控服务器ip地址和端口
30 LogFile=/tmp/zabbix_agentd.log #日志文件
启动服务zabbix-agentd
[root@zabbix-agent zabbix-3.4.4]# useradd zabbix #创建zabbix用户
[root@zabbix-agent zabbix-3.4.4]# zabbix_agentd #启动客户端服务
[root@zabbix-agent zabbix-3.4.4]# ss -antlp | grep 10050 #查看端口
设置被监控端服务为开机自启
[root@zabbix-agent ~]# echo zabbix_agentd >> /etc/rc.d/rc.local
[root@zabbix-agent ~]# chmod +x /etc/rc.d/rc.local
基础监控
添加加监控主机
通过Configuration→>Hosts>Create Host创建、
注意:设置中文环境后,中英文差异

添加被监控主机



为主机添加关联的监控模板
√ 在"Templates"模板选项卡页面中
√ 找到Link new templates,select选择合适的模板添加
√ 这里我们选择Template os Linux模板
点击zabbix-agent被监控主机

查看监控数据
可以点击"Monitoring"->“Latest data”,在过滤器中填写条件,根据群组和主机搜索即可

Zabbix支持查看图形
找到需要的数据,点击后面的Graph(图形)

自定义监控
开启自定义监控功能(zabbix-agent操作,被监控端修改Agent文件)
[root@zabbix-agent~]#vim /usr/local/etc/zabbix_agentd.conf
280 UnsafeUserParameters=1 #是否允许自定义支持key
264 Include=/usr/local/etc/zabbix_agentd.conf.d/ #加载配置文件目录
创建自定义Key
[root@zabbix-agent ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[root@zabbix-agent zabbix_agentd.conf.d]# vim count.line.passwd #自定义监控脚本
UserParameter=count.line.passwd, sed -n '$=' /etc/passwd #统计/etc/passwd有多少行
注:自定义key语法格式UserParameter=自定义key名称,命令
重启Agentd服务
[root@zabbix-agent ~]# killall zabbix_agentd #杀掉zabbix_agentd进程
[root@zabbix-agent ~]# zabbix_agentd #重启zabbix_agentd服务
测试自定义key是否生效
[root@zabbix-agent~]# zabbix_get -s 127.0.0.1 -k count.line.passwd
创建自定义监控模板
登录监控服务器Web管理页面
√ 选择Configuration→>Templates创建模板

配置监控模板
设置模板名称与组名称
√ Template name
√ Visible name
√ New group


模板添加后,默认模板中没有任何应用、项目、触发器、图形等
创建应用集
点击模板后面的Application,刷新出的页面中选择Create Application
设置Application name,点击Add



回到模板
创建监控项目
√ Configuration→>Templates→>ltems→Create item


设置项目参数
项目名称
自定义key(必须与配置文件一致)
应用集选择刚刚创建的应用(Application)



创建图形
与监控项目类似,为监控数据创建图形

设置图形参数
√ 填写名称
√ 图形类别(以此为线条、填充图、饼图、分割饼图)
√ 添加监控项目


将模板关联主机
Configuration>Hosts→选择主机

点击Templates,select选项监控项目,add添加
添加完成后,点击Update更新主机配置


点击图形查看
测试验证,批量创建用户
[root@zabbix-agent zabbix_agentd.conf.d]# for i in {1..10}
> do
> useradd a$i
> done
点击Monitoring→Craphs→>选择条件查看图形

zabbix监控网络设备
- 当被监控端无法安装zabbix_agentd的时候将无法使用zabbix_agent监控
- 这种情况可以基于SNMP协议进行监控
- 后续可以使用华为的eNSP设备模拟路由器,进行监控网路设备实验
总结
- 掌握Zabbix监控服务的作用
- 掌握监控流程
相关文章:
网络运维Day14
监控概述 监控的目的 报告系统运行状况每一部分必须同时监控内容包括吞吐量、反应时间、使用率等提前发现问题进行服务器性能调整前,知道调整什么找出系统的瓶颈在什么地方 监控的资源类别 公开数据 Web、FTP、SSH、数据库等应用服务TCP或UDP端口 私有数据 CPU、内…...
Mac常用软件安装
brew安装 brew 是从下载源码解压然后 ./configure && make install ,同时会包含相关依存库。并自动配置好各种环境变量,而且易于卸载。 这个对程序员来说简直是福音,简单的指令,就能快速安装和升级本地的各种开发环境。 …...
node 文件上传操作(前端 form表单上传 formData上传 后端 node 使用express+multer)
目录 前端form表单上传formData上传 后端 node 使用expressmulter 前端 form表单上传 <h1>个人信息</h1><form action"http://localhost:3000/api/sendFile" method"post" enctype"multipart/form-data"><label for"…...
容器数据卷+MYSQL实战
什么是容器数据卷? 让我们回忆一下docker理念: 就是将应用和环境打包成一个镜像 数据? 如果数据都在容器中,那么我们删除容器,数据就会丢失 !需求:数据持久化就完美了 对于MYSQL࿰…...
开发者测试2023省赛--UnrolledLinkedList测试用例
测试结果 官方提交结果 EclEmma PITest 被测文件UnrolledLinkedList.java /** This source code is placed in the public domain. This means you can use it* without any restrictions.*/package net.mooctest;import java.util.AbstractList; import java.util.Collectio…...
HoudahGeo 6 for Mac:掌控地理位置信息的强大工具
在当今这个信息化的世界,地理位置信息的重要性日益凸显。无论是在工作、学习还是生活中,我们都需要理解和利用地理位置信息。如果你正在寻找一个能帮助你更好地管理和理解地理位置信息的工具,那么HoudahGeo 6 for Mac是一个值得考虑的选择。 …...
Xilinx Artix7-100T低端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持
目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…...
C与汇编深入分析
汇编怎么调用C函数 直接调用 BL main传参数 在arm中有个ATPCS规则(ARM-THUMB procedure call standard)(ARM-Thumb过程调用标准)。 约定r0-r15寄存器的用途: r0-r3:调用者和被调用者之间传递参数r4-r11…...
MySQL中外键的使用及外键约束策略
一、外键约束的概念 外键约束(FOREIGN KEY,缩写FK是数据库设计的一个概念,它确保在两个表之间的关系保持数据的一致性和完整性。 外键是指表中的某个字段的依赖于另一张表中某个字段的值,而被依赖的字段必须具有主键约束或者唯一约束&#…...
Home Assistant使用ios主题更换背景
Home Assistant使用ios主题、更换背景 lovelace-ios-dark-mode-theme 默认前置情况,1、已安转HACS插件2、搜索安装 IOS Dark Mode Theme1)第一、二步应该很容易实现,configuration.yaml文件很容易被找到2)而本人在进行第三步操作时…...
深入了解鼠标光标的设置过程
有一位读者问了这样一个问题: “为什么鼠标光标的设定绑定在窗口类,而不是窗口上?” 这个问题隐含地假设了光标与窗口类相关联。虽然每个窗口类都有一个关联的光标,但决定使用哪个光标的是窗口。 光标设置过程在 WM_SETCURSOR 消…...
数据结构-散列表
列表(Hash Table),又称哈希表,是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关 例:有一堆数据元素,关键字分别为{19,14,23ÿ…...
一款IT团队都在用的私有化知识库,技术开放,还开源了!
IT和软件开发团队需要处理大量的技术文档和知识,通过建立内部知识库,可以将技术文档、代码示例、最佳实践等知识整理和归档起来,方便团队成员查找和参考。 IT和软件开发团队为什么要建立内部知识库? 提高知识管理效率:…...
解决 docker compose 官方 MySQL 镜像在容器中不能输入中文的问题
该问题可以通过添加环境变量解决,途径如下: 一、如果容器没条件或不允许重启,可通过命令行方式临时解决。 docker compose exec SERVICE-NAME env LANGC.UTF-8 mysql -u username -p 二、修改 docker-compose.yml 配置文件一劳永逸 envir…...
基于连续Hopfield神经网络优化——旅行商问题优化计算
大家好,我是带我去滑雪! 利用神经网络解决组合优化问题是神经网络应用的一个重要方面。所谓组合优化问题,就是在给定约束条件下,使目标函数极小(或极大)的变量组合问题。将Hopfield网络应用于求解组合优化问…...
SpringBoot整合Activiti7——定时器事件(九)
文章目录 定时器事件时间定义时间固定时间段时间周期 1.开始事件2.中间事件3.边界事件代码实现xml文件自定义服务任务监听器自定义用户任务监听器测试流程流程执行步骤 定时器事件 可以用在开始事件、中间事件、边界事件上,边界事件可以是中断和非中断边界事件 需要…...
轻量封装WebGPU渲染系统示例<29>- 深度模糊DepthBlur(源码)
实现方式: step1. 通过mrt机制,输出颜色和深度相关数据的两张rtt纹理。 step2. 基于上述颜色纹理,生成一张模糊之后的新rtt纹理。 setp3. 基于深度(也就是距离摄像机的远近)数据,合成颜色和模糊纹理数据,并最终输出。 当前示例…...
LeetCode226. Invert Binary Tree
文章目录 一、题目二、题解2.1 前序遍历版本2.2 中序遍历版本2.3 后序遍历版本 一、题目 Given the root of a binary tree, invert the tree, and return its root. Example 1: Input: root [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] Example 2: Input: root [2,1,3] Ou…...
Java设计模式-创建型模式-建造者模式
建造者模式 建造者模式案例与工厂模式的区别:Builder 注解 建造者模式 建造者模式是将一个复杂对象的构件与表示分离,使得同样的构件过程可以创建不同的表示。 建造者模式将内部构件的创建和组装分割开,一般使用链式编程,代码整洁…...
PyQt中QFrame窗口中的组件不显示的原因
文章目录 问题代码(例)原因和解决方法 问题代码(例) from PyQt5.QtWidgets import * from PyQt5.QtGui import QFont, QIcon, QCursor, QPixmap import sysclass FrameToplevel(QFrame):def __init__(self, parentNone):super().…...
实战揭秘:抖音直播弹幕抓取的三大技术突破与完整实现方案
实战揭秘:抖音直播弹幕抓取的三大技术突破与完整实现方案 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在直播电商蓬勃发…...
FedProx实战:如何用Python在异构网络中优化联邦学习(附代码)
FedProx实战:Python实现异构网络联邦学习优化指南 联邦学习作为分布式机器学习的前沿分支,正面临两大核心挑战:设备间的系统异构性(计算与通信能力差异)和数据分布的统计异构性(non-IID数据)。本…...
LangChain-AI应用开发框架(四)
目录 一.LangChain软件包安装 二.LangChain能力详解 1.本章节环境说明 2.目标与内容 三.详细过程 1.步骤1: a.申请API key并配置环境变量 b.配置环境变量 步骤2:定义大模型 a.安装OpenAI包 b.定义大模型 步骤3:定义消息列表 步骤4ÿ…...
离线部署GraphRAG的tiktoken避坑指南:从源码解析到本地化实践
1. 离线部署GraphRAG的核心痛点:tiktoken的网络依赖问题 当你准备在内网环境部署GraphRAG时,第一个拦路虎往往是tiktoken这个看似简单的编码库。我在某金融机构的私有化部署项目中就遇到过这样的场景:所有服务器都处于物理隔离状态࿰…...
深入Linuxptp:ptp4l与E2E模式下的状态机与报文处理流程剖析
1. Linuxptp与ptp4l基础认知 第一次接触PTP协议时,我被那些专业术语搞得晕头转向。直到在实验室里用示波器抓到实际报文,才真正理解这个时间同步协议的精妙之处。Linuxptp作为开源实现,其中的ptp4l守护进程就像个尽职的交通警察,协…...
Phi-3-mini-128k-instruct效果对比:在Reasoning-Over-Code基准中超越Claude-3-Haiku
Phi-3-mini-128k-instruct效果对比:在Reasoning-Over-Code基准中超越Claude-3-Haiku 1. 模型简介 Phi-3-Mini-128K-Instruct是一个38亿参数的轻量级开放模型,属于Phi-3系列的最新成员。这个模型通过Phi-3数据集进行训练,该数据集包含合成数…...
逆向工程实现原理深度解析:Hook技术高效突破百度网盘macOS版系统限制
逆向工程实现原理深度解析:Hook技术高效突破百度网盘macOS版系统限制 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS BaiduNetdiskPlugin-m…...
DETR训练避坑大全:Windows10+PyCharm环境下的5个常见报错解决方案
DETR实战指南:Windows 10环境下的5大典型问题深度解析与解决方案 在目标检测领域,DETR(Detection Transformer)作为首个完全基于Transformer架构的端到端检测系统,正在改变传统计算机视觉任务的实现方式。不同于Faste…...
从SEED-Labs实验到实战:手把手教你编写无零字节的x86 Shellcode(附完整代码)
从SEED-Labs实验到实战:手把手教你编写无零字节的x86 Shellcode(附完整代码) 当你第一次看到"Shellcode"这个词时,可能会联想到某种神秘的编程黑魔法。实际上,它是安全研究中最具实用价值的技能之一——一段…...
华为OD机考双机位C卷 - 数字游戏 (Java)
# 数字游戏 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 华为OD机试双机位C卷真题目录(Java)点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(Java题解) 题目描述 小明玩一个游戏。 系统发1+n张牌,每张牌上有一个整数。 第一张给…...
