zabbix入门知识

zabbix中文手册

https://www.zabbix.com/documentation/3.4/manual/

1.zabbix介绍

	Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。
Zabbix使用灵活的通知机制,提供了出色的报告和数据可视化功能
Zabbix支持主动轮询和被动捕获。
Zabbix基于Web的前端页面进行访问。
Zabbix是免费的。
特点:
数据收集
灵活的阀值定义
高度可配置化的告警
实时图表绘制
Web监控功能
丰富的可视化选项
历史数据存储
配置简单
使用模板
网络发现
简洁的Web界面
Zabbix API
权限管理系统
功能强大并易于扩展的监控代理
二进制代码
为复杂环境准备

2.zabbix系统架构图





3.zabbix的组件

	zabbix agent:部署在被监控主机上,负责收集本地数据并发往server端或porxy端。
zabbix server:负责接收agent发送的报告信息的核心组件,所有配置信息、统计数据及操作数据都由其组织进行。
zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。
zabbix web:zabbix的web界面,通过web界面管理zabbix的配置以及查看zabbix相关的监控信息,可以单独部署在独立的服务器上,是server的一部分,通常是在一台物理机上,若使用使用SQLite则必须在一台上。
zabbix proxy:用于分布式监控环境中,zabbix proxy某程度上相当于server端,完成局部区域内的信息收集,最终统一发往server端。可帮server分担负载压力。
zabbix数据流:
为了创建一个监控项用于采集数据,必须先创建一个主机。转换到Zabbix功能的其他部分,你必须先有一个监控项来创建触发器,你必须有一个触发器来创建动作。 因此,如果你想收到X服务器CPU负载过高的告警,你必须先为X服务器创建一个主机实体并关联一个用于对CPU进行监控的监控项,然后如果CPU负载太高便会激活触发器,接着会执行一个动作,给你发送告警邮件。虽然看起来有很多步骤,但是使用模板的话可以会很简单。同时,这个设计可以创建一个非常灵活的配置。

4.zabbix支持的通讯协议

	理论上,zabbix能够监控几乎所有与业务相关的硬件资源。但是,能监控的前提是能相互间稳定通信。而zabbix支持的协议如下。
agent:通过专用的代理程序进行监控,与常见的master/agent模型类型。若支持的话,优先选用agent。
ssh、telnet:通过远程控制协议进行通信。
SNMP:simple network management protocol,通过snmp协议进行监控,大部分网络设备都支持这种协议,与常见的master/agent模型类型,一般是在这些设备中内置有snmp的agent。
IPMI:通过IPMI接口进行监控,来监控对象的物理特征,如电压,温度等。
JMX:java management extensions,通过jmx监控jvm虚拟机。

5.zabbix的工作模式

	被动(passive)模式和主动(active)模式
工作模式是对于agent端来说的。
当agent端将采集完的数据主动发往server端的模式为主动模式。
当agent端等待server端来垃圾数据的模式为被动过模式。
主动模式与被动模式在agent端并不冲突,可以同时存在。
agent端使用zabbix_sender工具测试能否向server端发数据,server端使用zabbix_get工具测试能否从agent端拉取数据。

6.zabbix的监控过程

	zabbix agent部署在被监控的主机上,由agent采集数据并报告给负责监控的中心主机,中心主机就是master/agent中的master;
负责监控的中心主机为zabbix server,server将从agent端接收信息并存储到zabbix database中;
管理员是从zabbix web支持的web GUI上查看各种监控信息的,而zabbix web是有php编写,所以依赖与LAMP环境;
zabbix server和zabbix web都需要与zabbix database相互通信来获取数据。
当监控规模非常庞大时,就需要用到分布式监控,使用zabbix proxy作为代理来接收agent的提交的数据信息,然后将数据统一发送给zabbix server处理,在局部proxy就相当于server。

7.zabbix常用术语

	主机 (host):要监控的网络设备,用IP或DNS名表示
主机组 (host group):主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
监控项 (item):要接收的主机的特定数据,一个度量数据,某个监控指标。
键(key):想要获取监控项对应的数据,就需要通过某个key去获取,可以把key当然调用命令的对应的命令别名。
触发器 (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的负载的程序

8.zabbix安装

1)配置仓库

	wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm(这是个配置仓库的安装包,会自动仓库)
