Zabbix架构:zabbix基本术语、zabbix安装、配置和应用 Zabbix架构中的组件:
zabbix-server:C语言    zabbix-server和zabbix-agent通过zabbix协议来工作
OS:zabbix-agent:C语言   
zabbix-web:GUI接口,是zabbix的配置接口,监控哪些主机、指标以及如何报警等都需要通过zabbix-web GUI配置,使用http协议或者https协议
zabbix-proxy:分布式监控环境中的专用组件
 
zabbix-database:MySQL,PGSQL(postgreSQL),Oracle,DB2,SQLite(不是zabbix的原生组件)
Zabbix架构描述

zabbix-server对zabbix-agent端收集数据有两种方式:
1、zabbix-server自身直接联系agent端来获取数据,周期性获取数据。
2、使用zabbix-get来获取数据,通过手动写脚本或者在命令行中使用程序收集数据,一般用来测试。
zabbix-agent端 zabbix-agentd 是一个守护进程,包括监听的地址和端口,监听在一个套接字上等待监控端收集数据。
如果zabbix-server定义了工作在被动模式下,agent端就会通过zabbix-sender模式主动发送数据给server端。
对于database的数据设定,可以通过zabbix-web实现提供gui接口,由于web是使用php开发的,所以需要一个LAMP平台,在LAMP平台上部署上zabbix-web,控制人员通过浏览器连入GUI接口,完成对zabbix所要监听的指标进行设定。
无论是使用zabbix-server还是zabbix-agent或者zabbix-proxy都需要为它们提供储存服务。
zabbix-server、Database和zabbix web gui三个可以定义在同一个主机上也可以分别定义在不同的主机上,但是必须要保证sever和web gui必须要连接上Database。
 
核心组件3部分: zabbix-server
database
zabbix web gui  
zabbix的三种监控机制:
1、server端周期性的发送收集数据的请求给agent端,agent验证没有问题后就把收集好的数据发送到server端
2、pull,对客户端而言是被动监控,对agent端是主动的。server端不再主动向agent端poll(拉取)数据,而是agent端定期向server端send数据,这种机制就是ServerActive机制。 
3、trapper监控机制:server端可能之前并不知道agent端,突然agent端主动向server端发送数据,这就需要server端捕获这些数据。
 
Zabbix常用术语
1、主机(host):要监控的网络设备,可有IP或DNS名称指定;
2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相连接;主机组通常在给用户或用户组指派监控权限时使用;
3、监控项(item):一个特定监控指标的相关数据,这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有"key"进行标识
4、触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态将从"OK"转变为"problem",
                  当数据量再次回归到合理范围时,其状态将从"problem"转换回"OK";
5、事件(event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;
6、动作(action):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);
7、报警升级(escalation):发送报警或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
8、媒介(media):发送通知的手段或通道,如Email、jabber或SMS等;
9、通知(notification):通过选定的媒介向用户发送的有关事件的信息;
10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule(低级别发现规则,相当消耗资源,一般不用);模板可以直接连接至单个主机;
12、应用(application):一组item的集合;
13、web场景(web scennario):用于检测web站点可用性一个或多个HTTP请求;
14、前端(frontend):zabbix的web接口
Zabbix的逻辑架构
 
zabbix启动的进程
部署zabbix硬件要求 
Zabbix产生的数据主要由四部分组成:(database存储空间如何计算)
配置数据:
历史数据:每一次采集大概有50Bytes
历史趋势数据:每一个采集大概有128Bytes
时间数据:每一个采集大概有130Bytes
Zabbix frontend 前端对于安装软件的要求
Zabbix server 服务器端对于安装软件的要求
安装zabbix服务器端的步骤
1、安装zabbix-server 2、安装zabbix web interface
zabbix部署要求:
如果不使用分布式监控,则zabbix-proxy可以不部署。主要就是zabbix-server和zabbix-agent,其他还有zabbix-web和zabbix-database;
那么要准备好database数据库和LAMP平台,那么LAMP中的M即数据库要指向database。
 
配置环境
监控端: node1:192.168.128.131  安装zabbix-server zabbix-database、zabbix web
被监控端:node2:192.168.128.132  作为第一个被监控端,是agentd的部署节点
被监控端:winXP:作为第二个被监控端,也部署agent端

安装演示

在node1节点即192.168.128.131上安装,这台主机既是zabbix-server、zabbix-agent(要监控自己)、zabbix web、Database,所以在安装程序是就要安装程序包:zabbix-server、zabbix-web和zabbix-agent,

同时这些程序还要依赖其他程序,所以要解决好程序包依赖。之前database已经安装了,这里不再安装。

