zoukankan      html  css  js  c++  java
  • 第2章Zabbix基础进阶

    1.1自定义添加item

    Items可以存在于模板(Template)中,也可以存在于主机(Host)中,模板的作用是可以复用,对需要重复配置的监控项归类。

    下面演示如何在bjstack模板中添加一个Items,Keymemory.uasge[MemTotal]以及memory.uasge[MemFree]

    1.配置zabbix-agent配置文件,添加自定义key,修改配置文件必须重启agent

    /etc/zabbix/zabbix_agentd.conf中配置参数,写法如下:

    UserParameter=memory.uasge[*],/bin/cat /proc/meminfo |grep "$1"|awk '{print $$2}'

    2.测试key是否能获取值

    [root@linux-node1 ~]# yum install zabbix-get -y

    [root@linux-node1 ~]# zabbix_get -s 192.168.90.12 -k memory.uasge[MemTotal]

    494328

    [root@linux-node1 ~]# zabbix_get -s 192.168.90.12 -k memory.uasge[MemFree]

    76584

    确保能获取到的值,就说明Key配置是正确的。提示:zabbix_get仅能测试获取Agent监控方式的Key值,不能获取其他类型的数据。

    3.bjstack模板中默认不存在统计总内存的大小的Items,故我们需要自己添加item,添加方法:单击ConfigurationTemplatesbjstackitemsCreate item,如图1-10所示

    1-10

    4.自己定义的Key,手动添加即可

    1-11

    5.完整的key如图1-12 (自定义key基本上都是如下模式,更多请看Zabbix监控实践)

    1-12

    1.2Items key小结

    用户自定义参数(UserParameter)仅支持Agent方式,对于其他方式,它是不支持的。

    1.Key自定义的语法格式

    /etc/zabbix/zabbix_agentd.conf中配置参数,写法如下。

    UserParameter=key,command

    除了上面这种写法,还支持参数传递的写法,具体如下。

    UserParameter=key[*],command $1 $2 $3 ….

    2.自定义Key中的特殊字符处理

    如果Userparameter包含’”`*[]{}~$!&;()<>|#@这些字符,默认情况下,Zabbix对这些参数是无法正常处理的,需要在Zabbix_agentd.conf中开启参数UnsafeUserParameters,并将其值设置为1,语句如下。

    [root@linux-node1 ~]#vim /etc/zabbix/zabbix_agentd.conf

    UnsafeUserParameters=1

    3.自定义Key的例子

    UserParameter=login-user,uptime|awk  -F ' ' '{print $4}'

    然后重启zabbix_agent 服务(注意:修改配置文件必须重启。)

    [root@linux-node1 ~]# zabbix_get -s 192.168.90.12 -k login-user #运行测试命令,查看下Key

    2

    4.子配置文件的配置

    为了便于维护和分类管理,UserParameter的内容可以单独写一个配置文件。

    [root@linux-node1 ~]#vim /etc/zabbix/zabbix_agentd.conf

    Include=/etc/zabbix/zabbix_agentd.d/

    Includezabbix_agentd.conf中部分内容的子配置文件,注意:zabbix_agentd.conf.d/文件下所有的配置文件都会被当做子配置文件,如果有重复,会导致客户端Agent启动失败。

    5.用户自定义参数总结

    自定义Key的语法。

    特殊字符的处理。

    子配置文件的注意事项。

    注意:

    1.用户自定义参数一定要包含一个key和一个命令,也可以是一个脚本

    2.key在整个系统是唯一的,一个key可以定义多个items

    3.用户自定义参数返回值,最大返回512

    4.自定义完后,重启服务测试Key

    1.3Zabbix常用Key

    1.3.1CPUKey

    system.cpu.intr #设备中断整数

    system.cpu.load[<cpu>,<mode>] #CPU负载   

    system.cpu.num[<type>] #CPU数量处理器个数type

    system.cpu.switches #上下文交换交换次数

    system.cpu.util[<cpu>,<type>,<mode>] #CPU利用率百分比

    建议:

    CPU负载、上下文、使用率等在Template OS Linux这个模板中存在,需要调整触发器,因为默认触发器较低(通过百分比来触发报警。)

    1.3.2内存的key

    vm.memory.size[<mode>] #内存大小字节或百分比

    system.swap.in[<device>,<type>] #磁盘交换到交换分期

    system.swap.out[<device>,<type>] #交换分期到磁盘

    system.swap.size[<device>,<type>] #交换分区大小或者百分比

    建议:

    内存在Template OS Linux这个模板中存在,调整下触发器即可(通过百分比来触发报警。)

    1.3.3磁盘的key

    vfs.dev.read[<device>,<type>,<mode>]  #磁盘读取状态整数

    vfs.dev.write[<device>,<type>,<mode>] #磁盘写入状态整数

    vfs.fs.inode[fs,<mode>] #磁盘inode数量pfree (空闲百分比), pused (使用百分比)

    建议:

    默认Template OS Linux模板有自动发现磁盘,以及外接数据盘,只需要修改自动触发器即可。(如果需要监控inode,则可以通过自带key,也可以通过自定义方式)

    1.3.4网卡流量Key

    net.if.in[if,<mode>]  #网卡入口流量

    net.if.out[if,<mode>] #网卡出口流量

    net.if.total[if,<mode>] #网卡进/出流量的总和

    建议:

    默认Template OS Linux模板都有自动发现网卡功能,所以基本我们只需要根据业务的流量来调整不同的触发器。

    1.3.5监控端口的Key

    net.tcp.listen[port] #检测TCP端口是否开启

    net.udp.listen[port] ##检测UDP端口是否开启

    net.tcp.port[<ip>,port] #连接到指定的TCP端口

    net.tcp.service[service,<ip>,<port>] #检测服务是否开启,并且端口可用

    建议:

    默认Template OS Linux没有端口检测,可以根据实际情况监控端口以及服务(也可以通过自定义脚本来实现)

    1.3.6监控文件的key

    vfs.file.cksum[file] #计算文件校验

    vfs.file.contents[file,<encoding>] #获取文本内容若为空,只返回 LF/CR characters.

    vfs.file.exists[file] #检测文件是否存在1:存在 0:不存在

    vfs.file.md5sum[file] #文件MD5校验码文件MD5哈希值

    vfs.file.size[file] #文件大小字节fzabbix必须有可读此文件的权限

    vfs.file.time[file,<mode>] #文件时间信息Unix 时间戳. modemodify (默认, 修改时间), access 最后访问时间, change 最后改变时间

    建议:

    默认Template OS Linux只有一个文件校验/etc/passwd,可根据不同的文件来做不同校验或者大小的控制。

    1.3.7监控进程的key

    kernel.maxfiles #系统支持最大的open files整数

    kernel.maxproc #系统支持最大的进程数量整数

    建议:

    进程在Template OS Linux这个模板中存在,调整下触发器即可(低于多少即触发)

  • 相关阅读:
    【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】
    【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
    【Java EE 学习 35 上】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】【资源文件乱码问题已经解决】
    【Java EE 学习 34】【struts2学习第一天】
    【JavaScript中的正则表达式】
    【Java EE 学习 33 下】【validate表单验证插件】
    【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
    【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】
    【Java EE 学习 32 上】【JQuery】【选择器】
    【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】
  • 原文地址:https://www.cnblogs.com/xuliangwei/p/6658835.html
Copyright © 2011-2022 走看看