理解 Zabbix

原文: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和脚本配合,从容器环境变量可选择性地启动容器的功能等,在代码结构上也层次分明,具有通用性。)

经验法则

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

快速词汇表

  • Zabbix Server

    这是监控所有内容的主服务器。 如需安装,请点击此链接
    通常,Web Interface也仅安装在此服务器上。 我个人觉得(不太确定)最好将它与需要监控的其他服务器分开。
    这样,即使实际的服务器群体停机,我们也能够至少监控停机时间以及它们可能已经停机的原因。

  • Zabbix Agent

    这是一个软件,可以帮助将数据从被监控的服务器发送到Zabbix Server。 如果您还要监视Zabbix服务器,也可以在该服务器中安装Zabbix Agent。

  • Zabbix Host

    Host是您需要监控的服务器。 因此,如果您需要监视三个不同的服务器,则在所有这些服务器上安装Zabbix Agent。

  • 在Zabbix Server中添加Host

    在各自的服务器中安装Zabbix Server和Agent后,还需要在Zabbix Server中添加主机。

  • Host Groups

    主机组可以作为分类或标记。 我觉得在主机组的使用上想得自由一点比较有益。
    以下是我创建的一些主机组#LearningPaths,#staging,#live,#database,#mongodb,#appserver,#search。
    使用模板或“创建”操作时,这些主机组将非常方便。

  • Templates

    将模板视为可应用于各种主机组的监控模板。 根据经验,我总是将模板应用于主机组。
    如果想要删除主机或仅将模板应用于一个主机,这是我的指导标准,我可以重新设置主机组或添加符合当前条件的新主机组。
    这为我节省了很多时间。 我在其他标准之前提到模板,因为我认为从模板和组的角度思考一切是非常重要的。

  • Template OS Linux

    默认情况下安装Zabbix完就存在。 这提供了其他监视服务中通常可用的大多数参数,如CPU使用率,CPU负载,内存使用量等。
    这已经配置了数据指标,对于服务器级别监控来说已经足够了。 我们更改了平均CPU负载的触发器,因为它引发了太多错误警报。
    我们目前正在配置以下两个(模板)。 如果你有幸安装这两个,请发表评论。 我能够获得所有相关数据,但我无法将其推送到Zabbix服务器(指Zabbix官网·社区)。
    我认为它与trap设置有关。 我还在搞清楚。

定制化

正如我之前提到的,我发现总是在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挺好的,但是我觉得对于调试来说,用控制台会更好。

在监控者服务器上

  • 检查您可以通过10050端口连接上Agent。

    telnet <ip-of-your-agent> 10050

  • 使用zabbix-get

    [root@8a11e51b8ddb nginx]# zabbix_get
    usage:
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                    --tls-connect cert --tls-ca-file CA-file
                    [--tls-crl-file CRL-file] [--tls-agent-cert-issuer cert-issuer]
                    [--tls-agent-cert-subject cert-subject]
                    --tls-cert-file cert-file --tls-key-file key-file -k item-key
      zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                    --tls-connect psk --tls-psk-identity PSK-identity
                    --tls-psk-file PSK-file -k item-key
      zabbix_get -h
      zabbix_get -V
    [root@8a11e51b8ddb nginx]# zabbix_get -s 192.168.79.128 -k agent.ping
    1
    [root@8a11e51b8ddb nginx]# zabbix_get -s 192.168.79.128 -k agent.hostname
    k8s-master-01.local
    [root@8a11e51b8ddb nginx]#
    
    

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

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

  • 检查您可以连接到服务器端的10050端口。

    telnet <ip-of-your-server> 10050

  • 检查是否有安装zabbix-sender,没有的话安装它。

    sudo apt-get install zabbix-sender

  • 当Zabbix sender安装好后您可以运行以下命令

    zabbix_sender -vv -z [serverIp] -p 10051 -s [clientName] -k traptest -o "Test value"

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

报告

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

Zabbix screens

通知

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,958评论 0 37
  • 1.写在前面 本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的...
    天之蓝色阅读 2,523评论 0 16
  • 当眼泪流下的那一刻,我开始接近疯狂的提醒自己,提醒自己找到他的目的只是结婚,不是爱。怎么可以有担心,怎么可以有牵挂...
    米粒子阅读 154评论 0 0
  • 文|过云雨 回顾星期六的课程,更强化了我对健康的理解和重要性。 如果你想要获得一切,先做好健康这块大基石。 以前我...
    过云雨Milo阅读 127评论 0 0
  • #21天自我突破#Day21,今天的课是最后一节,应该在昨天上完,但因为一些事耽搁,今天补上。 自我发展:一条不断...
    Sophia040825阅读 157评论 0 0