Zabbix是什么

Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。

Zabbix 是一个企业级的分布式开源监控方案。

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。

Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。

Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。

Zabbix的特点

Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。

数据收集

  • 可用性和性能检查
  • 支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
  • 自定义检查
  • 按照自定义的间隔收集需要的数据
  • 由Server/Proxy和agents执行

灵活的阀值定义

  • 您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值

高度可配置化的告警

  • 可以根据升级计划,接收方和媒体类型来定制发送告警通知
  • 使用宏变量可以使告警通知更有意义更高效
  • 自动化动作包含执行远程命令

实时图表绘制

  • 使用内置图表绘制功能可以将监控项的内容立即绘制成图表

Web监控功能

  • Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间

丰富的可视化选项

  • 能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
  • 网络拓扑图
  • 以仪表盘的样式展现自定义的展现和幻灯片
  • 报告
  • 监控资源的高级(业务)视图

历史数据存储

  • 数据存储在数据库中
  • 可配置历史数据
  • 内置数据管理机制

配置简单

  • 将被监控对象添加为主机
  • 主机被创建用于监控,在数据库中是唯一存在的
  • 应用模板来监控设备

使用模板

  • 在模板中分组检查
  • 模板可以关联其他模板

网络发现

  • 自动发现网络设备
  • 监控代理自动注册
  • 发现文件系统,网络接口和SNMP OID值

简洁的Web界面

  • Web前端基于PHP
  • 可从任何地方访问
  • 你可以定制自己的操作方式
  • 审核日志

Zabbix API

  • Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的

权限管理系统

  • 安全用户认证
  • 特定用户可以限制访问特定的视图

功能强大并易于扩展的监控代理

  • 部署在被监控对象上
  • 可以部署在Linux和Windows上

二进制代码

  • 为了性能和更少内存的占用,用C语言编写
  • 便于移植

为复杂环境准备

  • 使用Zabbix proxy代理服务器,使得远程监控更简单

Zabbix概述

结构

Zabbix由几个主要的软件组件构成,这些组件的功能如下。

Server

Zabbix server 是监控代理程序报告系统可用性、系统完成整性和统计信息的核心组件。Zabbix Server是所有配置信息、统计信息和操作数据的核心存储器。

数据库存储

所有配置信息和Zabbix收集到的数据都被存储在数据库中。

Web界面

为了从任何地方和任何平台都轻松的访问Zabbix,Zabbix提供了基于Web的界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。

如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。 

Proxy代理服务器

Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

Agent监控代理

Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

数据流

此外,了解Zabbix内部的数据流同样很重要。为了创建一个监控项用于采集数据,必须先创建一个主机。转换到Zabbix功能的其他部分,你必须先有一个监控项来创建触发器,你必须有一个触发器来创建动作。 因此,如果你想收到X服务器CPU负载过高的告警,你必须先为X服务器创建一个主机实体并关联一个用于对CPU进行监控的监控项,然后如果CPU负载太高便会激活触发器,接着会执行一个动作,给你发送告警邮件。虽然看起来有很多步骤,但是使用模板的话可以会很简单。同时,这个设计可以创建一个非常灵活的配置。

定义

主机 (host)

一台你想监控的网络设备,用IP或域名表示

主机组 (host group)

主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。

监控项 (item)

你想要接收的主机的特定数据,一个度量数据。

触发器 (trigger)

一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。

事件 (event)

单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册

异常 (problem)

一个处在“异常”状态的触发器

动作 (action)

一个对事件做出反应的预定义的操作。

一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成

升级 (escalation)

一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列

媒介 (media)

发送告警通知的手段;告警通知的途径

通知 (notification)

利用已选择的媒体途径把跟事件相关的信息发送给用户

远程命令 (remote command)

一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令

模版 (template)

一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合

模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。

应用 (application)

一组监控项组成的逻辑分组

web 场景 (web scenario)

利用一个或多个HTTP请求来检查网站的可用性

前端 (frontend)

