监控工具Zabbix之原理及部署

zabbix简介

zabbix是完全开源的工具,整合了cacti和nagios等特性

SNMP

众多网络工具都支持此协议,比如常见路由交换,常见OS

其既可以做管理端也可以做被管理端

snmp协议大致有3个版本分别是v1 v2 v3

比较通用的版本是v2c的版本

无论是v1 和 v2 的安全性是比较差的,因为传输是明文的,v2c的认证机制也很薄弱

但是好在他们支持网络管理的功能,而对于非网络设备(操作系统),可以完全抛开snmp这种不安全的架构来实现监控的。所以很多工具都是所谓的控制端和agent架构,他们有专属的agent

snmp所谓的监控端也是为我们提供了接口再通过程序去采集,数据采集是否保存是否对趋势做分析,snmp都是不关心的,但是snmp只是一种协议

zabbix组件

zabbix server 负责接收数据、统计数据及操作数据均有其组织进行

database storage 专用于存储所有配置信息,以及由zabbix收集数据

web interface  zabbix的GUI接口,通常与server运行在同一台主机上,通常被称为frontend

proxy 可选组件

zabbix 自从2.0以后可以直接监控java应用

模板 : 配置的集合

item : 监控项,比如监控cpu每秒的阈值,一个特定指标的监控数据,被称为监控项,对于zabbix来讲 item是核心,因为监控对象可能有N个监控项目,那我们定义主机之后接下来就要定义主机之后的指标,定义监控项之后就回根据监控项去采集和存储数据了

一旦发现采集的数据超出了阈值之后,那么如下:

触发器   : 主要定义阈值,用于判定某一次数据采集是否符合条件,比如cpu利用率大于或等于80%,因此用于评估监控对象的某一特定的item所接受的数据是否在合理范围内的,接收数据量大于阈值时,触发器的状态将从ok转为problem,如果一直小于阈值那么一直显示OK的

事件: 触发器一旦从ok转为problem,则属于事件发生,一旦某个事件被触发,我们要执行某个动作

动作: 指对于特定事件事先定义的处理方法,通过条件和操作

报警升级:  发送报警或执行远程命令的自定义方案,如每隔5分钟发送一次报警,共发送5次

媒介: 发送通知的手段或通道,比如邮件 jabber或者sms

通知:发送邮件或其他信息的内容

远程命令: 预定义的命令,可在被监控的主机处于某种特定条件下时自动执行,说白了就是通知层次上的另外操作

模板:

用于快速定义被监控的主机的预设条目集合,通常包含了item、trigger、graph、screen

application以及low-level discovery rule,模板可以直接链接至单个主机

安装zabiix

安装zabiix的方式:

·源码安装

同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6--with-net-snmp --with-libcurl --with-ssh2

如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --enable-server --with-mysql --with-net-snmp --with-libcurl

如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql--with-ssh2

如果仅安装agent,可使用类似如下配置命令:
./configure --enable-agent

而后编译安装zabbix即可:
# make
# make install

·rpm包安装

zabbix为各种平台都提供了编译好的rpm包

同时我们也可以直接指定epel源来安装

[[email protected] tools]# groupadd mockbuild
[[email protected] tools]# useradd mockbuild -g mockbuild

http://repo.zabbix.com/zabbix/2.0/rhel/6/SRPMS/zabbix-2.0.8-3.el6.src.rpm

[[email protected] tools]# rpm -ivh zabbix-2.0.8-3.el6.src.rpm

规划

将mysql与mysql分割开来

10.12.33.58     mysql

10.12.33.57     zabbix

10.12.33.X      其他监控对象

安装zabbix

[[email protected] zabbix]# wgethttp://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm

[[email protected] zabbix]# cp zabbix-2.0.8-3.el6.x86_64.rpmzabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-get-2.0.8-3.el6.x86_64.rpmzabbix-sender-2.0.8-3.el6.x86_64.rpm zabbix-server-2.0.8-3.el6.x86_64.rpmzabbix-server-mysql-2.0.8-3.el6.x86_64.rpm zabbix-web-2.0.8-3.el6.noarch.rpmzabbix-web-mysql-2.0.8-3.el6.noarch.rpm anzhuang/

先将本地安装为server,先不安装agent组件

[[email protected] anzhuang]# ll
total 5364
drwxr-xr-x 2 root root    4096 Sep  1 14:06 agent
-rw-r--r-- 1 root root  123788 Sep  1 14:04zabbix-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root   51228 Sep  1 14:04zabbix-get-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root   18632 Sep  1 14:04zabbix-server-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root 1463132 Sep  1 14:04zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root 3806960 Sep  1 14:04zabbix-web-2.0.8-3.el6.noarch.rpm
-rw-r--r-- 1 root root   12068 Sep  1 14:04zabbix-web-mysql-2.0.8-3.el6.noarch.rpm

