网络运维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().…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
