网络运维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().…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