Zabbix提供的web界面

Zabbix API

Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务

Zabbix server

Zabbix软件实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等

Zabbix agent

一个部署在监控对象上的,能够主动监控本地资源和应用的程序

Zabbix proxy

一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序

Zabbix架构

监控范畴

Zabbix监控Java应用

安装、配置Zabbix

机器名称 IP配置 服务角色 备注
cairui 120.25.255.87 zabbix-server 开启监控功能
VM_0_7_centos 118.25.47.241 zabbix-agent 开启

环境查看:

[root@VM_0_7_centos zabbix-3.4.7]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@VM_0_7_centos zabbix-3.4.7]# uname -a
Linux VM_0_7_centos 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux[root@cairui ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@cairui ~]# uname -a
Linux cairui 2.6.32-696.6.3.el6.x86_64 #1 SMP Wed Jul 12 14:17:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@VM_0_7_centos zabbix-3.4.7]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@VM_0_7_centos zabbix-3.4.7]# /usr/sbin/sestatus
SELinux status:                 disabled[root@cairui ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@cairui ~]# /usr/sbin/sestatus
SELinux status:                 disabled

服务端安装配置:

[root@cairui software]# rpm -i http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
[root@cairui software]# yum install -y zabbix-server-mysql zabbix-web-mysql

创建数据库:

mysql> create database zabbix character set gbk collate gbk_chinese_ci;
mysql> show grants for zabbix@localhost;
+------------------------------------------------------------+
| Grants for zabbix@localhost                                |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'localhost'                 |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost' |
+------------------------------------------------------------+

导入数据:

[root@cairui software]# zcat /usr/share/doc/zabbix-server-mysql-3.0.15/create.sql.gz |mysql -uzabbix -p zabbix
Enter password:

配置zabbix-server连接mysql:

[root@cairui software]# vim /etc/zabbix/zabbix_server.conf
[root@cairui software]# grep "DB" /etc/zabbix/zabbix_server.conf | grep -v "#"
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix修改php.ini:vim /application/php/lib/php.ini 主要为下面几个参数post_max_size 16Mmax_execution_time 300max_input_time 300timezone Asia/Shanghai重启php-fpm

[root@cairui html]# /etc/init.d/zabbix-server start
[root@cairui html]# cp -rf /usr/share/zabbix/* /opt/nginx/html/
[root@cairui html]# cd /opt/nginx/html/conf/
[root@cairui conf]# cp zabbix.conf.php.example zabbix.conf.php
[root@cairui conf]# vim zabbix.conf.php
[root@cairui conf]# cat zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;$DB['TYPE']                = 'MYSQL';
$DB['SERVER']         = '127.0.0.1';
$DB['PORT']               = '3306';
$DB['DATABASE']           = 'zabbix';
$DB['USER']               = 'zabbix';
$DB['PASSWORD']           = 'zabbix';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA']         = '';$ZBX_SERVER             = 'localhost';
$ZBX_SERVER_PORT        = '10051';
$ZBX_SERVER_NAME        = '';$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;出错:
FastCGI sent in stderr: "PHP message: PHP Warning:  require_once(/etc/zabbix/web/maintenance.inc.php):   failed to open stream: Permission denied in /app/nginx/html/zabbix/include/classes/core/ZBase.php on line 292
PHP message: PHP Fatal error:  require_once(): Failed opening required '/etc/zabbix/web/mainte
”
解决办法:
chmod -R 755 /etc/zabbix/web

出错解决办法:

[root@cairui bcmath]# yum install *bcmath* --skip-broken
[root@cairui bin]# find / -name bcmath
/home/cairui/software/php-7.1.15/ext/bcmath
[root@cairui bin]# cd /home/cairui/software/php-7.1.15/ext/bcmath
[root@cairui bcmath]# /opt/php/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@cairui bcmath]# ./configure --with-php-config=/opt/php/bin/php-config
make && make install
[root@cairui bcmath]# vim /opt/php/lib/php.ini
加入下面一句:
[root@cairui bcmath]# tail -1 /opt/php/lib/php.ini
extension=bcmath.so
成功!

  

