zabbix配置(1)

zabbix配置(1)

Administrator 778 2018-07-09

本文主要对zabbix的主被动模式进行了介绍,然后介绍了常用的配置菜单和如何添加新的监控主机、怎样添加自定义的模板,以及自动发现规则的一些配置。


主动模式和被动模式

  • 主动或者被动模式,是相对于客户端来说的;
  • 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动的接受连接,并把监控信息传递给服务端;
  • 主动模式,则是客户端主动将监控数据汇报给服务端,服务端只负责接收即可;
  • 当客户端数量非常多时,建议采用主动模式,这样可以降低服务端的压力;
  • 若服务端有公网ip,客户端只有内网ip,但能够连接外网,这种场景适合主动模式。

添加监控主机

配置菜单介绍

  • 安装完zabbix服务端和客户端后,在web管理界面上,客户端还没有添加到监控中来,我们需要进入web界面,点击配置 > 主机群组,主机群组是用来创建主机组的,在主机组内可以添加需要监控的机器;
  • 配置 > 模板则是一些监控项目的集合,将不同的监控项目,设置为不同的模板,从而能够方便的为不同的主机设置不同的监控项目;
  • 配置 > 主机,默认只有服务端,主机页面是我们的监控中心,其中服务端的状态为停用是因为我们没有在服务端上启动zabbix-agent服务;

添加主机

  • 添加一个新的需要监控的主机,首先要添加一个主机群组:

    zabbix-group

  • 然后点击主机 > 创建主机,在显示的页面上,填入主机名称,主机名称为客户端zabbix_agentd.conf中定义的Hostname,然后填入可见的名称,可以自定义;接着选择群组,这里选择之前创建的TestGroup,再填入客户端的IP地址即可;而DNS则是在IP地址中填写的为主机名时,用来对主机名进行解析的,这里可以不填,最后点击添加即可:

    zabbix-host

  • 完成后,可以在主机界面看到新添加的主机,并且状态为已启用,在主机名称后面,可以看到应用集监控项触发器图形自动发现web检测几个链接;

  • 其中应用集就是监控项的集合,例如下图,CPU的监控应用集,包括了13个监控项,其他应用集类似:

    zabbix-app

  • 而监控项,就是需要的监控项目,每个监控项代表了一个监控的具体事务,如用户态CPU时间:

    zabbix-monitor

  • 触发器则是针对某个监控项的告警规则,如设置系统负载高于某个阀值触发严重告警,并以相应的颜色显示,在仪表板的主机状态上就会以告警对应的颜色显示客户端存在的告警;

  • 图形则是zabbix根据历史数据进行绘图,展示一段时间的系统状态,如系统负载的图形展示;

  • 自动发现规则能够自动发现用户规则定义的监控项目,如自动发现客户端磁盘分区、挂载点,不同的网卡名、网卡数量等;

  • web场景则是用来监控网站,如监控某个网址,若网页访问状态码不是200,则触发告警。

添加自定义模板

  • 有时需要对一个自定义的主机群组定义相同的监控项目,这时候可以自定义一个常用模板,方便给新增的主机添加监控项目,然后将模板链接到主机群组里,每增加一个新的监控主机,就可以链接模板,方便增加触发器,监控项目,图形等等;

  • 添加一个模板,可以点击配置 > 模板 > 创建模板,然后填入模板的名称、可见的名称,并且需要划分到Templates群组,然后点击添加,这个新添加的模板,应用集、监控项、触发器等都是空的;

  • 然后为其添加监控项目,可以从其他模板中选择需要的监控项复制到我们自定义的模板中,例如点击模板 > Template OS Linux模板的监控项 > 勾选需要的监控项 > 点击复制 > 目标类型选择模板 > 选择我们自行创建的模板 > 复制,即可将选中的监控项添加到新创建的模板中;

  • 其他触发器、图形等都可以用这种方法进行复制,但自动发现规则无法复制,可以将模板导出,导出的文件为xml格式,将不需要的配置删除,只留自动发现规则相关的配置,并将模板的名字改为到导入的模板名,再进行导入即可,但这种方式比较麻烦,所以可以使用另一种方案;

    • 首先将之前复制的监控项删除,然后点击新建的模板 > 链接的模板,在链接指示器的输入框后面点击选择,然后选择所需的模板,如Templates OS Linux,然后点击选择,接着点击添加按钮,最后点击更新按钮即可:

    zabbix-temp

  • 但是经过上面的链接步骤后,对于不需要的应用集、监控项、触发器等,都无法删除,因为这些配置都是链接到其他模板中的,解决的办法:需要再次进入新建模板> 链接的模板菜单,点击取消链接即可,而取消链接并清理,则会导致我们链接过来的监控项等全部被清空,取消链接后,就可以对不需要的监控项进行删除;

  • 需要注意的是,应用集包含监控项,所以需要先删除监控项后,才能删除应用集。

