理解 Zabbix

2019-08-20  本文已影响0人  ShounenG

原文:https://hackernoon.com/understanding-zabbix-f2a83eeb1221

监控所有服务器基础设施。

背景

在为我们的产品设置基础设施时http://bit.ly/use-highlights我正在寻找用于服务器基础设施监控的开源工具,而不是藏着一颗炸弹(译者按:不监控大概就是藏着一颗炸弹吧),并且可以随着我们改进(服务架构)帮助我们自定义化。 两个主要的竞争者是Nagios和Zabbix。 我读了几篇比较两者的帖子,但是https://www.comparitech.com/net-admin/nagios-vs-zabbix/?lphiltid=5bfd07b68e39bb080950ca0b是我最喜欢的文章,因为我觉得它非常客观和详细。 我对Nagios的一个主要优势是你可以使用现有的设置升级到Nagios ** Nagios XI **。 但是对于我们的场景,我们觉得Zabbix绰绰有余。 所以就使用Zabbix吧。

这不是详细的"HowTo"博客。 但这将是我的学习总结,链接到适用于我的相关安装指南,链接到详细的"TODO"文章和我的经验法则。

安装前的一些基础知识

Zabbix有三个主要组件。 Zabbix Server,保存...(译者按:意思为保存数据) Zabbix Agent和Zabbix Web Interface。 Zabbix Server是从您要监视的服务器收集所有相关数据的服务器。 要监视的服务器称为“Agent”。 您可以在没有Zabbix Web部件的情况下监控服务器。 但我建议使用它,因为它可以让体验变得更好。

如果您只想在安装任何内容之前了解用户界面,请访问https://zabbix.org/zabbix/index.php并“以访客身份登录”。 您将没有“配置”和“管理”选项卡,但可以查看“监视”,“清单”和“报告”部分。

安装

我将在此处跳过详细信息,因为您可以从互联网上找到“HOWTO”文章。 我们使用的是Ubuntu服务器,https://twitter.com/tecadmin的以下文章非常方便。

  1. 安装Zabbix Server -- https://tecadmin.net/install-zabbix-on-ubuntu/
  2. 安装Zabbix Agent -- https://tecadmin.net/install-zabbix-agent-on-ubuntu-and-debian
  3. 将主机(host)添加到 Zabbix Server中以便监控 -- https://tecadmin.net/add-host-zabbix-server-monitor

默认情况下,Zabbix Web Interface使用apache。 如果您不想在其位置使用Nginx,请在您的nginx中添加以下配置(译者按:配置内容为译者补充)。

server {
  listen      80 default;
  root        /data/www/default;
  index       index.php index.html;

  include     /etc/nginx/conf.d/default-*.conf;
  include     /data/conf/nginx/conf.d/default-*.conf;

  # PHP backend is not in the default-*.conf file set,
  # as some vhost might not want to include it.
  include     /etc/nginx/conf.d/php-location.conf;

  # Import configuration files for status pages for Nginx and PHP-FPM
  include /etc/nginx/conf.d/stub-status.conf;
  include /etc/nginx/conf.d/fpm-status.conf;

}

可参考Dockbix的Nginx配置(译者按:译者补充,monitoringartist/dockbix-xxl包含了具有启迪意义的代码,代码涉及到Dockerfile的分层思路、supervisor、inotify-util和脚本配合,从容器环境变量可选择性地启动容器的功能等,在代码结构上也层次分明,具有通用性。)

经验法则

从主机组,用户组和模板这些方面,考虑您要进行监控的所有操作。

快速词汇表

定制化

正如我之前提到的,我发现总是在Templates和Host Groups方面进行思考是有用的。
因此,如果您计划创建任何新项目/触发器,请确保将它们添加到相关模板中,然后关联到主机组。

首先为要跟踪的每个数据点创建一个项目。 您可以按照这些步骤
https://www.zabbix.com/documentation/3.4/manual/config/items/item中的步骤操作

然后,您可以根据这些项目值创建触发器。 您可以按照
https://www.zabbix.com/documentation/3.4/manual/config/triggers/trigger
中的步骤创建触发器。

调试

虽然Web Interface挺好的,但是我觉得对于调试来说,用控制台会更好。

在监控者服务器上

在需要被监控的服务器/客户端上

在基本配置(Passive Agent)中,监控者服务器将询问数据。 因此,如果您的服务器可以与代理进行通信,那就足够了。
但如果使用Active Agent模式,那么您需要保证您的Agent可以连接您的监控者服务器并且可以推送数据。(编者按:监控者服务器指Zabbix Server所在的服务器)

在Active Agent配置中请注意,推送到服务器的所有数据都应该是Item类型trapper。
因此,在上面的示例中,您应该在服务器上使用密钥traptest创建了一个trapper类型的项目。
还要确保在服务器上创建项目时,您发送的数据是指定的类型。

报告

仪表板是可自定义的。 所以你可以改变它以列出的所有相关问题。 我个人喜欢的另一个功能是屏幕。 我们添加了服务器的所有心跳图,我们可以像这样跟踪它们的数据。

Zabbix screens

通知

我认为Zabbix中的通知很棒,因为它是高度可配置的。
我们使用结合sendgrid使用Zabbix。Zabbix UI中的默认通知对我们来说效果不佳。
所以我们使用了脚本路由。我们使用了库https://github.com/mkgin/sendgrid_zabbix_alert
Zabbix通知的调试可能有点刺激。 我刚刚创建了一个草稿,当我有时间的时候会更新。

上一篇 下一篇

猜你喜欢

热点阅读