server端需要的程序有:(注意不同版本需要安装的软件包有差异) 可对比:http://repo.zabbix.com/zabbix/    http://blog.51cto.com/12262646/2108445

zabbix-server-mysql

zabbix-get

web端需要的程序有:

zabbix-web

zabbix-web-mysql

agent端需要的程序有:

zabbix-agent

zabbix-sender

准备数据库 

# yum install mariadb-server   //首先安装数据库服务即database

# vim /etc/my.cnf

innodb_file_per_table = 1 
skip_name_resolve = 1

# systemctl restart mariadb

[root@node1 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix character set utf8; //创建zabbix数据库
Query OK, row affected (0.01 sec) MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'192.168.128.%' identified by ''; //创建用户zbxuser,并对此用户授权访问数据库zabbix,以此作为zabbix server/web
Query OK, rows affected (0.00 sec) //访问这个数据库服务器的一个用户。 MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'node1' identified by ''; //由于mariadb会对本机主机名做解析,所以允许本机主机访问数据库。
Query OK, rows affected (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.00 sec) MariaDB [(none)]> exit
Bye
[root@node1 ~]# mysql -uzbxuser -h192.168.128. -p    //此时新创建的用户是否可以连接数据库
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> exit
Bye

# yum install httpd

安装zabbix即相关程序包

[root@node1 yum.repos.d]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

或者:

[root@node1 yum.repos.d]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

# yum install zabbix-server zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender

# cd /etc/zabbix/   //生成如下文件                        //注意server端一般也需要安装server-agent和sender,因为server端也需要监控自己

web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf

# systemctl start httpd   //在配置zabbix web之前,启动web服务器

# ls /etc/httpd/conf.d/   //注意安装zabbix web后,此目录下会有zabbix.conf文件,但是要重启/重载httpd服务器
   autoindex.conf php.conf README userdir.conf welcome.conf zabbix.conf

导入数据到msqyl中

# ls /usr/share/doc/zabbix-server-mysql-4.0.3/
    AUTHORS ChangeLog COPYING create.sql.gz NEWS README

# zcat create.sql.gz | mysql -uzbxuser -h192.168.128.131 -p123456 zabbix   //将数据导入zabbix

# mysql -uzbxuser -h192.168.128.131 -p   //查看收据是否导入

[root@node1 ~]# mysql -uzbxuser -h192.168.128.131 -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1008
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zabbix |
+--------------------+

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
.......

| timeperiods |
  | trends |
  | trends_uint |
  | trigger_depends |
  | trigger_discovery |
  | trigger_tag |
  | triggers |
  | users |
  | users_groups |
  | usrgrp |
  | valuemaps |
  +----------------------------+
  127 rows in set (0.01 sec)

修改zabbix的主配置文件制定mysql服务器的相关操作

# cd /etc/zabbix/

# vim zabbix_server.conf

# ListenPort=10051   //zabbix默认监听的端口是10051

# SourceIP=   //向外发起连接时,向外界展示的IP,如果有多个需要指定

LogFile=/var/log/zabbix/zabbix_server.log    //日志文件

LogFileSize=0   //日志滚动,0表示禁止

# DebugLevel=3   //日志级别,默认是3

# DBHost=localhost   //数据库服务器节点,默认是localhost,如果database和zabbix在同一个节点即是本机,尽量用localhost,这样通信会更快
DBHost=192.168.128.131  //这里为了演示指定节点IP

DBName=zabbix   //这里确保是之前创建的database的name

DBUser=zbxuser

DBPassword=123456

# find / -name mysql.sock
   /var/lib/mysql/mysql.sock

# DBSocket=/tmp/mysql.sock    //如果基于本机即localhost通信,则此项一定要修改正确,找到mysql.sock的位置
DBSocket=/var/lib/mysql.sock  //由于本次实验前面已经修改基于IP通信,所以此次可以不做修改

后面就是修改zabbix中子进程启动的个数,仍然在zabbix的主配置文件:zabbix_server.conf进行修改,这里不再修改

# rpm -ql zabbix-server-mysql   //到版本3以后已经没有zabix和zabbix-server单独安装包了。

/etc/logrotate.d/zabbix-server

/etc/zabbix/zabbix_server.conf    //主配置文件
/usr/lib/systemd/system/zabbix-server.service   //主程序
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.2.11
/usr/share/doc/zabbix-server-mysql-3.2.11/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.2.11/COPYING
/usr/share/doc/zabbix-server-mysql-3.2.11/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.2.11/NEWS
/usr/share/doc/zabbix-server-mysql-3.2.11/README
/usr/share/doc/zabbix-server-mysql-3.2.11/create.sql.gz  
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

# systemctl start zabbix-server   //启动服务

# ss -tunlp   //可以看出zabbix启动了很多的子进程

users:(("zabbix_server",pid=7956,fd=6),("zabbix_server",pid=7955,fd=6),("zabbix_server",pid=7954,fd=6),("zabbix_server",pid=7953,fd=6),("zabbix_server",pid=7952,fd=6),("zabbix_server",pid=7951,fd=6),("zabbix_server",pid=7950,fd=6),("zabbix_server",pid=7949,fd=6),("zabbix_server",pid=7948,fd=6),("zabbix_server",pid=7940,fd=6),("zabbix_server",pid=7939,fd=6),("zabbix_server",pid=7938,fd=6),("zabbix_server",pid=7937,fd=6),("zabbix_server",pid=7936,fd=6),("zabbix_server",pid=7935,fd=6),("zabbix_server",pid=7934,fd=6),("zabbix_server",pid=7933,fd=6),("zabbix_server",pid=7932,fd=6),("zabbix_server",pid=7931,fd=6),("zabbix_server",pid=7930,fd=6),("zabbix_server",pid=7929,fd=6),("zabbix_server",pid=7928,fd=6),("zabbix_server",pid=7927,fd=6),("zabbix_server",pid=7926,fd=6),("zabbix_server",pid=7924,fd=6),("zabbix_server",pid=7923,fd=6),("zabbix_server",pid=7922,fd=6),("zabbix_server",pid=7917,fd=6))

users:(("zabbix_server",pid=7956,fd=7),("zabbix_server",pid=7955,fd=7),("zabbix_server",pid=7954,fd=7),("zabbix_server",pid=7953,fd=7),("zabbix_server",pid=7952,fd=7),("zabbix_server",pid=7951,fd=7),("zabbix_server",pid=7950,fd=7),("zabbix_server",pid=7949,fd=7),("zabbix_server",pid=7948,fd=7),("zabbix_server",pid=7940,fd=7),("zabbix_server",pid=7939,fd=7),("zabbix_server",pid=7938,fd=7),("zabbix_server",pid=7937,fd=7),("zabbix_server",pid=7936,fd=7),("zabbix_server",pid=7935,fd=7),("zabbix_server",pid=7934,fd=7),("zabbix_server",pid=7933,fd=7),("zabbix_server",pid=7932,fd=7),("zabbix_server",pid=7931,fd=7),("zabbix_server",pid=7930,fd=7),("zabbix_server",pid=7929,fd=7),("zabbix_server",pid=7928,fd=7),("zabbix_server",pid=7927,fd=7),("zabbix_server",pid=7926,fd=7),("zabbix_server",pid=7924,fd=7),("zabbix_server",pid=7923,fd=7),("zabbix_server",pid=7922,fd=7),("zabbix_server",pid=7917,fd=7))

修改php的时区

# vim /etc/php.ini

[Date]

; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =   //这里默认是不启动的
date.timezone = Asia/Shanghai  //修改为当前主机所在时区

# systemctl restart httpd

在浏览器中输入:http://192.168.128.131/zabbix/setup.php

由于当前server端没有配置agent,所以server端无法监控主机,下面就为server端配置agent。

# vim /etc/zabbix/zabbix_agentd.conf

Server=127.0.0.1,192.168.128.131   //指明服务器是哪个主机,是基于IP的授权机制,即允许这个IP的zabbix-server来本地获取数据,可以有多个。

ServerActive=127.0.0.1,192.168.128.131 //作为agent端,可以通知server端来获取数据,这里就定义了agent端通知哪个服务器来获取数据,可多个

//注意127.0.0.1表示本机,如果server端又作为agent时,127.0.0.1一定不能去掉,如果获取server端就无法获取自身的监控数据了。

Hostname=node1  //Hostname是指在对应的节点实现自动发现时(比如agent端自动联系server端时,agent端会告诉server端自己的主机名是什么),因此在zabbix支持由各agent端主动推送数据时,这个Hostname一定要全局唯一,不要与其他agent端的主机名冲突,可以使用DNS解析或主机名。

# systemctl start zabbix-agent

# ss -tunlp

tcp   LISTEN     0      128                          *:10050                   *:*                   users:(("zabbix_agentd",pid=26330,fd=4),("zabbix_agentd",pid=26329,fd=4),("zabbix_agentd",pid=26328,fd=4),("zabbix_agentd",pid=26327,fd=4),("zabbix_agentd",pid=26326,fd=4),("zabbix_agentd",pid=26325,fd=4),("zabbix_agentd",pid=26324,fd=4))

此时只需要在Status点击Disabled改为Enabled就可以监控zabbix-server了

改为Enabled后就可以对agent做监控了,而后zabbix-server开始探测被监控给主机是否在线,如果在线就检测主机上的各个Items。

在一个主机上配置的条目有很多,其中Items是核心,从上图可以看出Items有64个,这些Items是从zabbix内部模板中来的。

定义一个zabbix监控的其他主机,需要在被监控主机上部署上agent,然后在仪表盘的Hosts中手动Create host,把node2(192.168.128.132)添加进来,示例演示如下:

[root@node2 yum.repos.d]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

# yum install zabbix-agent zabbix-sender  //只需安装与agent相关的程序包

# vim /etc/zabbix/zabbix_agentd.conf    //修改agent端的文件配置

Server=192.168.128.131   //因为node2只是agent端,不是server端,所以不需要127.0.0.1了

ServerActive=192.168.128.131

Hostname=node2

# systemctl start zabbix-agent

# ss -tunlp

tcp   LISTEN     0      128                   *:10050          *:*                   users:(("zabbix_agentd",pid=4271,fd=4),("zabbix_agentd",pid=4270,fd=4),("zabbix_agentd",pid=4269,fd=4),("zabbix_agentd",pid=4268,fd=4),("zabbix_agentd",pid=4267,fd=4),("zabbix_agentd",pid=4266,fd=4))

2、zabbix工作原理及安装配置的更多相关文章

  1. zookeeper工作原理、安装配置、工具命令简介

    1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...

  2. [转载] zookeeper工作原理、安装配置、工具命令简介

    转载自http://www.cnblogs.com/kunpengit/p/4045334.html 1 Zookeeper简介Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到 ...

  3. Nginx 反向代理工作原理简介与配置详解

    Nginx反向代理工作原理简介与配置详解   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...

  4. LVS实现负载均衡原理及安装配置

    LVS实现负载均衡原理及安装配置 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F ...

  5. LVS实现负载均衡原理及安装配置 负载均衡

    LVS实现负载均衡原理及安装配置 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F ...

  6. Azure WAF防火墙工作原理分析和配置向导

    Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...

  7. (转)使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 原文:https://www.cnblogs.com/liwei0526vip/p/6370103.html

  8. 使用LVS实现负载均衡原理及安装配置详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...

  9. 使用 LVS 实现负载均衡原理及安装配置详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...

随机推荐

  1. 微信小程序制作家庭记账本之一

    制作的第一天,思索着制作手机端APP还是微信小程序,首先是想到制作APP但是各种收费让我不得不换一条路,所以开始制作小程序,下载了微信小程序开发工具,试着学习制作方法,但是似乎没有成效,但我坚信要一步 ...

  2. vue生命周期图示中英文版Vue实例生命周期钩子

    vue生命周期图示中英文版Vue实例生命周期钩子知乎上近日有人发起了一个 “react 是不是比 vue 牛皮,为什么?” 的问题,Vue.js 作者尤雨溪12月4日正面回应了该问题.以下是尤雨溪回复 ...

  3. Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析

    Google Analytics for Firebase Google Analytics for Firebase 是一款免费的应用评估解决方案,可提供关于应用使用和用户互动情况的数据分析.Fir ...

  4. Spring boot学习1 构建微服务:Spring boot 入门篇

    Spring boot学习1 构建微服务:Spring boot 入门篇 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  5. Step1:SQL Server 复制介绍

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 复制逻辑结构图(Construction) 系列文章索引(Catalog) 总结&am ...

  6. 安装指定版本capistrano

    1.ruby安装 #yum install -y openssl-devel readline-devel zlib-devel git #git clone https://github.com/s ...

  7. 翻唱 - shape of you - 个个版本

    翻唱: http://7j1xky.com1.z0.glb.clouddn.com/1525514286196.mp4 乐队版-我的翻唱-混合 http://7j1xky.com1.z0.glb.cl ...

  8. P2709 小B的询问(莫队)

    P2709 小B的询问 莫队模板 资磁离线询问 维护两个跳来跳去的指针 先分块,蓝后询问按块排序. 蓝后每次指针左右横跳更新答案 #include<iostream> #include&l ...

  9. Kali linux 2018安装后全屏乱码解决

    安装的时候选择了中文, 后来安装成功后成了全部乱码的. 原因是,系统没有中文字体显示安装包, 下载一个 sudo apt-get install ttf-wqy-zenhei 重启解决!

  10. py4CV例子2汽车检测和svm算法

    1.什么是汽车检测数据集: ) pos, neg = , ) matcher = cv2.FlannBasedMatcher(flann_params, {}) bow_kmeans_trainer ...