配置好仓库后,使用yum install来进行安装

2)zabbix server的安装

	yum install mariadb mariadb-libs mariadb-server zabbix-get zabbix-server-mysql.x86_64 ##(根据安装的数据库来选择包)
初始化zabbix数据库
安装mysql数据
创建zabbix数据库和用户
MariaDB [(none)]> create database zabbix charset 'utf8';
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'xm1234'; ##这里设置的本地
MariaDB [(none)]> flush privileges;
初始化zabbix数据库
通过rpm -ql zabbix-server-mysql找到create.sql.gz。
解压得到create.sql脚本
gunzip crete.sql.gz
进行初始化
mysql -uroot -p -Dzabbix < create.sql
查看初始情况
msyql -uroot -p
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
根据需要配置/etc/zabbix-server.conf
DBPassword=
启动服务
systemctl start zabbix-server

3)zabbix proxy的安装

	yum install zabbix-get zabbix-proxy-mysql.x86_64(根据安装的数据库来选择包)
初始化配置和server差不多

4)zabbix web的安装

	yum install zabbix-web.noarch  zabbix-web-mysql ##依赖了很多包,包括httpd和php
初始化
创建lamp环境
安装httpd和php(应该是在安装zabbix-web时,由依赖关系的原因以下都已安装,仅需要配置启动)
yum install httpd php(php-fpm)php-mysql maradb mariadb-libs mariadb-server
启动httpd
systemctl enable httpd
systemctl start httpd
启动maradb
配置启动php
两种方法,选其一。
1)modules:
yum install php php-mysql
vim /etc/httpd/conf/httpd.conf
在文件尾部加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
添加修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
systemctl restart httpd
2)fastcgi:
yum install php-fpm php-mysql
vim /etc/httpd/conf/httpd.conf
在文件尾部加四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
systemctl restart httpd
systemctl start php-fpm 配置/etc/httpd/conf.d/zabbix.conf
vim /etc/httpd/conf.d/zabbix.conf
在文件头部添加
<VirtualHost 192.168.213.175:80>
servername zabbix-server
documentroot /usr/share/zabbix
在文件尾部添加
</VirtualHost>
修改
php_value date.timezone Asia/Shanghai
重启httpd服务
systemctl restart httpd

5)zabbix agent的安装

	agent 的运行
Zabbix agent运行在被监控主机上。
Zabbix agent在linux上以守护进程运行。
Zabbix agent是是设计在非root账户下的。它会以其他任何非root用户启动的进程一样的方式运行。所以,您可以使用任意非root用户运行agent,且不会产生任何问题。
如果您在’root’账户下运行,它将切换到硬编码的“zabbix”用户,该用户必须存在于您的系统上。如果您只想以’root’方式运行proxy,您必须在proxy配额文件里修改‘AllowRoot‘参数。
Zabbix agent成功退出时退出码为0,异常则退出码为1。
安装
yum install zabbix-agent zabbix-sender
配置
vim /etc/zabbix/zabbix_agentd.conf|
##### Passive checks related ##被动监控相关配置
Server=IP1, IP2, ...##允许那台服务器拉取当前服务器的数据,用于实现基于ip的访问控制,若多个ip可用逗号隔开。
ListenPort=10050 ##server端访问的监听端口,默认为10050
ListenIP=0.0.0.0 ##本地监听的地址,默认为0.0.0.0,表示监听本地所有地址
StartAgents=3 ##用于指定预生成的agent进程数量
##### Active checks related ##主动监控相关配置,agent端主动向server周期性发送数据;
ServerActive=IP1[:port], IP2[:port], ... ##信息推送到那台server服务器上,若多个ip可用逗号隔开。
Hostname=Unique_HOSTNAME ##指定当前主机名,用于server端的识别。
必须与服务器配置的监控主机的主机名称保持一致;
启动
systemctl start zabbix-agent

9.zabbix web界面初始化

