zabbix user parameters和Loadable modules的使用方法介绍

 

目录   需求   实现   原理   前端配置   后端配置     shell实现     python实现     C实现

 

 

需求:

       采集主机的-/+ buffers/cache  free的数据

 

 

实现:  

 

  采集/proc/meminfo中的数据,通过shell 、 python、 c分别来实现user parameters和Loadable modules监控方式

 

 

原理:

  首先我们先来了解linux的内存参数

 

  我们在centos 5 和 centos 6上输入 free -k,会返回下面的输出:

  

zabbix user parameters和Loadable modules的使用方法介绍

  在centos 7 上输入 free -k 返回结果:

   

zabbix user parameters和Loadable modules的使用方法介绍

  上面输出的数据可以从 /proc/.meminfo中匹配到对应的数据:

   

zabbix user parameters和Loadable modules的使用方法介绍

 

  Centos 7 里有一个MemAvailable参数用来替代-/+ buffers/cache:

    MemAvailable:   59666176 kB

 

  对比下free输出和/proc/meminfo的信息:

free output

 

coresponding /proc/meminfo fields

 

Mem: total

 

MemTotal

 

Mem: used

 

MemTotal - MemFree

 

Mem: free

 

MemFree

 

Mem: shared (can be ignored nowadays. It has no meaning.)

 

N/A

 

Mem: buffers

 

Buffers

 

Mem: cached

 

Cached

 

-/+ buffers/cache: used

 

MemTotal - (MemFree + Buffers + Cached)

 

-/+ buffers/cache: free

 

MemFree + Buffers + Cached

 

Swap: total

 

SwapTotal

 

Swap: used

 

SwapTotal - SwapFree

 

Swap: free

 

SwapFree

 

 

 

  Centos7中的信息对比:

 

free output

 

coresponding /proc/meminfo fields

 

Mem: total

 

MemTotal

 

Mem: used

 

MemTotal - MemFree - Buffers - Cached - Slab

 

Mem: free

 

MemFree

 

Mem: shared

 

Shmem

 

Mem: buff/cache

 

Buffers + Cached + Slab

 

Mem:available

 

MemAvailable

 

Swap: total

 

SwapTotal

 

Swap: used

 

SwapTotal - SwapFree

 

Swap: free

 

SwapFree

 

 

  经常会用到的参数:

    centos 5 \6 \7

      MemTotal: 内存总量

      MemFree: 系统没有使用的物理内存

      Buffers: buffer cache中的内存

      Cached: pagecache中的内存

      SwapCached: 存储在主内存中的内存,同时也在swapfile中,节省I/O

    centos 7

      MemAvailable: 不需要交换就可以启动新应用程序的内存

 

 

前端配置

  我们在zabbix上新建一个监控项,点击configuration->Templates->你的系统模板->Items->Create Item

   

zabbix user parameters和Loadable modules的使用方法介绍

 

 

后端配置

 

  使用shell和python来实现需要更改配置文件的Include选项,路径指向zabbix_agentd.conf.d

  Include=http://www.likecs.com/usr/local/etc/zabbix_agentd.conf.d/*.conf

  修改配置后请重启zabbix_agentd服务

 

shell实现:

 

  我们在/usr/local/etc/zabbix_agentd.conf.d/路径下新建一个memory.conf的文件,写入下面的内容:

  UserParameter=buffers.cache.memory,echo $((`grep -E 'MemFree|Buffers|Cached' /proc/meminfo  | head -3 | awk '{print $2}' | paste -sd+ | bc` /1024 ))

 

测试:

  # zabbix_agentd -t buffers.cache.memory

  buffers.cache.memory                          [t|62525]

 

 

python实现:

 

  在memory.conf里面增加一行配置:

  UserParameter=buffers.cache.memory_python,python get_memory.py

  脚本:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssjwf.html