网络运维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().…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...