解决依赖关系并安装软件包

[[email protected] anzhuang]# yum -y localinstall *.rpm

对mysql做初始化

需要相关脚本来实现

按顺序导入到mysql数据库中,并且创建相关数据库并授权给zabbix访问的账号密码

[[email protected] anzhuang]# rpm -ql zabbix-server-mysql

看到如下信息,就是我们的脚本

/usr/share/doc/zabbix-server-mysql-2.0.8/create
/usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
/usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql
/usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql

切换至node1.test.com

授权用户

mysql> grant all on *.* to ‘root‘@‘10.12.33.%‘IDENTIFIED  by ‘mypass‘ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

测试是否可以连接

[[email protected] create]# mysql -uroot -pmypass -h10.12.33.58

导入库

mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)

[[email protected] create]# mysql -uroot -pmypass -h10.12.33.58zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql

[[email protected] create]# mysql -uroot -pmypass -h10.12.33.58zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql
[[email protected] create]# mysql -uroot -pmypass -h10.12.33.58 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql

授权非管理员范访问

mysql> grant all on zabbix.* to ‘zbxuser‘@‘10.12.33.%‘IDENTIFIED BY ‘zbxpass‘;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

配置zabbix
[[email protected] create]# cd/etc/zabbix/
[[email protected] zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf

[[email protected] zabbix]# vim zabbix_server.conf

更改参数:

DBHost=10.12.33.58

DBUser=zbxuser
DBPassword=zbxpass

DBPort=3306

StartPollers=5     #zabbix需要向各agent端取数据的,可以并行启动好几个poller 这样可以并行大规模拉取数据,这个值需要看cpu的核心数,也就是说需要根据当前cpu进行计算

保存退出并启动服务

[[email protected] zabbix]# /etc/init.d/zabbix-server start
Starting Zabbixserver:                                   [  OK  ]

[[email protected] zabbix]# netstat -lntup

zabbix-server默认监听在10051端口

接下来配置web应用接口

配置web接口

由于我们之前已经安装过zabbix-web,它会默认在httpd服务目录下生成单独的配置文件
[[email protected] zabbix]# ls /etc/httpd/conf.d/
php.conf  README  welcome.conf  zabbix.conf

查看zabbix相关路径

[[email protected] zabbix]# rpm -ql zabbix-web

我们能看到,所有的zabbix-web都被放在/usr/share/zabbix/目录下

而这些文件都是只读的

想访问zabbix-web 只要直接启动httpd服务即可

[[email protected] conf.d]# /etc/init.d/httpd start

访问http://10.12.33.57/zabbix/

第一次访问的时候会提示如下界面

说明我们必须安装zabiix,上面有个警告,说明直接依赖于php默认配置的时区是不安全的,因此最好手动配置时区,所以我们需要更改时区

[[email protected] conf.d]# vim /etc/php.ini

date.timezone = Asia/Shanghai

/etc/init.d/httpd restart
再次刷新页面,如果没有提示错误信息,则选择下一步

提示检测所有条件是否符合 全部ok则可以进行下一步了

提示后端类型,因为我们安装的是zabbix-mysql 所有只支持mysql数据库,服务器是10.12.33.58 端口为3306   0为默认则不需要更改,数据库为zabbix 用户名和密码为我们刚授权的用户权限,输入完后一定要选择testconnection 不然无法下一步

当前zabbix server在什么地方,因为web需要跟server进行交互的,而server就是本机,所以不用更改,而port就是10051,name是可选的,如果zabbix server比较多的话可以为其取名,这里我们就不对其命名了,直接下一步

提示信息,告知我们大概信息是这样是否继续安装

选择finish,直接下一步,接下来跳到登录页面

登录的时候第一次要验证,用户名默认为admin,密码为zabbix

选择登录,可以看到如下界面

zabiix的用户

很显然我们使用zabbix必须得有用户的,如上的菜单每个菜单下面都有子菜单,选择Administration 在子菜单选择User

默认显示的是组,而默认情况下是有俩用户 一个是admin 另一个则是guest

主界面

如果提示is running 说明服务器是没有任何问题的

Zabbix的状态信息

表示监控的主机有多少, 0表示正常(被监控) 1表示没有被监控的 23为模板数


Number of hosts (monitored/not  monitored/templates)


24


0 / 1 / 23

表示没有任何的数据需要采集


Number of items  (monitored/disabled/not supported)


0


0 / 0 / 0

triggers的信息


Number of triggers  (enabled/disabled)[problem/unknown/ok]


0


0 / 0  [0 / 0 / 0]

共有几个用户


Number of users (online)


2


1

以上信息是经常需要我们去关注的,但是我们现在没有任何的监控对象,所以首先我们要去添加一个需要监控的主机

添加监控节点

[[email protected] zabbix]# scp zabbix-2.0.8-3.el6.x86_64.rpmzabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpmnode1.test.com:/tmp
[email protected]‘s password:
zabbix-2.0.8-3.el6.x86_64.rpm      100%  121KB120.9KB/s   00:00   
zabbix-agent-2.0.8-3.el6.x86_64.rp 100%  138KB 138.4KB/s  00:00   
zabbix-sender-2.0.8-3.el6.x86_64.r 100%   57KB 56.8KB/s   00:00

[[email protected] tmp]# yum localinstall zabbix-*.rpm

[[email protected] tmp]# ls /etc/zabbix/
zabbix_agentd.conf  zabbix_agentd.d

[[email protected] zabbix]# ll zabbix_agentd.d/
total 4
-rw-r--r-- 1 root root 1517 Oct  3  2013 userparameter_mysql.conf    #用来监控mysql的额外所需要的补充

编辑配置文件

[[email protected] zabbix]# vim zabbix_agentd.conf

更改以下参数:

Server=10.12.33.57

对于其他参数后期可以慢慢更改,于是可以正常启动了

[[email protected] zabbix]# /etc/init.d/zabbix-agent restart

[[email protected] zabbix]# ss -tanl

State       Recv-QSend-Q   Local Address:Port     Peer Address:Port
LISTEN      0     128                 *:80                 *:*    
LISTEN      0     128                 :::22                :::*    
LISTEN      0     128                 *:22                 *:*    
LISTEN      0     128         127.0.0.1:6010               *:*    
LISTEN      0     128                ::1:6010              :::*    
LISTEN      0     128                :::10050              :::*    
LISTEN      0     128                 *:10050               *:*    
LISTEN      0     80                 :::3306              :::*

接下来就可以对其进行监控了,要想监控其主机,需要新加配置才可以进行

添加监控

提示如下信息栏

Host               主机自身的属性

Tamplates          关联的模板

IPMI               ipmi的属性配置

Macros             zabbix的宏(变量

Host inyentory     企业资产盘点

这里我们只更改host这一项即可:

主机一定要归类到组里面去的,如果没有一个适合我们的,我们可以定义新的组

Host name 跟agentinterfaces 需要注意的是监控接口地址定义的主机才是最关键的

端口为10050,表示使用agent进行连接的,如果对端不支持agent,下面也有列出其他连接方式

查看其状态:

回到主页面查看dashboard

查看当前监控信息:


Number of hosts (monitored/not  monitored/templates)


25


1 / 1 / 23

监控的主机有1个,没有监控的主机有1个

但是我们现在监控的主机的确是在线的而且能连接agent,说明主机只是处于活动状态,但是我们还需要监控对方的其他信息,比如网络网卡发送数据量等等

因此,我们还需要定义其监控的监控项

定义监控项

创建一个监控项

这里显示的是当前已有的items,依旧选择create items

Host

Name

Type          item的类型,使用哪种方法采集而来的数据,我们这里需要使用agent进行监控

key           对zabbix items而言,key用来标记items的键,我们也称之为标示符,监控对象一定是可采集数据的,为了唯一的标示这个指标,我们要为其做标记,就叫做key,所以对于zabbix而言 key是不能重名的

Use custom multiplier     #自定义乘以多少倍,需要自定义的,因为我们所要显示的内容在图形里很可能与它的数据单位不一致,所以有些时候采集的数据是按位来处理的,但是显示的是按字节进行显示,所以要乘以8 ,同样的如果以字节为采集单位,显示的为k 那么需要乘以1024

Update interval (in sec)    #定义多少秒采集一次数据,当然我们也可以定义在什么时间内采集

Flexible intervals          #定义采集时间段

Keep history (in days)      #数据历史保存多少天

Keep trends (in days)       #数据趋势保存多少天

Store value                 #保存的格式

As is                   #原封不动保存

delta (speed per secound)      #使用当前时间点的值减去上个时间点的值并除以时间来计算速率

delta (simple change)          #只计算差别而不计算平均速率

#对于网卡速率而言要选择第二个

Show value                  #显示的状态

New application             #当前的在状态存放在哪个application里

Description                 #描述信息

Status                      #状态

创建完毕后返回configureation --> hosts

看到其自动建立了名为NetTraffic 的application

回到主页面并查看监控项

当前monitored有多少个处于监控的状态 为1个


Number of hosts (monitored/not  monitored/templates)


25


1 / 1 / 23


Number of items  (monitored/disabled/not supported)


1


1 / 0 / 0

查看图形

当每建立一个item会自动创建图形的

依次选择monitoring --> Latest data,每个节点对应的监控项:

可以看到其监控项,上次数据是2016 当前数据是+476,我们选择Graph 可以查看图形

那么我们对这个节点进行ping操作,使其产生一些数据流量,如下所示:

如果我们想对其监控多个状态只需要再加监控项即可

新加监控项

新加监控多个状态

添加新监控项

添加监控CPU

需要再次创建items

再添加,使其监控cpu的使用率

key为system.cpu.intr 意思是cpu的中断次数

Units 不用填写因为这次与上次没有关系,所以不用计算,而且一定是无符号整数

可看到,我们的一个主机的application 被分为了两个,虽然都是同一个主机

因为这里是根据application为主 建立分组的,此时我们发现所有的application都采集到了数据

使同一application工作在同一张图上

我们自定义某几个指标放在一个图进行展示

可以选择Preview先预览一下效果

选择Save 进行保存

使用screens将图整合

显示为几行几列,这里为1行2列

加图:


如下所示:

接下来再添加网络图

以上,为zabbix的简单部署以及使用方法,感谢各位

时间: 2024-11-05 06:30:26

监控工具Zabbix之原理及部署的相关文章

第四十八课 zabbix工作原理、安装、配置入门

监控系统基础及zabbix介绍 zabbix工作原理及安装配置 zabbix配置入门 zabbix配置入门 一.监控系统基础及zabbix介绍 著名的监控工具 zabbix zennos opennms cacti nagios. cacti 收集数据.展示图表 nagios 关注状态 报警机制强 zabbix 强大的监控工具能完成数据采集.存储.展示.报警功能. zabbix 有专用的agent的监控工具,他是一个分布式的监控系统. 二.zabbix的安装(zabbix-2.4为例) 1.rp

zabbix实例集群部署-偏向于管理使用

zabbix实例集群部署 前言:已经折腾两个礼拜了,本文侧重点不在于安装,在于使用管理.部署请看文档或者百度,,很简        单 提示:zabbix关于模板.应用集.主机组.触发器.等等命令一定要谨慎,不要随意,防止自己糊涂了 主机组: 比如说,我的主机组用的是yunce56,因为我这个项目名称叫做yunce 模板:zabbix自带的templates不够合理,我自己重新写,DIY.比如说我专门监                          控cpu,我可以写yunce-cpu-li

47 监控系统基础及zabbix介绍、zabbix工作原理及安装配置、zabbix on CentOS7、zabbix配置

02    zabbix工作原理及安装配置 配置环境 node1192.168.1.120CentOS6.7 node2192.168.1.121CentOS6.7 1.安装配置zabbix #安装前准备 [[email protected] ~]#yum -y install mysql-server mysq [[email protected] ~]# mysql mysql> CREATE DATABASE zabbix CHARACTER SET utf8; mysql> GRANT

Zabbix基于Proxy分布式部署实现Web监控

前言 在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能.但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情.目前比较流行的开源监控工具有Cacti.Nagios(Icinga).Zabbix等.本文带来的是Zabbix基于Proxy分布式部署实现Web监控. Zabbix 简介 Zabbix是一个基于Web界面提供分布式系统

基于rhel7.2的Zabbix平台搭建和部署(一)

基于rhel7.2的zabbix平台搭建和部署(一) 一.实验环境: (1)虚拟机:rhel7.2 x86_64 (2)数据库:mysql5.7.13 (3)nginx1.10.2 (4)PHP5.6.27 (5)zabbix 二.安装编译工具及库文件 [[email protected] ~]# yum-y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel ke

zabbix的快速安装部署

本人rhel6.5系统 需要如下rpm包 各位看官注意版本问题 毕竟不是源码编译哦 版本问题把人折磨的够呛 怪自己太菜了 哎...... 还好有光纤宽带让我各种一通下载 [[email protected] zabbix]# yum localinstall -y zabbix-server-2.4.5-1.el6.x86_64.rpm zabbix-web-2.4.5-1.el6.noarch.rpm zabbix-web-mysql-2.4.5-1.el6.noarch.rpm zabbix

基于rhel7.2的Zabbix平台搭建和部署(四)

基于rhel7.2的Zabbix平台搭建和部署(四) 一.实现zabbix添加监测项,添加对Linux主机的监控. 说明:先在"配置"-"主机"里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等. (1)登录zabbix,先在"配置"-"主机"里单击"创建主机": (2)在"主机"标签,填写相关信息 注:这个主机名字必须和hostname的一模一样,这里用的ip就是被监控主机

基于rhel7.2的Zabbix平台搭建和部署(二)

 基于rhel7.2的Zabbix平台搭建和部署(二) 一.监控系统Zabbix-3.2.1的安装 zabbix-server端的操作 说明:zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local) (1)创建zabbix运行的用户 [[email protected] ~]# groupadd zabbix [[email protected] ~]# useradd -g zabbix [[email protected] ~]# g

Zabbix的安装与部署

Zabbix的安装与部署 一.Zabbix简介 1.zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让运维人员能够快速定位. 2.zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置. 被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端. server端:通过收集SNMP和