前文我们介绍了如何使用 Node Exporter 监控 Linux 主机的 CPU 使用率,接下来我们来介绍如何监控 Linux 的磁盘空间、磁盘 IO、网络 IO 等方面。 内存监控 除了 CPU 监控之外,我们可能最关心的就是节点内存的监控了,平时我们查看节点的内存使用情况基本上都是使用 free 命令来查看: free命令 free 命令的输出会显示系统内存的使用情况 free 是真正尚未被使用的物理内存数量,而 available 是从应用程序的角度看到的可用内存,Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是 buffer 和 cache 总内存 磁盘监控 接下来是比较中的磁盘监控,对于磁盘监控我们不仅对磁盘使用情况感兴趣,一般来说对于磁盘 IO 的监控也是非常有必要的。 磁盘容量监控 要监控磁盘容量,需要用到 node_filesystem_* 相关的指标,比如要查询节点磁盘空间使用率,则可以同样用总的减去可用的来进行计算,磁盘可用空间使用 node_filesystem_avail_bytes
(一) 捕获数据 用法:sh capture.sh arg1 arg2 参数说明:arg1为采样频率,arg2为采样时长,单位都为秒 例子:2秒采集一次数据,采样时长10秒,共采样5次 sh capture.sh 2 10 capture.sh内容如下: #! /bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig $4 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` \t\t%.2f\t\t%.2f\t\t\t%.2f\t\t%.2f\t\t%.2f\t\t%s\n" $disk_sda_rs $disk_sda_ws $disk_sda_avgqu_sz $disk_sda_await 注:针对不同类型、版本的操作系统,以上脚本可能需要做适当修改才可适用 附脚本下载地址:Linux 性能监控之CPU&内存&I/O监控Shell脚本2.zip
2)内核进程: 3)用户进程: ## 1. context switches:上下文切换 大多数的处理器在同一时刻只能运行一个进程,在多核处理器中,linux内核将每一个core 比如当前系统核数是2,有两个线程正在执行行,还有4个线程在运行队列里面,那么它的load=2+4 ## 3.cpu utilizaion CPU的利用率。 用户空间的使用时间 system time: 内核空间的使用时间 wait io: 等待IO的时间(阻塞并等待IO) idle: 空闲时间 ## 4.cpu性能监控 30%-35%的system time 0%-5%的idle time context switches:这个值与cpu利用率相关 ## 5.cpu性能监控相关工具 实例3: CPU0,CPU1正在处理cpu密集型的进程 CPU2空闲 CPU3处理内核和其它系统函数 ?
基于zabbix5.0版本监控Windows 在Windows端安装好agent或者agent2,并查明Windows本机的主机名和IP地址 在zabbix-server端,选择自带模板,配置好对应的 agent链接 在Windows,进入cmd(用管理员打开) #查看主机名和IPv4的主机IP地址 ipconfig/all arp/a hostname 去官方下载agent或者agent2 填入主机名 监控端的IP地址 然后无脑点击下去就可以了 回到wed配置 添加主机 选择对应的Windows
示例:点击 -> 性能监控 先上效果: monitor1.png 内存监控: /proc/meminfo used=total-(buffers+cached+free) [root@wangzi line in file.readlines(): used=int(line.split()[0]) total=int(line.split()[2] python监控: #! 固定时间段监控/proc/vmstat 以下字段 和前一个时间段相减,再除以时间间隔 得到io。 ,'{3}')""".format(disk_info[0],disk_info[1],disk_info[2],now_zero) cursorUpdate(insert_sql,[]
#cat /proc/cpuinfo| grep "physicalid"| sort| uniq| wc -l 2 2•查看每个物理CPU中core的核数。 Linux的CPU正是采用硬中断与软中断结合的方式来处理问题的。 由于硬中断比软中断过程短得多,所以作为性能监控往往需要监控软中断。 #每隔 5 秒输出 1 组数据 #pidstat -w 5 Linux 4.15.0 (ubuntu) 09/23/18 _x86_64_ (2 CPU) 08:18:26 UID #mpstat Linux 4.15.0-46-generic(ubuntu) 10/30/2019 _x86_64_(4 CPU) 02:59:04 AM CPU %usr %nice %sys
打开防火墙 打开本地(RabbitMQ Server)防火墙 [root@rabbitmq ~]# netstat -ant | grep 15672 tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN [root@rabbitmq ~]# iptables -L -nv | grep 15672 [root@rabbitmq ~]# grep 15672 /etc/sysconf
目前互联网公司的服务器一般采用Linux系统,同时,为了实时监控服务器的健康状况,我们通常编写Shell脚本或Python脚本来监控测试服务器的各项指标,包括CPU、内存、IO等指标,本期将介绍Linux 中常见的监控指令。 CPU 说到监控CPU,目前主要是监控CPU的使用率,以及每一个进程占用CPU资源,Linux系统中主要使用 top、vmstat、pstree 三个命令。 1. vmstat 2. free 其中,total = used + free + buffer/cache,单位是K。 2. vmstat 在vmstat的状态统计信息里:b值代表因为io阻塞排队的任务数;bi值代表每秒写入磁盘的块数;bo值代表每秒读出磁盘的块数;wa值代表因为IO等待消耗的cpu时间比例。
介绍 atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说明已经非常严重了 注意:所有的信息都是反映过去10S的状态信息 使用 atop工具安装好后在运行命令atop就能弹出监控界面 ? 接下来我们就来详细看看每行参数意义。 磁盘忙时所占比例 read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数 write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数 avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数
python监控: #! ""insert into `monitor_net_tcp` (`establish`,`time_wait`,`close_wait`,`flow_time`) values ({0},{1},{2} line in file.readlines(): used=int(line.split()[0]) total=int(line.split()[2] ')""".format(used,free,now_zero) cursorUpdate(insert_sql,[]) 磁盘IO监控: 固定时间段监控/proc/vmstat 以下字段 和前一个时间段相减 ,'{3}')""".format(disk_info[0],disk_info[1],disk_info[2],now_zero) cursorUpdate(insert_sql,[]
已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目 [root@wangzi go]# cat /proc/sys/fs/file-nr 1280 0 98406 python监控代码 line in file.readlines(): used=int(line.split()[0]) total=int(line.split()[2] total-used insert_sql="""insert into `monitor_fd_use` (`used`,`free`,`flow_time`) values ({0},{1},'{2}
这里提示我们系统里没有安装 php ,我们给它装上,同时我们也装上 php-mysql ,它提供了php 连接 mysql 需要的DBI
/configure checking for OS + Linux 2.6.32-573.12.1.el6.x86_64 x86_64 checking for C compiler ... found 0 [root@es_node tengine-2.1.2]# ll /usr/local/nginx/ total 24 drwxr-xr-x 2 root root 4096 Jan 6 19:46 conf drwxr-xr-x 2 root root 4096 Jan 6 19:46 html drwxr-xr-x 2 root root 4096 Jan 6 19:46 include drwxr-xr-x 2 root root 4096 Jan 6 19:46 logs drwxr-xr-x 2 root root 4096 Jan 6 19:46 modules drwxr-xr-x 2 root root 4096 Jan 6 19:46 sbin [root@es_node tengine-2.1.2]#
第十九章 Linux监控平台搭建 19.1 Linux监控平台介绍 常见开源监控软件 cacti、nagios、zabbix、smokeping、open-falcon等等。 zabbix' failed: [2002] Can't connect t o local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) noarch.rpm 安装yum源仓库: [root@z1 src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm 安装zabbix: [root@z2 ~]# yum install -y zabbix-agent 配置 编辑zabbix配置文件: [root@z2 ~]# vim /etc/zabbix/zabbix_agentd.conf Server 不一致,服务端将无法识别该机器 #因为zabbix是通过IP进行监控的,该参数不会对监控造成太大影响 #加上该参数有利于更好的辨别服务端监控是哪台主机的状态 启动zabbix服务: [root@z2
一、mrgt配置案例说明,这里以监控网卡为例 #通过public监控localhost上的192.168.1.68地址流量 Target[eth1_lan]:/192.168.1.68:public@ #接下来是网页上的数据,因为Mrtg需要把生成的图片渲染到网页中,下面这写都是网页上的属性标签 #网页中颜色对应值 Legend1[eth1_lan]:每秒流入量(单位Bytes) Legend2[ system-oid,可能需要不同的配置,这里不再一一列举 有一个值得注意的地方,当需要监控磁盘的时候需要配置文件里增加以下内容 把需要监控的目录最大数字写入配置文件snmp.conf disk / 次下面的命令即可,除非你的mrtg.cfg有语法错误 env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 当然这些最后是要写入crontab中的 crontab -e */2 图片,而且是2分钟生成一次。
简单介绍下 Linux 中与 IO 相关的内容。 简介 可以通过如下命令查看与 IO 相关的系统信息。 $ dmesg | grep scsi 监控指标 简单列举磁盘监控时常见的指标。 解析后查看 在 blktrace 中,-d 表示监控哪个设备,-o - 表示将监控输出到标准输出;在 blkparse 中,-i - 表示从标准输入获取信息,-o 表示将解析的内容记录在 blkparse.out Linux IO 协议栈的问题搞的差不多明白了。 Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems 。
cacti、smokeping偏向于基础监控,成图非常漂亮。 cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,这几款监控软件均有web操作界面。 nagios不用存储历史数据,注重服务或者监控项的状态。 ---- zabbix 监控介绍: C/S架构(被监控的server需要安装监控软件,既可以主动连接客户端,也可以被动的让客户端推送自己的状态),基于C++开发,监控中心支持web界面配置和管理。 zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报。 zabbix监控流程图 image.png
示例:点击 -> 性能监控 通过/proc/net/dev获取网卡 IO,第1列和第9列分别代表了in 和out。 insert_sql="""insert into `monitor_net_io` (`in`,`out`,`add_in`,`add_out`,`flow_time`) values ({0},{1},{2}
下面详细的阐述下Prometheus环境的搭建以及与Grafana整合后监控Linux的系统资源。 -2.31.1.linux-amd64.tar.gz移动到/usr/local的目录下进行解压,解压后它的目录为: drwxr-xr-x 2 3434 3434 4096 Nov 6 04 static_configs: - targets: ["47.95.142.233:9090"] #监控Linux资源 - job_name: "云服务器Linux" static_configs Prometheus需要监控Linux的系统资源,首先需要下载node_exporter-1.2.2.linux-amd64.tar.gz的文件,下载成功后解压的目录信息为: |-- LICENSE | 如上图可以看到能够监控Linux的系统资源,而这些系统资源在做性能测试的时候可以作为被监控和收集的数据之一。感谢您的阅读,后续会持续更新!
1、Linux服务器安装agent 下载Linux端zabbix-agent 下载地址 上传rpm文件到被监控端服务器 运行命令安装zabbix-agent rpm -ivh zabbix-agent- 、ServerActive修改为对应网络内server端服务器的IP Hostname可自定义修改 修改完成后运行以下命令重启agent systemctl restart zabbix-agent 2、 zabbix配置 登录zabbix系统,点击配置——主机——创建主机 填写主机名称,选择群组,填写IP地址为windows服务器IP 选择linux模板 点击添加按钮 Zaibbix监控MySQL数据库 Zaibbix监控MS SQL SERVER数据库 Zaibbix监控ORACLE数据库 Zaibbix监控Linux、Windows、AIX、HP-UX、Solaris操作系统 Zaibbix监控中间件 Zaibbix监控网络设备 Zaibbix监控存储设备 葡萄运维助手(英文为Netpod)是一款新一代IT监控系统,具有成本低、技术门槛低,容易上手的特点,适用于传统型的数据中心、机房、私有云、公有云场景