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 16M
max_execution_time 300
max_input_time 300
timezone 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-config make && 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网页):

创建应用集

创建监控项

创建触发器

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

创建图形

关联主机模板

配置》主机

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

查看监控图形

Zabbix监控详解的更多相关文章

  1. 【转】Zabbix 3.0 从入门到精通(zabbix使用详解)

    [转]Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源   网站/ ...

  2. RedHat 7.1 下安装 Zabbix监控程序详解(适合linux初级用户)

    RedHat 7.1 安装 Zabbix 监控程序详解(适合对linux初级用户)2017-05-02 安装步骤: 1.zabbix需要安装LAMP架构 2.安装zabbix服务 3.初始化zabbi ...

  3. zabbix Server 4.0 监控JMX监控详解

    zabbix Server 4.0 监控JMX监控详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   大家都知道,zabbix server效率高是使用C语言编写的,有很多应用 ...

  4. zabbix配置文件详解

    Zabbix之配置文件详解   zabbix配置文件种类: zabbix_server配置文件zabbix_server.conf zabbix_proxy配置文件zabbix_proxy.conf ...

  5. zabbix配置文件详解--服务(server)端、客户(agent)端、代理(proxy)端

    在zabbix服务(server)端.客户(agent)端.代理(proxy)端分别对应着一个配置文件,即:zabbix_server.conf,zabbix_agentd.conf,zabbix_p ...

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

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

  7. Unix操作系统监控详解(一)

    一.描述 监控在检查系统问题运行状况以及优化系统性能工作上是一个不可缺少的部分.通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况.根据运行结果分析可以帮助我们快速定位 ...

  8. (5)zabbix配置详解

    zabbix配置介绍 zabbix配置内容比较多,我们要分为9大块来讲解.分别如下:1.主机与组不用多数,顾名思义,他是添加主机配置与组配置. 2.监控项需要监控的项目,例如服务器负载可以使一个监控项 ...

  9. Zabbix配置文件详解之服务端zabbix_server

    zabbix作为运维邻域不可缺少的一员,它的各种文档可是数不胜数啊,但是关于配置文件的解释与说明就有点少.这里列出zabbix配置文件篇之zabbix_server. Zabbix Server端配置 ...

随机推荐

  1. apktool.bat

    @echo off if "%PATH_BASE%" == "" set PATH_BASE=%PATH% set PATH=%CD%;%PATH_BASE%; ...

  2. 113. Path Sum II (Tree; DFS)

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  3. system存储说明和制作os模板时的注意事项

    1.通过ISO制作模板时,安装机器后,使用非持久化磁盘安装后,无法从硬盘引导:使用持久化磁盘可以.2.system 存储,当opennebula 初次部署时,会生成0(system),1(image) ...

  4. 修改字符集AL32UTF8修改为ZHS16GBK详解

    登陆sqlplus,在命令行输入 sqlplus sys/sys as sysdba;//登陆sqlplus SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOU ...

  5. udacity term_sim.x86_64 ubuntu16.04 Vmware

    打印信息 ./term2_sim.x86_64 Set current directory to /home/mwolfram/udacity/sdcnd/term2/term2_sim_linux ...

  6. [C++] const inside class VS const outside class

    const inside class VS const outside class 类内:类内的const和c语言一样,可以通过指针间接修改const变量的值,读内存,一开始必须初始化 类外:虽然可以 ...

  7. libpcap编程实例

    #include <stdio.h> #include <stdlib.h> #include <pcap.h> #include <errno.h> ...

  8. linux的操作

    对tomcat的操作 打开终端 cd /java/tomcat#执行bin/startup.sh #启动tomcatbin/shutdown.sh #停止tomcat tail -f logs/cat ...

  9. maven添加阿里仓库

    1.修改settings.xml 在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror <mirror> <id>nexus-aliy ...

  10. Hadoop中Writable类

    1.Writable简单介绍 在前面的博客中,经常出现IntWritable,ByteWritable.....光从字面上,就可以看出,给人的感觉是基本数据类型 和 序列化!在Hadoop中自带的or ...