不支持切换语言解决办法:

[root@cairui web]# yum install *gettext* --skip-broken
[root@cairui web]# find / -name gettext
/usr/lib64/perl5/vendor_perl/auto/Locale/gettext
/usr/lib64/ocaml/gettext
/usr/lib64/gettext
/usr/bin/gettext
/usr/share/doc/gettext-devel-0.17/javadoc2/gnu/gettext
/usr/share/glib-2.0/gettext
/usr/share/gettext
/usr/share/php/gettext
/bin/gettext
/home/cairui/software/php-7.1.15/ext/gettext
/opt/boost/boost_1_59_0/tools/build/example/gettext
[root@cairui web]# cd /home/cairui/software/php-7.1.15/ext/gettext
[root@cairui gettext]# /opt/php/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@cairui gettext]# ./configure --with-php-config=/opt/php/bin/php-configmake && make install
[root@cairui gettext]# vim /opt/php/lib/php.ini
[root@cairui gettext]# tail -2 /opt/php/lib/php.ini
extension=bcmath.so
extension=gettext.so

  

客户端配置

[root@VM_0_7_centos ~]# rpm -i http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.iT0tW6: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
[root@VM_0_7_centos ~]# yum install zabbix-agent -y
[root@VM_0_7_centos ~]# cat /etc/zabbix/zabbix_agentd.conf | grep 'Server'|grep -v "#"
Server=120.25.255.87
ServerActive=127.0.0.1
[root@VM_0_7_centos ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

检测连通性

服务端安装zabbix-get检测工具

[root@cairui gettext]# yum install zabbix-get

[root@cairui gettext]# zabbix_get -s 118.25.47.241  -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

配置新主机

自定义监控与监控报警

说明:zabbix自带的模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

自定义的key能被server和agent认可

#正确的key
[root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'system.uname'
Linux VM_0_7_centos 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64
#没有登记的,自定义的key
[root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'login-user'
ZBX_NOTSUPPORTED: Unsupported item key.
#写错的key
[root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'system.unama'
ZBX_NOTSUPPORTED: Unsupported item key.

自定义语法:

UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh

agent注册:

[root@VM_0_7_centos zabbix_agentd.d]# vim userparameter_login.conf
[root@VM_0_7_centos zabbix_agentd.d]# cat userparameter_login.conf
UserParameter=login-user,who|wc -l
UserParameter=login-user2,who|wc -l注意:key要唯一,多个key要以行分
[root@VM_0_7_centos zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ][root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'login-user'
1
[root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'login-user2'
1
[root@cairui ~]# zabbix_get -s 118.25.47.241 -p 10050 -k 'login-user3'
ZBX_NOTSUPPORTED: Unsupported item key.

在server端操作(web网页):

创建应用集

创建监控项

创建触发器

触发器的作用:当监控项获取到的值达到一定数量时就触发报警(根据需求创建)

创建图形

关联主机模板

配置》主机

一个主机可以关联多个模板

查看监控图形

转载于:https://www.cnblogs.com/caicairui/p/8530215.html

Zabbix监控详解相关推荐

  1. zabbix 5系列之snmp监控详解

    更多精彩Zabbix文章.技术交流.免费技术培训加微号NateIT,免费获取zabbix安装.配置.优化技术培训视频 官网:http://ywzs.hanyunintel.com 首先,谢谢原作者: ...

  2. zabbix配置详解---为新手入门而写

           因为本人就是做监控的,平常使用nagios.cacti.zabbix 虽然觉得nagios轻便灵活,但是图形界面实在是一大硬伤.本人觉得未来发展趋势肯定zabbix.虽然nagios不会 ...

  3. Zabbix 3.0 从入门到精通(zabbix使用详解)

    第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源   网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也 ...

  4. @prometheus监控详解

    文章目录 prometheus 简介 一.常用的监控 二.普罗米修斯简述(prometheus) 三.prometheus部署 四.prometheus(web) 1.配置插件环境 2.prometh ...

  5. Prometheus 监控详解

    文章目录 一.常用监控系统介绍 1. Cacti 2. Nagios 3. Zabbix 4. Prometheus 5. Open-falcon 二.运维监控平台设计思路 三.Prometheus ...

  6. 浏览器Performance面板性能监控详解

    研背景介绍 1.1 What Chrome DevTools的Performance面板:可以记录和分析页面在运行时的所有活动. 1.2 Why 使用Performance面板解决应用性能瓶颈 为应用 ...

  7. zabbix 触发器详解

    官网 https://www.zabbix.com/documentation/4.0/zh/manual/acknowledges zabbix监控中我们用的最多的是count这个函数,通过确认多次 ...

  8. zabbix 6.2版本如何实现局域网内的硬件设备状态监控详解-部署安装-界面优化-web调试

    文章目录 zabbix是否可以实现局域网内部的设备状态监控 1 zabbix简介 1.1 什么是zabbix? 1.2 zabbix 都有那些功能? 2 zabbix安装-以安装在centos-str ...

  9. Zabbix配置详解

    为什么80%的码农都做不了架构师?>>>    zabbix 配置了解 Hosts zabbix中的hosts就是指你想监控的设备,如服务器.工作站.交换机等等.如果你想监控某个主机 ...

最新文章

  1. 自定义最大高度的ViewGroup
  2. 详解Java中的注解
  3. C语言希尔排序(解析)
  4. Dubbo 优雅停机
  5. mybatis报错解决办法 :Result Maps collection does not contain value for java.lang.String
  6. linux私有组信息存放在哪,【Linux】Linux私有组,主要组和附加组
  7. boost电路输出电流公式_boost电路解析
  8. 变量作用域、声明提前、作用域链
  9. 11月7日简单标签与Listener培训日记
  10. java web 项目分模块,javaweb项目模块划分
  11. 物联网技术是怎么分类的,物联网主要面临哪些难题?
  12. 遥感数据网站整理中......
  13. 远程桌面计算机没有密码设置,如果对方电脑没有设置密码,如何使用远程桌面连接?...
  14. 香港主机可能遇到的攻击类型
  15. 于的繁体字有几种写法_于字的意思、于的繁体字、于的笔顺笔画、于字部首和繁体字于的意思...
  16. Few-Shot Classification of Aerial Scene Images via Meta-Learning(基于元学习的航拍场景图像小样本分类)
  17. docker swarm的常用操作
  18. 自己私藏的一篇:和现在做网络营销、咨询公司业务有关 和技术无关 和CRM有点关系 可能给网络社区和网络营销从业者有启发
  19. Tolua使用笔记三:Tolua协程用法
  20. tomcat URL简写案例:模拟网站www.baidu.com的访问

热门文章

  1. 28岁自学python来得及吗_我28岁了,还能成为一名程序员吗?迷茫和沮丧中
  2. centos 6.5手动同步ntp时钟_如何安装和配置 Chrony 作为 NTP 客户端? | Linux 中国
  3. 灰流丽能无效融合么_紫砂壶里的柴烧、捂灰、还原烧你能分清楚吗?一次性给你讲清楚...
  4. 把一个dataset的表放在另一个dataset里面_视频自监督一. STCR: 一个基于数据增强的简单有效正则项 (降低静态信息的影响)...
  5. 点击调用ajax,jQuery ajax在点击时调用,仅工作一次
  6. 公司网络推广为你解答蜘蛛为什么有抓取网页却没收录?
  7. 网络营销外包立足用户角度完成企业网站网络营销外包优化
  8. vbs画动态爱心代码_前端必看之如何用CSS3画一个八卦和爱心
  9. 开发日记-20190723 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 13
  10. 鸿洋android屏幕适配四部曲-传送门