http://zabbix_web_ip/zabbix
1)进入安装界面,点击next step
2)进入check of pre-requisites,确认所有状态都为ok,点击next step
3)进入configure DB connection,配置数据库类型,ip,端口,数据库名,用户密码,点击next step 端口0表示使用默认端口3306
4)进入zabbix server details,配置ip地址,端口,servername,添加name,这个name是你在/etc/httpd/conf.d/zabbix.conf中配置的servername,点击next step。
5)进入pre-installation summary,检查,点next step
6)进程如install,点击finish 7)进入登录界面,默认username为admin,password为zabbix。
8)登录后,可以修改英文为中文。
若出现部分字体不能显示的情况
1》确保/usr/share/zabbix/include/locales.inc.php 中的
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true]
2》上传你喜欢的字体文件到/usr/share/zabbix/fonts,文件是以.ttf结尾的,不是也修改成。
编辑/usr/share/zabbix/include/defines.inc.php中的
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
define('ZBX_FONT_NAME', 'simkai');
确保simkai是你上传的字体文件的文件名

zabbix入门知识的更多相关文章

  1. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  2. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  3. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  4. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  5. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  6. React的入门知识与概念【1】

    回顾在以往的项目开发中,从最初的使用的原生html+js+css+jquery开发,到后来随着项目功能的增加,也渐渐学习了Vue.js框架的开发,以及Vue.js的全家桶Axios,Vue-route ...

  7. 我的Python笔记补充:入门知识拾遗

    声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else ...

  8. 浅谈TCP IP协议栈(一)入门知识【转】

    说来惭愧,打算写关于网络方面的知识很久了,结果到今天才正式动笔,好了,废话不多说,写一些自己能看懂的入门知识,对自己来说是一种知识的总结,也希望能帮到一些想了解网络知识的童鞋. 万事开头难,然后中间难 ...

  9. 2. Mysql数据库的入门知识

    2. Mysql数据库的入门知识 (1)打开Windows系统提供的服务查看相应的服务. (2)在Windows任务管理器的进程中查看 (3)使用命令行管理windows的Mysql数据库服务. Ne ...

随机推荐

  1. JavaScript Array 对象方法 以及 如何区分javascript中的toString()、toLocaleString()、valueOf()方法

    1.concat() 2.join() 3.pop() 4.push() 5.reverse() 6.shift() 7.unshift() 8.slice() 9.sort() 10.splice( ...

  2. rsyslogd以及日志轮替logrotate的梳理

    rsyslog 1)日志类型 auth :(authpriv) 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/密码的咚咚: cron: 就是例行性工作排程 cron/at 等产 ...

  3. [js高手之路] vue系列教程 - vue的事件绑定与方法(2)

    一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...

  4. Presto集群部署

    前言: 随着大数据的普及,大部分企业的大数据查询与统计渐渐出现瓶颈.虽说存储方面有分布式的HDFS,HBSE,MongoDB等可以应对,但是面对千万级别(1x10^7)界别的数据量查询时,以上组件也不 ...

  5. 阿里云EMR集群初始化后的开发准备工作

              前言:EMR的集群使用越来越普遍,但是每一次的集群释放到集群的重新创建,期间总有一些反复的工作需要查询与配置.为方便后续工作查阅,现在对集群初始化后的工作进行大概的梳理如下.   ...

  6. 消费五分钟,小白也能了解的经典技术:关于IP负载均衡(LVS之NAT)

    这里准备以两篇文章来大概讲述一下LVS负载均衡 NAT TUN/DR和共享存储 前言: 为什么搭建LVS: 若一台服务器只能支持10人在线.那么有100人访问,则需要多少台服务器. 这个不言而喻:10 ...

  7. AFN中请求序列化的设置

    最近遇到一个需求:要求从客户端传到服务器的参数是json字符串,于是我本能的用pod装了afn然后进行了request和response Serialization的相关设置 AFHTTPSessio ...

  8. Spring框架入门之Spring简介

    一.Spring简介(由Rod Johnson创建的一个开源框架)        Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿 ...

  9. 【.Net边角料系列】1-单例模式(我真不是你想的那样)

    什么事边角料? 边角料就是你编程的时候,很少能够用上,或者说你压根就不知道得东西,我就称这些东西为边角料.这个叫.net边角料可能有点大,其实这个系列是纯粹的C#边角料系列. 为什么写.net边角料呢 ...

  10. Django之路由分发系统

    web的基本工作流程 首先,我们先来思考一下我们平常在上网浏览网页时候的场景,大致就是打开一个web浏览器,输入某一个网站的地址,然后转到该网址,在浏览器中得到该网址的页面.从这个场景中我们可以抽象出 ...