zabbix 介绍
zabbix实现原理及架构详解
想要用好zabbix进行监控,那么我们首要需要了解下zabbix这个软件的实现原理及它的架构。建议多阅读官方文档。
一、总体上zabbix的整体架构如下图所示:
重要组件说明:
1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3)web interface:zabbix的GUI接口;
4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;
另外,zabbix server、proxy、agent都有自己的配置文件以及log文件,重要的参数需要在这里配置,后面会详细说明。
一个监控系统运行的大概的流程是这样的:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
【主动监测】通信过程如下:
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:
获取ACTIVE ITEMS列表
Agent打开TCP连接(主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent 处理响应
关闭TCP连接
Agent开始收集数据
主动检测提交数据过程如下:
Agent建立TCP连接
Agent提交items列表收集的数据
Server处理数据,并返回响应状态
关闭TCP连接
【被动监测】通信过程如下:
Server打开一个TCP连接
Server发送请求agent.ping\n
Agent接收到请求并且响应<HEADER><DATALEN>1
Server处理接收到的数据1
关闭TCP连接
这里,有人可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。
还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:
1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。
2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。
二、常用的监控架构平台
1、server-agentd模式:
这个是最简单的架构了,常用于监控主机比较少的情况下。
2、server-proxy-agentd模式:
这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。
详解zabbix安装部署(Server端篇)
Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。
今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。
首先,我们先来介绍下Zabblx:
一.Zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方也提供了安装资料:http://www.zabbix.com/wiki/howto/monitor
二.Zabbix安装
2.1 zabbix WEB环境搭建
zabbix的安装需要LAMP或者LNMP环境。
需要其它的软件包
yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm
2.2 zabbix 数据库设置
zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。
grant all privileges on zabbix.* to zabbix_user@'ip' identified by '123456';
注:ip为zabbix服务器的IP地址。
关于数据库的安装,可以查看Mysql安装,我习惯使用二进制包。
启动数据库
/usr/local/mysql/bin/mysqld_safe --user=mysql &
登录数据库,创建帐号和设置权限:
mysql> use mysql;
mysql>create database zabbix character set utf8;
mysql>grant all privileges on zabbix.* to zabbix_user@'192.168.10.197' identified by '123456';
2.3安装zabbix服务
增加zabbix用户和组
#groupadd zabbix
#useradd -g zabbix -m zabbix
官网下载解压软件包。
下载地址:
http://www.zabbix.com/download.php
#wget http://fossies.org/unix/misc/zabbix-2.0.3.tar.gz
# tar -zxvf zabbix-2.0.3.tar.gz
#cd zabbix-2.203
导入数据库表
#cd zabbix-2.0.3/database/mysql
#mysql -uroot -pmysql zabbix < mysql.sql
#mysql -uroot -pmysql zabbix < images.sql
#mysql -uroot -pmysql zabbix < schema.sql
编译安装zabbix
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
编译报错checking for main in -lmysqlclient ... no
yum 安装mysql-devel即可
#make
#make install
添加服务端口
vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
添加配置文件
# mkdir -p /etc/zabbix
# cp -r zabbix-2.203/conf/* /etc/zabbix/
# chown -R zabbix:zabbix /etc/zabbix
修改server配置文件,添加zabbix数据库密码
vim /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=123456 #指定zabbix数据库密码
ListenIP=192.168.10.197 #服务器IP地址
修改Agentd配置文件,更改HOSTNAME为本机的hostname
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid #进程PID
LogFile=/tmp/zabbix_agentd.log #日志保存位置
EnableRemoteCommands=1 #允许执行远程命令
Server=192.168.10.197 #agent端的ip
Hostname=client1 #必须与zabbix创建的host name相同
如图设置hostname
添加web前段php文件
# cd zabbix-2.203/frontends/
# cp -rf php /home/httpd/zabbix #虚拟主机目录
# chown -R zabbix:zabbix zabbix
web前端安装配置
修改PHP相关参数
vim php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
PHP还必须支持一下模块,在php源码包直接编译安装。详细模块需要在安装是会提示。
bcmath.so、gettext.so
在客户端浏览器上面访问zabbix,开始WEB的前端配置,http://ZabbixIP/zabbix,按提示点击下一步
Step1:下一步。
Step2:如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。
Step3:需要输入mysql数据库帐号密码,如果数据库不在zabbix服务器上面,在Host里面添加数据库服务器的地址,并且要用grant命令给数据库授权。
Step4:输入服务器端 host name or host IP addres;
最后会自动写入配置文件:zabbix.conf.php,配置完成后出现登陆界面,默认的用户名为:admin,密码为:zabbix。
三.启动zabbix服务
在zabbix安装目录下面可以直接启动
#/usr/local/zabbix/sbin/zabbix_server start
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7140/zabbix_agentd
四.设置开启自动启动
vim /etc/rc.d/rc.local 最后添加下面两行
/usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_agentd start
至此,zabbix server端的安装完毕,我们可以通过浏览器来访问。如图:
接下来会介绍关于客户端监控的使用,以及监控模版的新建,自定义监控服务等。
更新:客户端安装可以查看:http://www.cnblogs.com/sunbeidan/p/4940144.html
好文要顶 关注我 收藏该文
zabbix 介绍的更多相关文章
- Zabbix介绍及安装(1)
Zabbix的介绍 一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种 ...
- zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix组件主要分两个: zabbix-server和zabbix-agent.支持的监控协议有ICM ...
- 运用Zabbix实现内网服务器状态及局域网状况监控(1) —— Zabbix介绍
一.Zabbix简介 Zabbix 是一个企业级的.开源的.分布式的监控套件 Zabbix 可以监控网络和服务的监控状况. Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警 ...
- Zabbix介绍及安装
Zabbix简介 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件,是一个企业级的分布式开源监控方案.Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警.这样 ...
- Zabbix概术及基础介绍(一)
一.Zabbix介绍 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持.Zabbix 是一个企业级的分布式开源监控方案.Zabbix是一款能够监控各种 ...
- Zabbix监控工具介绍及软件监控、硬件监控及报警练习
zabbix介绍 zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供 ...
- Zabbix简介(第一章第一节)
Alexei Vladishev创建了Zabbix项目,当前处于活跃开发状态,Zabbix SIA提供支持. Zabbix是一个企业级的.开源的.分布式的监控套件 Zabbix可以监控网络和服务的监控 ...
- Zabbix 3.0 从入门到精通(zabbix使用详解)
第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也 ...
- zabbix入门知识
zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...
随机推荐
- [翻译] 极具动感的 FRDLivelyButton
FRDLivelyButton https://github.com/sebastienwindal/FRDLivelyButton FRDLivelyButton is a simple UIBut ...
- Linux 防火墙 iptables基本操作
1:临时性关闭开启防火墙,重启后失效开启service iptables start关闭service iptables stop/etc/rc.d/init.d/iptables stop 2:永久 ...
- Log4j输出格式控制
参数说明例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是& ...
- android之获得当前连接wifi的名字
WifiManager wifiMgr = (WifiManager) mActivity.getSystemService(Context.WIFI_SERVICE); int wifiState ...
- Steps to configure a FileShare Quorum Witness for Windows Failover Cluster
Step 1: Step 2: Step 3: Step 4: You must use the wizard to create the file share. Step 5: to make su ...
- iOS开发-Quartz2D初识
Quartz2D如果单独的从Quartz,那么会发现Quartz是一个开源的Java作业调度框架,单独从英文翻译的角度来看的话Quartz的英文是石英,如果有的时候不小心搜索会发现手表推荐.本文中介绍 ...
- Android组件之Service浅谈
Service是Android中的四大组件之一,和windows中的服务是类似,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序Service,手机中有的程序的 ...
- Android中的树状(tree)列表
树状列表前端挺常用的,还有人专门写过Ztree,Android中有的时候也需要使用到树状列表,上篇文章写了一下ExpandableListView,ExpandableListView最多支持两级结构 ...
- GoLang中flag标签使用
正如其他语言一样,在 linux 系统上通过传入不同的参数来使得代码执行不同逻辑实现不同功能,这样的优点就是执行想要的既定逻辑而不需要修改代码重新编译与打包.在 Golang 语言中也为我们提供了相应 ...
- Android -- 点击双下返回退出程序
背景 现在好多apk ...