第2章Zabbix基础进阶
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; text-indent: 5.0pt; line-height: 150%; font-size: 10.5pt; font-family: Consolas }
h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left: 0cm; text-align: justify; text-indent: 0cm; line-height: 240%; page-break-after: avoid; font-size: 20.0pt; font-family: Consolas }
h2 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; text-align: justify; text-indent: 0cm; line-height: 172%; page-break-after: avoid; font-size: 18.0pt; font-family: Consolas }
h3 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; text-align: justify; text-indent: 0cm; line-height: 150%; page-break-after: avoid; font-size: 16.0pt; font-family: Consolas }
h4 { margin-top: 14.0pt; margin-right: 0cm; margin-bottom: 14.5pt; margin-left: 0cm; text-align: justify; text-indent: 0cm; line-height: 157%; page-break-after: avoid; font-size: 14.0pt; font-family: Consolas }
span.1Char
{ font-family: Consolas; font-weight: bold }
span.2Char
{ font-family: Consolas; font-weight: bold }
span.3Char
{ font-family: Consolas; font-weight: bold }
span.4Char
{ font-family: Consolas; font-weight: bold }
p.a,li.a,div.a { margin-top: 0cm; margin-right: 5.0pt; margin-left: 5.0pt; margin-bottom: .0001pt; text-indent: 5.0pt; line-height: 12.0pt; background: #F2F2F2; font-size: 10.5pt; font-family: Consolas; color: #333333 }
span.Char { font-family: Consolas; color: #333333; background: #F2F2F2 }
.MsoChpDefault { font-family: "Calibri", "sans-serif" }
div.WordSection1 { }
ol { margin-bottom: 0cm }
ul { margin-bottom: 0cm }
1.1自定义添加item
Items可以存在于模板(Template)中,也可以存在于主机(Host)中,模板的作用是可以复用,对需要重复配置的监控项归类。
下面演示如何在bjstack模板中添加一个Items,Key为memory.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,添加方法:单击Configuration→Templates→bjstack→items→Create 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/
Include是zabbix_agentd.conf中部分内容的子配置文件,注意:zabbix_agentd.conf.d/文件下所有的配置文件都会被当做子配置文件,如果有重复,会导致客户端Agent启动失败。
5.用户自定义参数总结
自定义Key的语法。
特殊字符的处理。
子配置文件的注意事项。
注意:
1.用户自定义参数一定要包含一个key和一个命令,也可以是一个脚本
2.key在整个系统是唯一的,一个key可以定义多个items
3.用户自定义参数返回值,最大返回512兆
4.自定义完后,重启服务测试Key
1.3Zabbix常用Key
1.3.1CPU的Key
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 时间戳. mode:modify (默认, 修改时间), access 最后访问时间,
change 最后改变时间
建议:
默认Template
OS Linux只有一个文件校验/etc/passwd,可根据不同的文件来做不同校验或者大小的控制。
1.3.7监控进程的key
kernel.maxfiles
#系统支持最大的open files整数
kernel.maxproc #系统支持最大的进程数量整数
建议:
进程在Template
OS Linux这个模板中存在,调整下触发器即可(低于多少即触发)。
第2章Zabbix基础进阶的更多相关文章
- 第11章:sed进阶操作
第11章:sed进阶操作 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为 ...
- Hibernate初探之单表映射——第二章:Hibernate进阶
第二章:Hibernate进阶 1.hibernate.cfg.xml常用配置 2.session 简介 3.transaction简介 4.session详解 5.对象关系映射常用配置 1.hibe ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- 【简单易懂的AMV图文教程-2】VEGAS基础进阶——认识关键帧
[简单易懂的AMV图文教程-2]VEGAS基础进阶--认识关键帧 经过了上一期VEGAS基础教程的学习,相信大家都能独立完成一些比较简单的纯剪辑作品了.今天在这里为大家继续介绍VEGAS的一大基础应用 ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础
第一篇 Selenium 和WebDriver工具篇 第一章 自动化测试基础 1.1 初识自动化测试 自动化测试有两种常见方式 1.1.1 代码驱动测试,又叫测试驱动开发(TDD) 1.1.2 ...
- 【windows核心编程】 第六章 线程基础
Windows核心编程 第六章 线程基础 欢迎转载 转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html 1. 线程的组成 ① 一个是线程的内核 ...
- [Python笔记][第一章Python基础]
2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...
随机推荐
- Codeforces 719B Anatoly and Cockroaches
B. Anatoly and Cockroaches time limit per test:1 second memory limit per test:256 megabytes input:st ...
- 2011 Multi-University Training Contest 1 - Host by HNU
A.A + B problem(待填坑) B.Cat VS Dog(二分图匹配) 喜欢cat和喜欢dog的人构成了二分图,如果两个人有冲突则连一条边,则问题转化为二分图最大点独立集问题.ans=n-最 ...
- (译文)Python中的staticmethod与classmethod
原文是stackoverflow的一则高票回答,原文链接 可能之前也有人翻译过,但是刚好自己也有疑惑,所以搬运一下,个人水平有限所以可能翻译存在误差,欢迎指正(如侵删). 尽管classmethod和 ...
- 了解 : angular controller link ng-init 顺序
controller 会先跑,接着是view 里的ng-init,最后是link (指令里的). 所有在指令里如果用link去拿$attr,会有拿不到ng-init想setup的值
- UI培训怎么学才高效
随着互联网科技的爆炸式发展,UI设计越来越受到我们的青睐,绝大部分企业已成立U设计部门来提高自身影响力,但现在许多从事UI设计的人,都是从零基础过度过来的,他们不乏大牛,在阿里巴巴,在腾讯等国内一流企 ...
- c++文件读取(一)---输入类使用和查找当前程序路径
鉴于公司人员流动大,设计一个小的日志定位器,首先要读取日志文件 用输入输出流类操作文件比c的stdio更安全和容易,当然任何此类观点都是对大牛除外 首先是查找当前文件路径,如果用GetCurrentD ...
- html基础知识1(基本标签)2017-03-07
摘要:php基础知识1 内容:大学中虽有接触,却是以学生的心态去应付考试的,学的都是理论知识:从今天开始我同样还是要以学生的心态去学习,但却要以要从事工作的心态去练习. 以下为第一天所学内容,因电脑原 ...
- BMP图片格式模型(2)
因为公司的主要业务是图像识别相关的,因此对图像处理.识别是我学习的重点.虽然写程序也不少年了,但是对于图像处理领域,我还是一个新兵.对很多基础的概念也还是存在盲区,所以想在边学边做的过程中,对一些概念 ...
- AVFoundation自定义录制视频
#import <AVFoundation/AVFoundation.h> #import <AssetsLibrary/AssetsLibrary.h> @interface ...
- 非服务器的定期校正时间 Anacron
与服务器不同,编程和办公用计算机不是连续24小时运行的.开关机的时间不固定,类似较时这样的任务无法保证运行. 对于这类机器,可以考虑使用 Anacron 进行设置. 在 Archlinux 中, An ...