精华内容
下载资源
问答
  • zabbix客户端无法上传数据

    千次阅读 2020-02-07 14:30:14
    昨天发现有一台Windows服务器无法向zabbix服务端汇报数据。经过检查Windows上的客户端日志,可以看到以下错误。 31976:20200206:154445.873 active check configuration update from [192.168.3.61:10051] started ...

    昨天发现有一台Windows服务器无法向zabbix服务端汇报数据。经过检查Windows上的客户端日志,可以看到以下错误。

     31976:20200206:154445.873 active check configuration update from [192.168.3.61:10051] started to fail (cannot connect to [[192.168.3.61]:10051]: [0x00002747] 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。)

    检查客户端zabbix进程处于运行状态,并没有明显问题。首先,尝试重启启动客户端的代理服务,服务能够正常重新启动。但是日志中的错误依旧。环境中的zabbix客户端都采用active的方式主动向服务器汇报数据,以减轻服务器的负载。但是其他服务器依然能够正常汇报数据,因此排除zabbix服务器本身的问题。需要从这台服务器本身入手。

    根据关键字”系统缓冲区空间不足或队列已满,不能执行套接字上的操作“搜索,觉得是系统网络上连接数可能满的问题。增加连接数需要修改注册表。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    新建一个REG_DWORD值,MaxUserPort

    这个值定义了Windows可以对外发起的连接数量,默认不存在这个键值。系统可以发起5000个连接。由于问题是刚发生的,尝试将这个值改为15000,并不需要盲目的按照网上说的改成65535。需要根据服务器的实际应用负载修改。如果是服务器本身的程序问题,很快又会将15000个连接占满的。如果直接改到最大,那么可能就不能发现是否还有问题,并造成服务器性能耗尽。

    https://blog.csdn.net/qishine/article/details/104209444

    修改这个键值并不需要重启就能生效。重新启动zabbix客户端程序,这次日志中没有报错了。数据也能正常显示了。问题解决。

    展开全文
  • zabbix监控平台

    2021-01-27 13:42:26
    主动模式是指客户端会主动把监控数据汇报服务端服务端只负责接收即可。 定义完监控项目后,就会去采集相关的数据,比如CPU使用率,磁盘I/O等,固定时间(监控中心定义)把数据上报给服务端服务端会把数据存储...
  • 十五周五次课

    2018-07-06 00:10:13
    被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端服务端请求以后,客户端接受到请求以后,才把相应的数据汇报给服务中心 主动模式,客户端会主动把监控数据...

    19.7 zabbix的主动模式和被动模式

    • 主动或者被动是相对客户端来讲的

    • 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端,服务端请求以后,客户端接受到请求以后,才把相应的数据汇报给服务中心

    • 主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收即可。

      • 定义完策略之后,到达定义的时间以后,就会主动汇报数据给服务中心,比如系统的负载,网络的网卡流量等
    • 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。

    • 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式

    19.8 添加监控主机

    • 客户端配置并启动了zabbix-agent服务,
      • 操作环境
      • 下面就到监控中心(即web浏览器下去配置具体的机器和监控的项目)
    1. 在web页面配置添加监控主机,选择 配置 ,在选择 主机群组 ,去添加主机群

    十五周五次课

    1. 配置下的一些集合
    • 主机群组,就是给机器建立一些组,然后在组里面建立一些机器;
    • 模板,就是一些监控项目的集合,预设的
    • 主机,里面现在有 zabbix server,也就是我们的监控中心,但监控中心没有起zabbix agent,没有启动agent,就没有办法去采集数据的,所以是停用的状态(若想启动 ,就需要启动 zabbix agent 服务)
    1. 添加一个主机(因为在客户端已经安装启动了zabbix agent)
    2. 再添加主机之前,首先 添加一个 主机群组

    十五周五次课

    • 写上 组的名字 ——>点击 添加即可;
      • 有其他需求的时候,可以增加父级群组,从其他主机的群组中选择

    十五周五次课

    1. 然后再点 主机 ——> 点击 创建主机(主机名称和可见名称都写hf-02)
    • 根据顺序,填写
        1. 主机名,在客户机上zabbix配置文件里面已经配置好的
        1. 可见名称,重复写上主机名,或者一个便于识别的名字
        1. 添加所属群组,选中群组,点击向左的箭头添加,或者3.1手动写一个新群组名称
        1. 添加客户端IP地址,DNS是用来 解析IP地址使用的,因为我们做的是实验,所以就免去这一项,4.1连接方式,IP还是DNS,端口填写对应的agent客户端端口(端口默认是10050)
        1. 添加,完成监控主机添加

    十五周五次课

    1. 定义主动和被动模式,在 监控项 里定义
    2. 在定义完主机后看到 应用集、监控项、触发器、自动发现规则、web场景
    • 应用集:应用集就是监控项的集合,应用集的目的是为了更方便的去管理监控项
    • 监控项:监控的项目
    • 触发器:就是针对某一个项目,设置的一个告警规则
    • 图形:相关数据的图表化
    • 自动发现规则:自动抓取机器的两个信息,并生产图片和触发器一个是文件系统,另一个网卡
    • web场景:用于监控web站点

    19.9添加自定义模板

    • 可以自定义一个常用模板,方便给新增主机添加监控项目
    • 自定义aming模板
    • 把其他自带模板里面的某些监控项目(比如cpu、内存等)复制到aming模板里
    • 定义触发器
    • 添加图形
    • 自动发现,找到Template OS Linux,点击右侧的自动发现,参考Mounted filesystem discovery和Network interface discovery定义规则
    • 可以直接导出、导入模板,然后再删除不需要的对象
    1. 在 配置 中的 模板,选择创建模板

    十五周五次课

    1. 模板的名字自定义,这里叫做myserver,模板归属在模板的组里,或者链接到其他的模板

    十五周五次课

    1. 刚添加的myserver模板,它下面 没有 应用集、监控项、触发器、自动发现规则、web场景,所有都为空的
    2. 现在给myserver增加一些监控项目,在自带的模板里面找一些,比如在Template OS Linux 模板里面找一些监控项

    3. 在Template OS Linux的监控项里选择一些,然后选择复制

    十五周五次课

    1. 然后复制到到 myserver 模板里面去

    十五周五次课

    1. 这时再来查看 myserver模板里面就有了刚复制的几个监控项

    十五周五次课

    1. 并且触发器、图形、聚合图形、自动发现、web监测都可以使用同样的方法拷贝到myserver模板下面去
    2. 但自动发现,在磁盘的使用率,网卡自动发现特别方便,想把这两项拷贝到myserver模板里面去,但是选中后,会看到并没有复制的按钮

    3. 这时若想搬 磁盘的使用率,网卡 这两项,有两种方法
    • 方法一:
      • 直接把这个模板导出,会生成一个 .xml 的文件,然后去编辑这个文件,编辑的时候需要仔细的去查看,删除掉,最后只剩下自动发现这两项,然后再把编辑后的 .xml文件在导入(在导入之前需要更改文件的名称,否则会出错)——>工作量比较大,比较麻烦,导入的时候还容易出错
      • PS:不推荐使用
    • 方法二:
      • 先把myserver模板里面的监控项删除
      • 这时myserver模板是空的,选择myserver模板点击进去,然后选择 链接的模板 ,点选择

    十五周五次课

    • 然后选择拷贝的模板,这里选择的是 Template OS Linux

    十五周五次课

    • 然后在选择 添加,否则是无法保存的
    • 然后点击 更新

    十五周五次课

    • 在更新之后,会看到myserver模板里面有了应用集、监控项、图形、自动发现等

    十五周五次课

    • 这时若是想删除里面的监控项等其他的,会发现无法删除,是因为监控项是在原来的模板里,只能在原来的模板里面删除
    • 若就想删除链接过来的监控项,方法打开myserver模板,点进去,选择链接的模板,会看到取消链接和取消链接并管理

      • 取消链接,仅仅只会把链接取消,但并不会把应用集、监控项等给清空掉
      • 取消链接并管理,就会把里面的所有给清空
    • 这时点取消链接,然后点更新,会看到lmyserver模板里面依旧存在这些,不同的是监控项、应用集等里面没有链接模板的名字了

    • 这时再来删除就没有问题了,再删除的时候 只能先删除监控项,才能删除应用集
      • 应用集包含了监控项
    • 删除监控项,会看到 提示 监控项已删除 ,很顺利的就删除掉了

    • 删除应用集,只要 右侧监控项 有数字的都得留着,没有数字的监控项都可以删除

    • 此时这个模板配置完成,而且没有链接任何的模板

      19.10 处理图形中的乱码

    设置为中文后,zabbix图形的中文文字会显示小方框 这是因为在zabbix的字体库中没有中文字体,需要从windows上拷贝一个过来
    vim /usr/share/zabbix/include/defines.inc.php //搜索ZBX_FONTPATH, 它定义的路径是“fonts”,它是一个相对路径,绝对路径/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont, windows字体路径为“C:\Windows\Fonts\”,找到“simfang.ttf”(其实就是那个仿宋简体),先把它复制到桌面上,然后上传到linux的/usr/share/zabbix/fonts/,并且改名为graphfont.ttf

    在服务端(即zabbix服务器)打开配置文件,/usr/share/zabbix/include/defines.inc.php

    zabbix服务器
    [root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php
    搜索 /ZBX_FONTPATH 会看到字体所在的相对路径
    define('ZBX_FONTPATH',                          realpath('fonts')); // where to search for font (GD > 2.0.18)
    define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name  
    
    里面的
    realpath('fonts'));   //这个为zabbix字库所在的路径,使用的路劲是相对路径,相对于/usr/share/zabbix/ 
    'graphfont'); // font file name   // 这个为字体的名字
    

    -它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont 7. 这个目录下的/usr/share/zabbix/fonts/graphfont.ttf文件软链接到了/etc/alternatives/zabbix-web-font文件,而/etc/alternatives/zabbix-web-font文件又软链接到了 /usr/share/fonts/dejavu/DejaVuSans.ttf

    dejavu: dejavu为字体的目录
    DejaVuSans.ttf:是一个字体 ,但不支持中文

    [root@zabbix ~]# ls /usr/share/zabbix/fonts/
    graphfont.ttf
    [root@zabbix ~]# ls -l !$
    ls -l /usr/share/zabbix/fonts/
    总用量 0
    lrwxrwxrwx 1 root root 33 2月   3 01:51 graphfont.ttf -> /etc/alternatives/zabbix-web-font
    [root@zabbix ~]# ls -l /etc/alternatives/zabbix-web-font
    lrwxrwxrwx 1 root root 38 2月   3 01:51 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
    [root@zabbix ~]# 
    

    现在要做的就是将 graphfont 软链接到一个支持中文带中文的字体下面,即可
    打开你windows物理机,找到C盘——>Windows——>Fonts下面找到simfang.ttf(其实就是那个仿宋简体),先把它复制到桌面上,然后上传到linux的/usr/share/zabbix/fonts/,并且改名为graphfont.ttf

    [root@zabbix ~]# cd /usr/share/zabbix/fonts/
    [root@zabbix fonts]# ls
    graphfont.ttf  SIMFANG.TTF
    [root@zabbix fonts]# 
    

    上传到/usr/share/zabbix/fonts/目录下后,更改原有graphfont.ttf为.back,或者删除掉这个文件

    [root@zabbix fonts]# mv graphfont.ttf graphfont.ttf.back
    [root@zabbix fonts]# 
    

    然后把上传的字体,做一个创建graphfont.ttf软链接文件

    ln -s SIMFANG.TTF graphfont.ttf

    [root@zabbix fonts]# ln -s SIMFANG.TTF graphfont.ttf
    [root@zabbix fonts]# ls -l
    总用量 10332
    lrwxrwxrwx 1 root root       11 2月   2 06:45 graphfont.ttf -> SIMFANG.TTF
    lrwxrwxrwx 1 root root       33 2月   3 01:51 graphfont.ttf.back -> /etc/alternatives/zabbix-web-font
    -rw-r--r-- 1 root root 10576012 6月  11 2009 SIMFANG.TTF
    [root@zabbix fonts]# 
    

    现在的zabbix调用的是graphfont.ttf,而graphfont.ttf它指向了SIMFANG.TTF
    这时在浏览器上刷新下,会看到显示正常,这样就能解决图形里面的小方块

    还能看到CPU load一直为0,因为已经有数据产生了
    在检测中,有一个最新数据,在这里主机可以选择 主机hf-02 ,点击应用

    会看到监控的项目都有数据的,也可以选择 右侧的图形查看

    19.11 自动发现

    十五周五次课
    修改自动发现规则的相关数据获取间隔
    十五周五次课
    然后修改数据更新间隔(秒),改成以秒计算1h
    十五周五次课

    配置好以后到监控中,查看自动发现

    十五周五次课

    在实际应用中时间间隔不要设置太短

    扩展

    zabbix监控交换机(思科)

    要监控交换机的CPU、内存关键在于找到正确的OID,关于怎么寻找OID请参考以下博文。

    http://tryrus.blog.51cto.com/10914693/1788833

    看这篇博文之前请确定已对zabbix的基本操作已有了解,有不明白的地方可以看我之前写的博文。

    http://tryrus.blog.51cto.com/10914693/1772271

    http://tryrus.blog.51cto.com/10914693/1782062

    一、配置环境

    CentOS 7 Linux version 3.10.0-229.el7.x86_64

    Zabbix-3.0.1

    c2960s-universalk9-mz.122-55.SE5.bin

    c2960s-universalk9-mz.122-55.SE3.bin

    c2960-lanbasek9-mz.122-50.SE5.bin

    c3750e-universalk9-mz.122-55.SE5.bin

    二、CPU监控及配置trigger

    2.1 要用到的OID

    1.3.6.1.4.1.9.2.1.57.0 CPU utilization for one minute
    
    1.3.6.1.4.1.9.2.1.58.0 CPU utilization for five minutes
    
    1.3.6.1.4.1.9.2.1.56.0 CPU utilization for five seconds

    2.2 创建Item

    由于cisco各版本的CPU OID是一致的,所以可以新建一个模板Cisco CPU Utilization,将要监控的项在这个模板里面建立item,最后将模板Cisco CPU Utilization加入到各类型交换机的模板中即可,这样所有的交换机都会自动监控CPU的使用率了。

    在Cisco CPU Utilization模板下建立CPU相关的三个item,CPU utilization for one minute,CPU utilization for five minutes,CPU utilization for five seconds,如下图所示。

    Name,Key 这两项的值可以随便填写,但最好是像我这样,可以很直观的知道这个item所监控的内容

    Type:SNMP v2版本

    SNMP OID:相对应的OID

    SNMP community:相对应的SNMP读团体字

    Units:CPU使用率,填写百分号%

    其它选项默认即可,最后的item Description填写在思科网站上查找OID时的Description。点击Add,完成item的创建。

    十五周五次课

    十五周五次课

    创建cpu使用率的三个监控项后如下图所示

    十五周五次课

    2.3 创建Graph

    在模板Cisco CPU Utilization中,创建Graph,如下图所示。

    填写Graph的Name,在Items选项中将刚刚创建好的三个items添加进来,点击最后的Add,完成Graph的创建。

    十五周五次课

    2.4 验证Graph

    将创建好的模板Cisco CPU Utilization加入到交换机的模板中,然后可以在Monitoring-->Graphs中选择一台交换机,查看CPU Utilization,如下图所示。

    十五周五次课

    2.5 创建Trigger

    还在是模板Cisco CPU Utilization中创建Trigger,因为所有交换机都要用到。

    创建Trigger,如下图所示。

    十五周五次课

    这里比较重要的是表达式,即zabbix应该在什么情况下使用触发器(Trigger)向用户报警,让用户知道CPU使用率异常。点击Expression后面的Add增加表达式,如下图所示。

    Item:这里选CPU utilization for five seconds。 CPU的实时使用率超过报警的阀值,zabbix就通过邮件报警,所以要知道CPU实时的使用率,这个是最合适的。

    Function:指的是函数,有下拉列表,从下拉列表中选择平均值大于N。

    Last of(T):#3,最近三次的值

    N:20 这里填写20,表示20%,百分号可以不用写。这里为方便测试才填写的20.

    最后的表达式为{Cisco CPU Utilization:cpuUtilization5sec.avg(#3)}>20

    十五周五次课

    创建完成的trigger,如下图所示

    十五周五次课

    关于表达式的详细用法及函数功能,可以参考以下两个文档。

    https://www.zabbix.com/documentation/3.0/manual/config/triggers/expression

    https://www.zabbix.com/documentation/3.0/manual/appendix/triggers/functions

    2.6 验证trigger

    因为我上面设置交换机的CPU使用率只要超过20%就会触发trigger报警,所以在创建trigger完成后,过一分钟左右,我的邮件就收到了下图所示的problem邮件,说明配置已经生效。

    十五周五次课

    然后将阀值20%调整为80%,过一分钟左右后,我的邮件就收到了下图所示的OK邮件,说明配置已重新生效。

    十五周五次课

    三、内存监控及配置trigger

    3.1要用到的OID

    .1.3.6.1.4.1.9.9.48.1.1.1.6.1 ciscoMemoryPoolFree
    
    .1.3.6.1.4.1.9.9.48.1.1.1.5.1 ciscoMemoryPoolUsed

    3.2 创建Item

    同CPU使用率一样,创建模板Cisco Memory Statistics后,在模板中创建Item ciscoMemoryPoolFree与ciscoMemoryPoolUsed,创建方法是一样,只是内存的item不需要填写单位。其它选项默认即可,最后的item Description填写在思科网站上查找OID时的Description。点击Add,完成item的创建。

    十五周五次课

    创建内存的两个监控项后如下图所示

    十五周五次课

    3.3 创建Graph

    在模板Cisco Memory Statistics中,创建Graph,如下图所示。

    填写Graph的Name,在Items选项中将刚刚创建好的两个items添加进来,点击最后的Add,完成Graph的创建。

    十五周五次课

    3.4 验证Graph

    将创建好的模板Cisco Memory Statistics加入到交换机的模板中,然后可以在Monitoring-->Graphs中选择一台交换机,查看Memory Statistics,如下图所示。由于memory很少发生变化,所以在graph中表现为一条横线。

    十五周五次课

    3.5创建Trigger

    还在是模板Cisco Memory Statistics中创建Trigger,因为所有交换机都要用到。

    创建Trigger,点击Expression后面的Add增加表达式,如下图所示。

    十五周五次课

    这里我设置阀值为20%,首先按上图所示的配置,添加两个表达式。

    {Cisco Memory Statistics:ciscoMemoryPoolFree.last()}=0
    
    {Cisco Memory Statistics:ciscoMemoryPoolUsed.last()}=0

    添加完成后如下图所示。

    十五周五次课

    修改上述表达式为

    {Cisco Memory Statistics:ciscoMemoryPoolFree.last()}*0.8<{Cisco Memory Statistics:ciscoMemoryPoolUsed.last()}*0.2

    如下图所示,表示空闲使用量少于20%时将触发报警。

    即A<(A+B)0.2转化为A0.8<B*0.2

    十五周五次课

    点击最底下的Add,完成trigger的创建,完成后如下图所示。

    十五周五次课

    3.6验证trigger

    Trigger配置完成后,zabbix就会对运行配置。所以在创建trigger完成后,过一分钟左右,我的邮件就收到了下图所示的OK邮件,说明配置已经生效。

    十五周五次课

    至于配置阀值为多大时会产生PROBLEM的邮件,就留给各位看观去测试啦~~

    http://tryrus.blog.51cto.com/10914693/1789847

    zabbix远程执行命令

    概述

    监控,有的人只把他当做报警使用,出现问题之后打开跑回家打开电脑处理掉,大多数时候都是一些已知问题,为何不让zabbix帮你把这些事情处理掉呢?

    Zabbix远程执行命令可以做些什么:

    1)重启应用(apache/nginx/mysql)。

    2)自定义执行脚本。

    3)使用IPMI接口重启服务器。

    4)自动释放磁盘空间(删除老文件,清除/tmp目录等等)。

    5)CPU过载时将一个虚拟机迁移到另外一个物理服务器。

    6)云环境下,一台服务器CPU\硬盘\内存\其他硬件资源不足的情况下,可以自动添加过去。

    Zabbix远程执行命令注意事项:

    1)远程执行命令是server端向agent端执行,不支持主动模式的agent;

    2)不支持代理模式;

    3)zabbix用户必须对命令具有执行权限,可以使用sudo赋予root权限(配置sudo无密码方式);

    4)远程命令只是执行,执行成功与否并不检测并确认,可在” Monitoring–>Events”中查看action执行时,或在”Reports–>Action log”中查看远程命令是否执行成功(成功为” Executed”)。

    配置zabbix远程执行命令

    创建一个报警,记得使用邮件报警吗?实际上,我们把发送邮件的操作改成执行远程命令就行了。

    Zabbix agent不支持远程命令,远程命令最大长度为255字符,同时支持多个远程命令,如需要执行多条命令,只需要另起一行写命令即可,但最好自定在agent端定义一个脚本,直接让zabbix执行脚本即可。还有,远程命令可以使用宏变量。

    1)配置zabbix-agent端

    首先我们需要在zabbix agent端开启对远程命令的支持,修改配置文件zabbix_agentd.conf中的参数,然后重启客户端:

    EnableRemoteCommands = 1

    另外,在执行命令时确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo。编辑sudoer文件,zabbix用户便可以执行nginx -s reload命令了。

    zabbix ALL=NOPASSWD: ALL

    zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start

    2)配置zabbix-server端

    ConfigurationàActionsà Operation,其中operation type改成Remote Command,然后写上要在zabbix-agent执行的命令即可。如下图:

    Zabbix远程执行命令

    Type:IPMI、custom script、ssh、telnet、global script。

    如果你要执行自定义的脚本,如下操作:

    Zabbix远程执行命令

    直接执行脚本即可。
    http://www.ywnds.com/?p=6610

    zabbix分布式部署

    最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每

    个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到的数据主动推送给zabbix

    server,zabbix server将数据存入数据库,并在WEB前端显示。

    1. Zabbix 主要功能和优劣势说明

    1.1 Zabbix 主要功能:

    1)Application monitoring应用监控

    数据库/SSH/Apache/Nginx等应用程序的监控。

    2)Server monitoring 服务器监控

    CPU,内存,SWAP,磁盘空间,网卡流量的监控等,可以通过浏览器实时查看Graphs。

    3)Network monitoring 网络设备监控

    支持Cisco, Juniper, 3Com等网络设备,网络设备通过SNMP(SNMP (v1,v2,v3) devices)协议进行监控。

    4)添加自定义监控,对于Zabbix无法满足的监控,可以添加自定义监控。

    1.2 Zabbix 主要优势:

    1)安装配置简单,支持多种语言,包括中文。

    2)系统自带多种监控模板,可以直接使用。

    3)支持分布式部署和WEB集中管理(通过WEB页面设置或查看报警结果)。

    4)自动发现主机和网络设备(discovery of file systems,network interfaces,hosts and

    netwrok devices)。

    5)WEB监控:可以监控WEB下载速度,返回码及响应时间。

    6)提供实时和历史的监控分析数据。

    7)EMAIL报警,按照故障级别|服务器类型|业务类型发送EMAIL邮件到相关负责人。

    1.3 Zabbix主要劣势:

    1)需要在被监控机器上面安装agent。

    2)All configuration information都存储在数据库里面,数据库是整个监控平台的瓶颈。

    2. Zabbix分布式部署需求分析

    2.1 软件需求

    官方推荐的软件配置

    1)MySQL5.0.3 or laterRequired if MySQLis used as Zabbix back end database,InnoDB

    engine isrequired.

    2)PHP 5.3.0 or later

    3)Apache 1.3.12 or later

    2.2 硬件需求

    官方推荐的最小硬件配置

    wKioL1MO3dPCC61QAAFTb7sgKEg606.jpg
    3. Zabbix 分布式部署实施

    3.1 分布式部署拓扑图

    wKioL1MO3mWTO2OBAAGBuFcZYVQ871.jpg

    补充说明:

    当proxy部署为主动模式(Active)时,Zabbix Server的负载最小。

    1)Server:负责把数据写入到数据库,然后通过Apache|Nginx +php在WEB前端显示。

    2)Proxy:帮助server采集被监控端的数据,并把采集到的数据主动传送给Server,proxy只负责数据收集。

    3)Database:所有的配置信息都存储在数据库里面,Zabbix server数据库和proxy数据库必须独立。

    4)Agent:agent的作用就是获取host数据,然后将收集到的数据发送给server(主动模式),或者是server主动来拿取数据(被动模式)。

    5)Email:通过Qmail|postfix的SMTP负责报警邮件的发送(故障邮件和故障恢复邮件)。

    3.2 Zabbix 分布式安装部署:

    1)Mysql 数据库安装(参照:http://sfzhang88.blog.51cto.com/4995876/900846

    2)LNMP + Zabbix server 安装(参照:http://sfzhang88.blog.51cto.com/4995876/978686

    3)Zabbix proxy 安装(略)

    4)Zabbix agent 安装

    [root@www20 shell]# cat zabbix_agentd_install.sh
    #!/bin/sh
    #Create by sfzhang 2014.02.27
    yum -y install net-snmp
    yum -y install net-snmp-devel
    BASE_DIR="/data/software"
    TAR="zabbix-2.2.1.tar.gz"
    tar -zxvf $BASE_DIR/$TAR -C$BASE_DIR
    cd $BASE_DIR/zabbix-2.2.1
    ./configure--prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent
    make && make install
    groupadd zabbix
    useradd zabbix -g zabbix
    cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
    chmod 700/etc/init.d/zabbix_agentd
    chown zabbix.zabbix/etc/init.d/zabbix_agentd
    sed -i "/BASEDIR=/s#/.*#/usr/local/zabbix#" /etc/init.d/zabbix_agentd
    sed -i"s#bin/zabbix_agentd#sbin/zabbix_agentd#" /etc/init.d/zabbix_agentd
    sed -i"s#Server=127.0.0.1#Server=192.168.161.129#"/etc/zabbix/zabbix_agentd.conf
    sed -i"s#ServerActive=127.0.0.1#\#ServerActive=127.0.0.1#"/etc/zabbix/zabbix_agentd.conf
    sed -i "/Hostname=/s#=.*#"=$HOSTNAME#""/etc/zabbix/zabbix_agentd.conf
    sed -i"s#\#/tmp/zabbix_agentd.pid#/data/logs/zabbix_agentd.pid#"/etc/zabbix/zabbix_agentd.conf
    sed -i"s#/tmp/zabbix_agentd.log#/data/logs/zabbix_agentd.log#"/etc/zabbix/zabbix_agentd.conf
    sed -i "s#\#Timeout=3#Timeout=30#" /etc/zabbix/zabbix_agentd.conf
    cat>>/etc/services<<EOF
    #Zabbix services
    zabbix-agent 10050/tcp#Zabbix Agent
    zabbix-agent 10050/udp#Zabbix Agent
    zabbix-trapper 10051/tcp#Zabbix Trapper
    zabbix-trapper 10051/udp#Zabbix Trapper
    EOF
    /etc/init.d/zabbix_agentdstart

    4 Zabbix WEB**前端配置**

    4.1**配置proxy代理**

    wKiom1MO4ByzCAfDAAIn-y9XOAo584.jpg

    4.2 添加Groups和hosts

    通常Groups按照频道或者是WEB,MYSQL,memcache等服务类型分组的,提供相同服务的服务器分为一组,便于后期的维护和管理。

    4.3 自定义监控模板,监控项和触发器。

    5 zabbix 主要功能展示。

    5.1 服务器监控

    1)CPU负载监控

    wKiom1MO4QOA7w7ZAAOXQJ1tSQM794.jpg

    2)内存空间的监控

    wKioL1MO4UDiaibCAAN1UIxVtbQ695.jpg

    3) 磁盘空间的监控

    wKioL1MO4YPA-5rEAADjAq75jFo687.jpg

    4)交换分区的监控

    wKioL1MO4byhddWhAADLw1ANY60750.jpg

    5) 网卡流量的监控

    wKioL1MO4fWw4HKGAAP9zMiwES8263.jpg 除此之外,还有服务器重启的监控,添加删除用户时的监控,主机存活状态的监控(ICMP ping协议)等。

    5.2 )应用程序的监控

    Zabbix有很多系统自带的模板,在添加主机的时候Link相关的模板即可。

    wKioL1MO4jKCn-QgAAMfK1vGjlk799.jpg

    当停止主机的上面的SSH服务或者Apache服务的时候会产生报警。

    wKiom1MO4mOwN88BAAD4jVhNQJQ676.jpg

    5.3 )WEB Monitoring

    Web Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间。当返回码不为200的时候也可以产生报警。

    wKioL1MO4mrxNLAGAAQZ6RYbORU303.jpg

    5.4 )Zabbix Screens

    Screen将多种信息放在一起展示,便于集中展示某个主机的监控信息。

    wKiom1MO4v-wUHrsAAXqOAYol0s286.jpg

    5.5 )Zabbix maps

    Zabbix的maps用来图形化显示监控设备的拓扑图,并且以不同的标记显示故障事件,通过该图表很直观的显示设备的整体情况。

    wKiom1MO426yLlkOAAChGOcZNU8116.jpg

    5.6 )Zabbix自定义监控

    在实际应用当中,好多监控系统都满足不了实际的需求,需要根据实际的需求添加自定义监控。比如说:监控应用服务器tuxedo排队,当队列大于2000的时候报警。监控apache,mysql链接数,当大于2000的时候报警等等,此时Zabbix需要借助scripts来完成。

    实例:监控http和mysql ESTABLISHED和TIME_WAIT连接数,当大于100的时候报警,并在WEB页面实时查看连接数。

    1)在要监控的服务器上面编写Shell/python脚本,取出ESTABLISHED和TIME_WAIT连接数。

    [root@monitor scripts]# catcheckservices.sh
    #!/bin/sh
    #Create by sfzhang 2014.02.10
    ARGS=1
    if [ $# -ne "$ARGS"];then
    echo "Please input one arguement";
    fi
    case $1 in
    EST_80)
    result=`netstat -anp | grep :80 | grep EST | wc -l`
    echo$result
    ;;
    TIME_OUT_80)
    result=`netstat-anp | grep :80 | grep TIME_WAIT | wc -l`
    echo$result
    ;;
    EST_3306)
    result=`netstat -anp | grep :3306 | grep EST | wc -l`
    echo $result
    ;;
    TIME_OUT_3306)
    result=`netstat -anp | grep:3306 | grep TIME_WAIT | wc -l`
    echo $result
    ;;
    EST_11211)
    result=`netstat -anp | grep :11211 | grep EST | wc -l`
    echo $result
    ;;
    TIME_OUT_11211)
    result=`netstat -anp | grep:11211 | grep TIME_WAIT | wc -l`
    echo $result
    ;;
    *)
    echo"Usage:$0(EST_80|TIME_OUT_80|EST_3306|TIME_OUT_3306|EST_11211|TIME_OUT_11211)"
    ;;
    esac

    3)在Zabbix_agentd.conf里面添加UserParameter,格式如下,对于Zabbix来说,脚本其实就是一个插件。

    UserParameter=checkservices.sh[*],/etc/zabbix/scripts/checkservices.sh $1

    重启agentd服务器,然后在zabbix server用zabbix_get就可以取到值。

    wKioL1MO5BHycEkgAAC6YaiQlQE551.jpg

    4)要监控的服务器有多台的时候,最简单的方法是先编写一个Templates(模板),在Link到要监控的服务器上面。

    wKiom1MO5HrSortYAAK-SIUkoMk358.jpg

    5)给新添加的模板Linux_service_templates添加Applications。

    wKiom1MO5UDTVknFAACixKB1xCw455.jpg

    6)给新添加的模板Linux_service_templates添加Items(监控项)。下面是添加http ESTABLISHED监控条目。

    wKioL1MO5X6jZgirAALiMp_pLxM521.jpg

    7)给新添加的模板Linux_service_templates添加Triggers(触发器)。下面是添加 httpESTABLISHED触发器,当连接数大于2000的时候报警,故障级别为High。

    wKiom1MO5XihYG-tAAF47LrhYNY051.jpg

    8)要在WEB前端实时查看http的连接情况,必须配置Graph。在一个Graph里面可以添加多个Item数据。

    wKiom1MO5ceQypyHAAHaNTf6EOw995.jpg

    9)要查看Graphs在要监控的主机上面Link刚才的模板Linux_service_templates。

    wKiom1MO5rHBxSBPAAMO2b16MXc555.jpg

    10)在WEB前端查看实时连接情况。

    Http连接情况:

    wKioL1MO5xOwooGWAASCP7onyQw682.jpg

    Mysql连接情况:

    wKioL1MO54STU0yRAAQxxbAu4hc157.jpg

    5.7 )Zabbix discovery

    1.Network discovery

    Zabbix network discovery能自动发现网络中存活的主机,可用通过proxy代理或者Zabbix server 发现网络中存活的主机,并按照Actions里面定义的条件自动添加到Zabbix监控里面。

    1)首先:添加Discovery rule,可以通过proxy代理或者zabbix server添加rule。

    wKioL1MO6ACgAo5XAAI5tB5e03w318.jpg

    2)然后create Actions,指定Actions的Conditions,必须具备下列条件才能自动添加,Discover

    rule :规则为 Local network,system.uname的值中包含Linux,Zabbix agentd服务必须正常运行。

    wKiom1MO6FPS-zRIAAI7B1ZwVyM207.jpg

    3) 配置Actions的operations,将Actions里面符合条件的主机添加到shwww组里面并Link要监控的模板。

    wKioL1MO6Fyh39XLAAI4PdtmSGs724.jpg

    4)查看Discover自动发现的主机自动添加到Zabbix里面。

    wKioL1MO6N3wCpOzAAPLZ5Fp6a4621.jpg

    2.Zabbix Low-level discovery

    Zabbis Low-level discovery 可以自动创建监控项,触发器和图像的方法。Zabbix可以自动发现主机上面的文件系统或者网络接口,不需要对每个文件系统和网络接口手动创建监控项,触发器和图像。Zabbix 还可以自动删除不需要的监控项,比如:上例当中的,当agentd宕机超过24小时的时候可以自动删除监控,只需在action里面配置即可。

    实例:监控服务器上面所有TCP端口,就可以通过Low-level discovery轻松实现。

    wKioL1MO6VXBLZTsAAHEV7UTXuQ153.jpg

    5.8) Zabbix 报警邮件机制

    1)基于业务类型发送报警邮件

    当数据库服务器出问题时发给DBA组,当系统出问题时发给System组。

    wKioL1MO6ZOwR8i6AAJLQq_4Eog735.jpg

    2)基于故障级别或者时间发送邮件

    wKiom1MO6dHRg7m5AADG3UbBcq0057.jpg

    5.9)Zabbix资产管理

    Zabbix可以自动收集主机的hostname,OS,cpu信息,MAC等信息。需要在添加主机的时候开启Host inventory Automatic功能,并按照官方手册(https://www.zabbix.com/documentation/doku.php?id=2.0/manual/config/hosts/inventory)添加Item即可

    wKiom1MO6znBW4bBAANeWU7ISK0083.jpg

    5.10)Zabbix 报表功能

    附录:

    1)官方在线文档:

    https://www.zabbix.com/documentation/2.2/manual/introduction

    zabbix监控tomcat(包含jvm监控)

    _1._前言:

    我们的监控系统是zabbix,最近刚做完jvm还有tomcat的监控,需要吐槽以下内容:

    • zabbix官方提供的jvm和tomcat监控模版,存在item书写格式的坑,导致很多内容无法获取到监控。
    • 网友写的zabbix监控java文章,99%就只有环境的搭建,没有zabbix item键值,所以环境监控上了,item键值不知道怎么写。

    本文监控jvm内容如下:

    内存使用状态: 堆内存(Heap memory)和非堆内存(No Heap memory),包括已用值、最大值、已提交;
    堆内存内存池: 新生代(eden space),survivor space,老年代(old gen)的内存使用状态;
    非堆内存内存池: 代码缓存(Code cache),元空间(meta space),压缩类空间(compressed class space);
    类加载: 加载总数,已加载,已卸载。
    Java线程: 总开启线程,活动线程,线程峰值。

    本文监控tomcat内容如下:

    Tomcat请求数:包括每秒请求数,每秒出错数;
    Tomcat网络流量统计:包括进流量统计,出流量统计;
    Tomcat线程: 包括最大线程数,当前线程数,当前繁忙线程数。

    我没有在zabbix中添加垃圾回收(gc)的监控,而是在catalina配置里面添加gc日输入来给开发进行分析,设置方式如下。

    CATALINA_OPTS=”-XX:ParallelGCThreads=4 -XX:+PrintGCDetails -Xloggc:日志存放路径”

    监控效果如下:

    image001

    image002

    tomcat%e8%af%b7%e6%b1%82

    _2._监控环境搭建

    环境介绍:

    [root@tomcat-01 ~]# /usr/local/tomcat/bin/version.sh
    
    Server version: Apache Tomcat/8.0.23
    
    Server built: May 19 2015 14:58:38 UTC
    
    Server number: 8.0.23.0
    
    OS Name: Linux
    
    OS Version: 2.6.32-573.22.1.el6.x86_64
    
    Architecture: amd64
    
    JVM Version: 1.8.0_65-b17
    
    JVM Vendor: Oracle Corporation

    _2.1._Server端配置

    1、 Zabbix server端安装java jdk环境并开启javaGateway支持java监控。

    javaGateway 启用方式如下:

    Zabbix通过rpm包安装:只需要安装zabbix-java-gateway包即可。

    Zabbix通过编译安装:在编译时需要加上—enable-java以支持jmx监控,如果之前没加需要重新编译。

    2、修改zabbix-java-gateway配置文件

    [root@zabbix ~]# vim /etc/zabbix/zabbix_java_gateway.conf
    
    LISTEN_IP="192.168.10.3"
    
    LISTEN_PORT=10052
    
    PID_FILE="/var/run/zabbix/zabbix_java.pid"
    
    START_POLLERS=5

    修改zabbix-server配置文件

    [root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
    
    JavaGateway=192.168.10.3
    
    JavaGatewayPort=10052
    
    StartJavaPollers=5

    启动zabbix-java-gateway服务

    [root@zabbix ~]# /etc/init.d/zabbix-java-gateway start

    _2.2._Tomcat服务器配置

    1、下载catalina-jmx-remote.jar包,到tomcat安装目录下的lib目录

    wget -O /usr/local/tomcat/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar

    2、修改catalina.sh添加如下内容

    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
    
    -Dcom.sun.management.jmxremote.port=8090
    
    -Dcom.sun.management.jmxremote.ssl=false
    
    -Dcom.sun.management.jmxremote.authenticate=false"

    3、重启tomcat

    4、监控测试
    (1)下载cmdline-jmxclient-0.10.3.jar文件,下载地址http://crawler.archive.org/cmdline-jmxclient/downloads.html
    (2)本地执行如下命令查看tomcat的堆内存信息

    [root@tomcat-01 ~]# java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage
    
    11/04/2016 15:23:16 +0800 org.archive.jmx.Client HeapMemoryUsage:
    
    committed: 2146959360
    
    init: 2147483648
    
    max: 2146959360
    
    used: 407611808

    _3._监控数据采集

    _3.1._堆内存

    Tomcat本地查看堆内存信息:

    [root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage
    
    11/04/2016 15:36:58 +0800 org.archive.jmx.Client HeapMemoryUsage:
    
    committed: 2145910784
    
    init: 2147483648
    
    max: 2145910784
    
    used: 741540536

    zabbix监控堆内存键值:

    堆内存最大值:

     jmx["java.lang:type=Memory","HeapMemoryUsage.max"]

    已用堆内存:

     jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

    已提交堆内存: jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]

    一个完整的zabbix item填写方式如下,不同内容填写不同的键值即可:

    image004

    _3.2._内存池eden space:

    Tomcat本地查看eden space:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090
    java.lang:type=MemoryPool,name=PS\ Eden\ Space Usage

    zabbix监控eden区域键值:

    最大空间: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.max]

    已用空间: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.used]

    提交空间: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.committed]

    _3.3._内存池survivor space:

    Tomcat本地查看Survivor space区域:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090
    java.lang:type=MemoryPool,name=PS\ Survivor\ Space Usage

    zabbix监控Survivor 键值:

    jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.committed]
    
    jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.max]
    
    jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.used]

    _3.4._内存池old gen:

    Tomcat本地查看old gen区域使用:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 
    java.lang:name=PS\ Old\ Gen,type=MemoryPool Usage

    zabbix监控old gen键值:

    jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.committed]
    
    jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.max]
    
    jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.used]

    _3.5._非堆内存:

    Tomcat 本地查看非堆内存使用:

    java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory NonHeapMemoryUsag1

    zabbix监控非堆内存使用

    jmx["java.lang:type=Memory","NonHeapMemoryUsag.committed"]
    
    jmx["java.lang:type=Memory","NonHeapMemoryUsag.used"]

    _3.6._内存池meta space:

    Tomcat 本地查看meta space区域使用:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Metaspace Usage

    zabbix监控mete space区域键值

    jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.committed]
    
    jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.used]

    _3.7._内存池code cache:

    Tomcat 本地查看code cache区域使用:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Code\ Cache Usage

    zabbix监控code cache区域使用:

    jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.committed]
    
    jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.max]
    
    jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.used]

    _3.8._内存池compressed class space:

    Tomcat 本地查看compressed class space区域使用:

    java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Compressed\ Class\ Space Usage

    zabbix监控 compressed class space区域使用键值:

    jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.committed]
    
    jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.max]
    
    jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.used]

    _3.9._类加载:

    Tomcat本地查看类加载信息:

    加载总数:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading TotalLoadedClassCoun

    已加载:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading LoadedClassCount

    已卸载:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading UnloadedClassCount

    Zabbix监控类加载键值:

    加载总数: jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"]

    已加载:jmx["java.lang:type=ClassLoading","LoadedClassCount"]

    已卸载:jmx["java.lang:type=ClassLoading","UnloadedClassCount"]

    _3.10._java线程:

    tomcat本地查看java线程:

    总开启线程:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading TotalStartedThreadCount

    活动线程:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount

    线程峰值:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount

    Zabbix监控java线程键值:

    总开启线程:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

    活动线程:jmx["java.lang:type=Threading","ThreadCount"]

    线程峰值:jmx["java.lang:type=Threading","PeakThreadCount"]

    _3.11._tomcat线程:

    本地查看tomcat线程信息:

    最大线程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool maxThreads

    当前线程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool currentThreadCount

    繁忙线程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool currentThreadsBusy

    Zabbix监控tomcat线程键值:

    最大线程:jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",maxThreads]

    当前线程:jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",currentThreadCount]

    繁忙线程jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",currentThreadsBusy]

    _3.12._网络流量:

    Tomcat本地查看接收的字节:

    接收的字节:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor bytesReceived

    发送的字节:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor bytesSent

    Zabbix监控tomcat接受字节键值:

    接收的字节:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",bytesReceived]

    发送的字节:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",bytesSent]

    _3.13._tomcat请求,出错请求:

    tomcat本地查看tomcat请求数:

    tomcat请求数:java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor requestCount

    tomcat出错请求: java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor errorCount

    zabbix监控tomcat请求数:

    tomcat请求数: jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",requestCount]

    tomcat出错请求:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",errorCount]

    _4._关于网友问题的解答

    最近有网友联系我说,看着我的博文搭建完了环境,获取不到数据,我帮助排查了一下,找到了问题所在,特此记录。

    网友的报错如下:

    # java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=MemoryPool,name=PS\ Eden\ Space Usag
    
    11/11/2016 10:03:37 +0800
    
    org.archive.jmx.Client java.lang:name=PS Eden Space,type=MemoryPool is not a registered bean

    _4.1._解决思路

    • 如果你使用命令行监控获取不到数据,那么就先使用jconsole看看有没有数据,如果jconsole有数据,那么就往下看,反之检查你的环境。

    • 如果jconsole有数据,但是命令行没有数据,那么就是Mbean的Object Name或者属性有问题,网友都是复制我的,但是自己本地环境和我的环境不一样所以导致获取不到数据,查询自己的本地Mbean方法有两种,分别是图形和命令行,网友的报错说事自己的Eden Space空间有问题,那么我就贴出来查看本地内存池的Object Name和属性的方法。

    (1)通过jconsole查看:

    jconsole

    (2)通过命令行查看:直接使用java -jar cmdline-jmxclient-0.10.3.jar – 127.0.0.1:8090命令可以获取所有的Mbean信息,输出太多这里就不贴输出结果了。我通过grep命令获取所有内存池的监控信息方式如下。

    [root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 | grep MemoryPool
    
    java.lang:name=Compressed Class Space,type=MemoryPool
    
    java.lang:name=Metaspace,type=MemoryPool
    
    java.lang:name=PS Old Gen,type=MemoryPool
    
    java.lang:name=PS Eden Space,type=MemoryPool
    
    java.lang:name=PS Survivor Space,type=MemoryPool
    
    java.lang:name=Code Cache,type=MemoryPool

    然后我要获取Eden Space的所有属性信息方式如下:(一些特殊字符需要转义)

    [root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPool
    
    Attributes:
    
    Usage: Usage (type=javax.management.openmbean.CompositeData)
    
    PeakUsage: PeakUsage (type=javax.management.openmbean.CompositeData)
    
    MemoryManagerNames: MemoryManagerNames (type=[Ljava.lang.String;)
    
    UsageThreshold: UsageThreshold (type=long)
    
    UsageThresholdExceeded: UsageThresholdExceeded (type=boolean)
    
    UsageThresholdCount: UsageThresholdCount (type=long)
    
    UsageThresholdSupported: UsageThresholdSupported (type=boolean)
    
    CollectionUsageThreshold: CollectionUsageThreshold (type=long)
    
    CollectionUsageThresholdExceeded: CollectionUsageThresholdExceeded (type=boolean)
    
    CollectionUsageThresholdCount: CollectionUsageThresholdCount (type=long)
    
    CollectionUsage: CollectionUsage (type=javax.management.openmbean.CompositeData)
    
    CollectionUsageThresholdSupported: CollectionUsageThresholdSupported (type=boolean)
    
    Valid: Valid (type=boolean)
    
    Name: Name (type=java.lang.String)
    
    Type: Type (type=java.lang.String)
    
    ObjectName: ObjectName (type=javax.management.ObjectName)
    
    Operations:
    
    resetPeakUsage: resetPeakUsage
    
    Parameters 0, return type=void

    那么我们在查看Eden Space空间的使用信息。就看到已经出来数据了

    [root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPool Usage
    
    12/03/2016 08:33:58 +0800 org.archive.jmx.Client Usage:
    
    committed: 712507392
    
    init: 537395200
    
    max: 712507392
    
    used: 396006304

    转载于:https://blog.51cto.com/235571/2136880

    展开全文
  • 主动或者被动是相对客户端来讲的 ...主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,...

    主动或者被动是相对客户端来讲的

    被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端

    主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收即可。

    当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。

    服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式。

    转载于:https://my.oschina.net/u/3867322/blog/2049195

    展开全文
  • 主动模式和被动模式 主动或被动都是相对于客户端来讲的 ...主动模式,客户端会主动把监控数据汇报服务端服务端只负责接受即可。 定义完监控项目之后,客户端就会根据设定的策略去采集相关项目的数据(cpu...

    主动模式和被动模式

    • 主动或被动都是相对于客户端来讲的

      • 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动的接受连接,并把监控信息传递给服务端。

        • 服务端要到所有的客户端上取数据再返回放到数据库。
      • 主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接受即可。

        • 定义完监控项目之后,客户端就会根据设定的策略去采集相关项目的数据(cpu使用率、网卡流量、负载等),到点就把数据上传给服务端,服务端再把数据传到数据库。
      • 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。

      • 服务端有公网ip,客户端只有内网ip,但却能连接外网,这种场景适合主动模式。

    添加监控主机

    • 打开服务端配置界面
      9FDUAg.md.png

      • 主机群组:需要先创建主机群组,然后再添加要监控的机器到已有群组中。这样做的好处是,在不同的主机群组设置不同监控规则,然后可以吧想要使用同样规则的主机添加到指定群组进行管理,避免为每台主机去配置规则。

      • 模板:预设的监控项目集合(监控规则模板)

      • 主机:在监控系统中的所有机器(包括服务端和客户端)

    9FD09s.png
    // zabbix server(监控中心)因为没有启用zabbix-agent,所以状态为停用的。

    • 添加主机群组zabbix-test
      点击【主机群组】→右上角【创建主机群组】
      9FrhdS.png

    // 群组名自定义

    • 再添加被监控的主机

    9FrjdU.md.png
    // 主机名称为之前在客户端设置的Hostname:Zabbix 01;可见名称同上。

    // 群组选择之前新建的群组.

    // IP为客户端ip,端口默认10050

    // DNS是用来解析主机名的

    • 主机列表

    9FsDmV.png

    // 应用集:监控项目的集合,方便管理监控项。

    // 监控项:所有监控项目

    // 触发器:针对监控项目设置告警规则,达到规则时将会有对应的提示(不同规则颜色不同,会体现在首页的主机状态中)

    // 图形:根据监控历史数据绘制的图标

    // 自动发现规则:zabbix自动监控的文件系统的信息和网卡信息(该部分自定义比较繁琐,所有使用自动发现规则)

    // web场景:在此可设置对主机上的某个站点进行监控

    添加自定义模板

    • 当添加一些特有格式特有组的服务器,这组服务器需要添加一些个性化的监控项目,这些项目要添加到一个自定义模板里,然后把模板链接到这一组机器里就行了,每增加一组机器就链接这组模板。这样就方便添加监控项目、图形、触发器等。

    创建模板

    【配置】→【模板】→【创建模板】
    9FjFC4.png
    // 自定义模板名字并选择模板所属组

    // 新建的模板中所有的都是空的

    • 添加监控项

      • 添加监控项的方法为从别的模板中复制。template OS Linux 这个模板比较合适,我们就从里面复制监控项。

      • 点击【监控项】进入监控项界面,勾选需要的监控项,然后复制,选择复制到指定的模板即可。同样的方法可以把触发、图形、聚合图形复制到指定模板。

      • 自动发现不能用复制的方法。
    • 将template os Linux模板导出,在此会生成一个XML文件,然后编辑该文件,编辑完成后再导入模板列表(一定要记得改模板名称,该方法工作量太大,不建议使用)

    • 通过链接模板的方式修改模板

    点击刚才新建的模板名称【zabbix muban】,然后点【链接的模板】
    9FvotS.png

    // 更新之后我们的模板中有了和被复制的模板中一样的监控项、自动发现等。

    // 有些监控项不是我们想要的,我们想要把它们删除,但是点进去不能删除。这是因为,这些监控项不属于‘zabbix muban’模板,所以我们需要取消与之前模板的链接。
    9FzvJU.md.png
    // 其中取消链接只是取消模板之前的链接,不删除复制过来的监控项等

    // 取消链接并清理是取消模板之间的链接并删除复制过来的监控项等

    • 删除应用集之前需要先删除应用集里的监控项

    点开应用集时,发现监控项那一列监控项后没有数字说明该应用集里没有监控项,可以删除该应用集。

    保留下面这些监控项
    9kClwR.png

    处理图形中的乱码

    将刚刚弄的模板链接到zabbix 01这个主机里去。
    点击【主机】→点击主机名【Zabbix 01】→【模板】
    9ki4J0.png
    // 更新之后该主机就会有应用集、监控项等。

    • 查看主机对应的图形预览时会有乱码出现

    9kkob4.png

    // 显示乱码说明字符集不对,但是像图中这种有规律的“乱码”不是字符集问题,而是缺少相应的字库(中文字库)。

    解决办法:在服务端配置

    [root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php 
    
    // 在该文件下搜ZBX_FONTPATH
    // 在参数“define 'ZBX_FONTPATH'”下定义的是相对/usr/share/zabbix/的相对路径
    // 相对路径下是指定的字库 graphfont.ttf
    
    查看字库文件:
    [root@localhost ~]# ls -l /usr/share/zabbix/fonts/
    总用量 0
    lrwxrwxrwx. 1 root root 33 131 14:34 graphfont.ttf -> /etc/alternatives/zabbix-web-font
    [root@localhost ~]# ls -l /etc/alternatives/zabbix-web-font 
    lrwxrwxrwx. 1 root root 38 131 14:34 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf

    // 之所以图形界面显示乱码是因为该字库不支持中文字体,解决办法是将该字库软链接到一个支持中文的字库中。

    // 此我们将其链接到Windows中文字库:
    打开计算机字库文件目录C:\Windows\Fonts——复制一款中文字体到桌面——上传到虚拟机——将该文件移动到:/usr/share/zabbix/fonts/——然后将该文件做软链接到graphfont.ttf

    [root@localhost ~]# cp /root/simsun.ttc /usr/share/zabbix/fonts/
    
    [root@localhost ~]# cd /usr/share/zabbix/fonts/
    
    [root@localhost fonts]# ls
    graphfont.ttf  simsun.ttc
    
    [root@localhost fonts]# mv graphfont.ttf graphfont.ttf.bak
    
    [root@localhost fonts]# ln -s simsun.ttc graphfont.ttf
    
    [root@localhost fonts]# ls -l
    总用量 17788
    lrwxrwxrwx. 1 root root       10 21 15:29 graphfont.ttf -> simsun.ttc

    // 配置完成后刷新图形界面:
    9kVM3q.md.png

    • 如果想使用图形查看更多的监控项,则点击【创建图形】,选择想要监控的监控项即可。

    自动发现

    • 自动发现中的检测的网卡和磁盘信息,不能直接添加到图形中是因为数据更新时间间隔过长,一般为600秒。
      9kmhx1.png

    更改完数据更新间隔之后,需要重启客户端上的zabbix-agent和服务端上的zabbix-server。

    重启之后就会在图形中看见对应的图形

    • 更改图形界面颜色

      自动发现规则更改图形界面信息是在自动发现规则中【图形原型】中修改。

    本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/2067804

    展开全文
  • Zabbix的配置和使用(一) ... 主动模式:客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip.
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动...
  • 12月25日 19.7主动模式和被动模式 主动模式和被动模式 ·主动或者被动是相对客户端来讲的 ·被动模式,服务端会主动连接...·主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 ·当...
  • 9.11任务

    2019-09-17 02:55:23
    19.7 主动模式和被动模式 主动或者被动是相对客户端来讲的。... 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务...
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合...
  • 9月11日

    2019-09-16 06:30:10
    一、主动模式和被动模式 •主动或者被动是相对客户端来讲的 ...• 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 • 当客户端数量非常多时,建议使用主动模式,这样可以...
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合...
  •  主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。  当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。  服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景...
  • 7月9日

    2018-07-10 00:11:11
    服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。当客户端数量非常多时,建议使用主动模式,这样...
  • 主动模式:客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动...
  • 2018-05-25 Linux学习

    2018-05-25 23:53:47
    主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动...
  • 主动模式和被动模式

    2018-12-26 02:01:43
    主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。...
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动...
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。4. 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。5. 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景...
  • linux学习lesson67

    2018-12-24 23:49:20
    文章目录1.主动模式和被动模式2....主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip...
  • 服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。当客户端数量非常多时,建议使用主动模式,这样...
  • 主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动...
  • 主动或被动是相对客户端来讲的被动模式:服务端会主动连接客户端获取监控项目数据,客户端被动地接收连接,并把监控信息传递给服务端主动模式:客户端会主动把监控数据汇报服务端服务端只负责接收即可。...
  • Linux监控平台搭建二

    2018-02-02 00:34:05
    主动模式和被动模式• 主动或者被动是相对客户端来讲的• 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端• 主动模式,客户端会主动把监控数据汇报服务端,...
  • •主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。 •当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。 •服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景...
  • 主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端主动模式,客户端会主动把监控数据汇报服务端服务端只负责接收即可。...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

服务端数据汇报