处理图形中的乱码

  • 首先将新建的模板链接到新添加的监控主机中,点击主机 > evobot-130 > 二级菜单中的模板 > 选择自建的模板 > 添加 > 更新即可;

  • 再回到主机页面,可以看到监控主机后面的应用集等已经有了对应的内容,点击图形 > CPU load > 预览查看CPU负载的图形,会发现图形的中文显示出现乱码;

  • 出现方块乱码,是由于缺少字库导致,在服务端上,打开/usr/share/zabbix/include/defines.inc.php配置文件,搜索ZBX_FONTPATH配置项,这个配置定义的realpath('fonts')路径是相对于/usr/share/zabbix/的一个相对路径,查看这个目录,可以看到字体文件:

    $ ll /usr/share/zabbix/fonts/
    总用量 0
    lrwxrwxrwx. 1 root root 33 7月   8 23:29 graphfont.ttf -> /etc/alternatives/zabbix-web-font
    
    $ ll /etc/alternatives/zabbix-web-font 
    lrwxrwxrwx. 1 root root 38 7月   8 23:29 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
    
  • 可以看到,实际上的字体文件是软连接到系统的字体目录下的DejaVuSans字体,而这个字体不支持中文,所以为了解决这个问题,需要额外放一个支持中文的字体,软连接到zabbix的字体目录,从windows或者其他途径下载字体文件,上传到/usr/share/zabbix/fonts/目录下,然后将原graphfont.ttf重命名,再将新的字体做软链接为graphfonts.ttf:

    $ mv graphfont.ttf graphfont.ttf.bak
    $ ln -s SIMLI.TTF graphfont.ttf
    $ ll
    总用量 9008
    lrwxrwxrwx. 1 root root       9 7月  11 00:11 graphfont.ttf -> SIMLI.TTF
    lrwxrwxrwx. 1 root root      33 7月   8 23:29 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font
    -rwxr-xr-x. 1 root root 9223160 7月  11 00:10 SIMLI.TTF
    
  • 然后刷新web界面,就可以看到中文显示正常。

  • 点击监测中 > 最新数据,选择主机,则可以看到选择的主机各个检测项的数据,并且可以看到图形,由于链接过来的模板中,图形只有两个,所以可以手动创建新的图形:

    • 在主机页面点击图形,然后点击创建图形,输入名称,选择需要绘图的监控项,完成添加后,就可以看到新添加的图形。

    • 在自动发现中的图形未自动添加,是因为自动发现规则的默认间隔为一小时,所以未到间隔时间时,不会自动添加。

自动发现规则

  • 将自动发现规则的间隔时间修改为1分钟,然后重启zabbix-server和zabbix-agent;
  • 重启完成后,就可以看到自动添加的图形,为了减轻负载,在自动添加图形后,建议将间隔时间修改为10分钟。
  • 修改自动发现规则的图形配置,如颜色、线条等,需要在模板>自定义的模板>自动发现>图形原型中点击对应的项目,然后对颜色等进行修改。