千家信息网

Linux 常用监控指标有哪些

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下Linux 常用监控指标有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Linux 运维基础采集
千家信息网最后更新 2025年01月20日Linux 常用监控指标有哪些

小编给大家分享一下Linux 常用监控指标有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、Linux 运维基础采集项


做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑。所以,依靠强大的监控系统,收集尽可能多的指标,意义重大。但哪些指标才是有意义的呢,本着从实践中来的思想,各位工程师在长期摸爬滚打中总结出来的经验最有价值。

在各位运维工程师长期的工作实践中,我们总结了在系统运维过程中,经常会参考的一些指标,主要包括以下几个类别:

  • CPU
  • Load
  • 内存
  • 磁盘
  • IO
  • 网络相关
  • 内核参数
  • ss 统计输出
  • 端口采集
  • 核心服务的进程存活信息采集
  • 关键业务进程资源消耗
  • NTP offset采集
  • DNS解析采集

    2、CPU相关采集项

    计算方法:通过采集 /proc/stat 来得到,大家可以参考 sar 命令的统计输出来理解。

    • cpu.idle:Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.
    • cpu.busy:与cpu.idle相对,他的值等于100减去cpu.idle。
    • cpu.guest:Percentage of time spent by the CPU or CPUs to run a virtual processor.
    • cpu.iowait:Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.
    • cpu.irq:Percentage of time spent by the CPU or CPUs to service hardware interrupts.
    • cpu.softirq:Percentage of time spent by the CPU or CPUs to service software interrupts.
    • cpu.nice:Percentage of CPU utilization that occurred while executing at the user level with nice priority.
    • cpu.steal:Percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor.
    • cpu.system:Percentage of CPU utilization that occurred while executing at the system level (kernel).
    • cpu.user:Percentage of CPU utilization that occurred while executing at the user level (application).
    • cpu.cnt:cpu核数。
    • cpu.switches:cpu上下文切换次数,计数器类型。

    3、磁盘相关采集项

    计算方法:先读取 /proc/mounts 拿到所有挂载点,然后通过 syscall.Statfs_t 拿到 blocks 和 inode 的使用情况。每个 metric 都会附加一组 tag 描述,类似 mount=$mount,fstype=$fstype,其中 $mount 是挂载点,比如 /home$fstype 是文件系统,比如 ext4。

    • df.bytes.free:磁盘可用量,int64
    • df.bytes.free.percent:磁盘可用量占总量的百分比,float64,比如32.1
    • df.bytes.total:磁盘总大小,int64
    • df.bytes.used:磁盘已用大小,int64
    • df.bytes.used.percent:磁盘已用大小占总量的百分比,float64
    • df.inodes.total:inode总数,int64
    • df.inodes.free:可用inode数目,int64
    • df.inodes.free.percent:可用inode占比,float64
    • df.inodes.used:已用的inode数据,int64
    • df.inodes.used.percent:已用inode占比,float64

    4、megacli 工具输出

    使用 megacli 工具读取 RAID 相关信息,每个 metric 都会附件一组 tag 描述,用来标明所属 PD 或者 VD,PD 格式为 PD=Enclosure_ID:SLOT_ID,比如 PD=32:0 表明第一块磁盘 ,VD=0 表明第一个逻辑磁盘。

    • sys.disk.lsiraid.pd.Media_Error_Count:这个及以下三个指标目前仅作为数据收集,不一定意味磁盘损坏(只是表示损坏概率变大)
    • sys.disk.lsiraid.pd.Other_Error_Count
    • sys.disk.lsiraid.pd.Predictive_Failure_Count
    • sys.disk.lsiraid.pd.Drive_Temperature
    • sys.disk.lsiraid.pd.Firmware_state:如果值不为0,则此物理磁盘出现问题
    • sys.disk.lsiraid.vd.cache_policy:如果值不为0,表示此逻辑磁盘缓存策略和设置不符
    • sys.disk.lsiraid.vd.state:如果值不为0,表示此逻辑磁盘出现问题

    5、SMART 工具输出

    使用 smartctl 工具读取磁盘 SMART 信息,目前所有指标仅作为数据收集,不一定意味磁盘损坏(只是表示概率变大),每个 metric 都会有一组 tag 描述,表明盘符,例如 device=/dev/sda。

    • sys.disk.smart.Reallocated_Sector_Ct
    • sys.disk.smart.Spin_Retry_Count
    • sys.disk.smart.Reallocated_Event_Count
    • sys.disk.smart.Current_Pending_Sector
    • sys.disk.smart.Offline_Uncorrectable
    • sys.disk.smart.Temperature_Celsius

    6、分区读写监控

    测试所有已挂载分区是否可读写,每个 metric 都会有一组 tag 描述,表示挂载点,比如 mount=/home

    • sys.disk.rw:如果值不为0,表明此分区读写出现问题

    7、IO相关采集项

    计算方法:每秒采集一次 /proc/diskstats,计算差值,都是计数器类型的。每个 metric 都会有一组 tag 描述,形如 device=$device,用来表示具体的设备,比如 sda1、sdb。用户可以参考 iostat 的帮助文档来理解具体的 metric 含义。

    • disk.io.ios_in_progress:Number of actual I/O requests currently in flight.
    • disk.io.msec_read:Total number of ms spent by all reads.
    • disk.io.msec_total:Amount of time during which ios_in_progress >= 1.
    • disk.io.msec_weighted_total:Measure of recent I/O completion time and backlog.
    • disk.io.msec_write:Total number of ms spent by all writes.
    • disk.io.read_merged:Adjacent read requests merged in a single req.
    • disk.io.read_requests:Total number of reads completed successfully.
    • disk.io.read_sectors:Total number of sectors read successfully.
    • disk.io.write_merged:Adjacent write requests merged in a single req.
    • disk.io.write_requests:total number of writes completed successfully.
    • disk.io.write_sectors:total number of sectors written successfully.
    • disk.io.read_bytes:单位是byte的数字
    • disk.io.write_bytes:单位是byte的数字
    • disk.io.avgrq_sz:下面几个值就是iostat -x 1看到的值
    • disk.io.avgqu-sz
    • disk.io.await
    • disk.io.svctm
    • disk.io.util:是个百分数,比如56.43,表示56.43%

    8、机器负载相关采集项

    计算方法:读取/proc/loadavg,都是原始值类型的:

    • load.1min
    • load.5min
    • load.15min

    9、内存相关采集项

    计算方法:读取/proc/meminfo 中的内容,其中的mem.memfree是free+buffers+cached,mem.memused=mem.memtotal-mem.memfree。用户具体可以参考free命令的输出和帮助文档来理解每个metric的含义。

    • mem.memtotal:内存总大小
    • mem.memused:使用了多少内存
    • mem.memused.percent:使用的内存占比
    • mem.memfree
    • mem.memfree.percent
    • mem.swaptotal:swap总大小
    • mem.swapused:使用了多少swap
    • mem.swapused.percent:使用的swap的占比
    • mem.swapfree
    • mem.swapfree.percent

    10、网络相关采集项

    计算方法:读取 /proc/net/dev 的内容,每个 metric 都附加有一组 tag,形如 iface=$iface,标明具体那个 interface,比如 eth0。metric 中带有 in 的表示流入情况,out 表示流出情况,total 是总量 in+out,支持的 metric 如下:

    • net.if.in.bytes
    • net.if.in.compressed
    • net.if.in.dropped
    • net.if.in.errors
    • net.if.in.fifo.errs
    • net.if.in.frame.errs
    • net.if.in.multicast
    • net.if.in.packets
    • net.if.out.bytes //网卡每秒向外传输的数据量
    • net.if.out.carrier.errs
    • net.if.out.collisions
    • net.if.out.compressed
    • net.if.out.dropped
    • net.if.out.errors
    • net.if.out.fifo.errs
    • net.if.out.packets
    • net.if.total.bytes //网卡每秒发送和接收的数据量
    • net.if.total.dropped
    • net.if.total.errors
    • net.if.total.packets

    11、端口采集项

    计算方法,通过ss -ln,来判断指定的端口是否处于listen状态。原始值类型,值要么是1:代表在监听,要么是0,代表没有在监听。每个metric都附件一组tag,形如 port=$port,$port就是具体的端口。

    • net.port.listen

    12、机器内核配置

    • kernel.maxfiles:读取的/proc/sys/fs/file-max
    • kernel.files.allocated:读取的/proc/sys/fs/file-nr第一个Field
    • kernel.files.left:值=kernel.maxfiles-kernel.files.allocated
    • kernel.maxproc:读取的/proc/sys/kernel/pid_max

    13、ntp采集项

    使用 ntpq -pn 获取本机时间相对于 ntp 服务器的 offset。

    • sys.ntp.offset:本机偏移时间,单位为ms,值过大或者为0则表明有异常,需要报警

    14、进程监控

    • proc.num:判断某个进程的数目,这里需要分两个场景,一种是根据进程的名字来判定,比如name=sshd;另外一种是根据cmdline来判定,比如Java的应用进程名可能都是java,根据第一种情况没法做区分,此时可以配置cmdline,如cmdline=./falcon_agent-c./cfg.ini

    15、进程资源监控

    • process.cpu.all:进程和它的子进程使用的sys+user的cpu,单位是jiffies
    • process.cpu.sys:进程和它的子进程使用的sys cpu,单位是jiffies
    • process.cpu.user:进程和它的子进程使用的user cpu,单位是jiffies
    • process.swap:进程和它的子进程使用的swap,单位是page
    • process.fd:进程使用的文件描述符个数
    • process.mem:进程占用内存,单位byte

    16. ss命令输出

    • ss.orphaned
    • ss.closed
    • ss.timewait
    • ss.slabinfo.timewait
    • ss.synrecv
    • ss.estab

    以上是"Linux 常用监控指标有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    进程 磁盘 单位 指标 方法 监控 内存 输出 大小 数据 问题 参考 内容 工具 情况 端口 类型 信息 命令 总量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市道通软件开发有限公司 软件开发企业行业人员配置比例 大连软件开发人员薪酬 易鲸捷全自研数据库 网络安全法中电力行业属于 威海直播软件开发哪家靠谱 吉林网络技术服务咨询报价 互联网时代的网络安全论文 五年级网络安全手抄报内容 车载网络技术经历的发展历程 怎么导出数据库性能报表 蔬菜分拣软件开发 计算机网络技术什么时候实习 焱寿互联网科技有限公司 电脑服务器哪个部位最容易坏 铁路公寓网络安全反思报告 成都四方网络技术有限公司 sql附加的数据库怎么得的 厦门合库互联网科技有限公司 数据库项目开发流程 评价网络安全风险 中国互联网公司有什么高科技 皮影戏下载软件开发 怎么快速建立数据库的表 江西服务器维修续保 搭建自营服务器 linux从远程服务器拷贝东西 富士道闸系统消息服务器不可用 北京云尚制软件开发有限公司 数据库中地址怎么拆分为省市
    0