zabbix(一):zabbix自动化监控系统搭建详解

一、监控系统机制

1.监控工具工作机制

监控是通过传感器采集数据,在经过数据的存储加工后,进行展示。一般采集的数据为时间序列数据,即随时间变化而动态变化的数据;当采集到的数据超出阈值将会报警。监控功能的实现可基于专用agent、ssh、SNMP协议、IPMI(专业级监控接口IntelligentPlatform Management Interface,指挥平台管理接口)

2.SNMP协议

Simple Network Management Protocol,简单网络管理协议。由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

Liunx:net-snmp程序包,监听端口:NMS: 161/UDP 、agent: 162/UDP


NMS


网络管理系统,存在监控端;

通过SNMP协议,接收处理网络中被管理的每一个设备存在的管理信息库(MIB)所收集并储存管理信息

NMS可发起操作:Get,  GetNext, Set, Trap


agent


代理者,被管理设备上的一个网络管理软件模块;

拥有本地设备的相关管理信息,并用于将它们转换成与SNMP兼容的格式,传递给NMS。

一般为各操作系统、路由器等标准接口

(1)SNMP工作模式

NMS向agent采集数据、agent向NMS报告数据、NMS请求agent修改配置

(2)SNMP组件


MIB


management  information base,管理信息库;定义被管理的可实现的数据采集规范,被管理端的名称转换


SMI


MIB表示符号


SNMP


简单网络管理协议

(3)SNMP协议版本:v1, v2, v3

v1无认证;v2c基于社区管理机制,NMS --> agent 需要发起社区标识(共享密钥),明文;v3认证、加密、解密功能。实际使用中v2c为主流,也有v1,v3使用很少。

3.可监控对象

(1)设备/软件

设备:服务器、路由器、交换机、IO系统...

软件:OS、网络、应用程序...

(2)偶发性小故障:主机down机、服务不可用、主机不可达...

(3)严重故障:磁盘空间用完...

(4)主机性能指标

(5)趋势:时间序列数据

二、Zabbix架构概述

1.著名开源工具

zabbix、 zennos,、opennms、cacti、nagios(二次发行版icinga...)、 ganglia

(1) cacti

基于SNMP协议实现的开源软件, 能让监控端能每个agent做周期的数据采样 请求,cacti能将其保存在一个rrd(roundrobin database)数据库,其数据库的大小是固定的.其提供了一个php程序,(前端web界面),能够向数据库中加载数据, 并给予展示。cacti的报警系统比较弱,报警通过插件实现,如果需要好的报警系统,可与nagios系统结合。其存储所用数据库为rrd(round robin database环状数据,不能持久保持数据,初始化后不能更改大小)

(2) nagios

一个强大的内置报警系统, 不做数据采集和保存数据, 主要着眼点是报警系统,(只做状态改变监控), 如果状态不OK , 状态由OK—>PROBLEM,。不适用于大规模多数据采集情况的报警监控,数百台是可能nagios监控系统本身出现性能瓶颈。

(3) zabbix

基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由zabbix server与可选组件zabbix agent构成。zabbix server可以通过SNMP,zabbixagent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,FreeBSD,Open BSD,OS X等平台上。

zabbix专用agent端,对SNMP协议做了扩展。在zabbix2.2以前传输使用ISON格式(轻量级HTML),zabbix2.4使用换行来辨识数据,所以在完成监控同样数据带宽流量上比zabbix2.2要节约1/3以上。

(4) ganglia

强大的聚合功能,在集群将空方面有很大优势。Ganglia是UCBerkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

2.zabbix架构组件


zabbix-server


NMS端程序,C语言研发,可基于webpages、ICMP/IPMI/SNMP、Agent、JMX接口机制监控


OS: zabbix-agent


被监控管程序,C语言研发


zabbix-database


存储数据库,支持 MySQL, PGSQL(postgreSQL)、Oracle、DB2、SQLite


zabbix-web


GUI界面,用于实现zabbix设定和展示,需要结合LAMP架构使用


zabbix-proxy:


分布式监控环境中的专用组件

注意:

对性能要求较高的场景中,zabbix-server、zabbix-web、zabbix-database三个节点可以分开布置与不同的主机处理不同的操作。

3.zabbix专用术语


hsot主机


被监控的网络设备,IP或DNS名称指定


host group主机组


主机的逻辑容器。可包含主机和模板,同一个组内的主机和模板不能相互链接;

一般给用户(组)指派监控权限时使用


item监控项


特定监控指标的相关数据(来自被监控对象),由key进行标识,数据收集的核心


tigger触发器


用于评估监控对象特定item阈值的表达式。状态在OK和PROBLEM间转换


event事件


发生的一个值得关注的事情


action动作


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


escalation预警升级


发送报警或执行远程命令的自定义方案


media媒介


发送通知的手段或通道,如Email、Jobber、SMS、微信通知


notification通知


通过u安定的媒介向用户发送的有关于事件的信息


remote  command


远程命令,预定义的命令,可在被监控主机处于特定条件下自动执行


template模板


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


application应用


一组item的集合


web  scennario


web场景,用于检测web站点可以性的一个或多个HTTP请求


frontend前端


Zabbix的web接口


screens 屏幕


利用当前的屏幕, 来展示  的多个graph


graph图表


用于图像化显示时间虚拟数据,item指标产生的监控数据


maps


整个系统的拓扑图

zabbix服务启动之后会产生多个进程,如watchdog(监控进程)、housekeeper(管家,对于数据清理操作)、alerter(报警)、poller(拉去收集数据,能被启动多个)、httppoller(监控web页面信息专业poller)、discoverer(发现机制进程,相当占用资源)、pinger(屏操作监控节点在线机制)、db_config_syncer(数据库配置同步器)、db_data_syncer(数据库数据同步器)、nodewatcher(用于监控节点)、timer(计时器)、escalator(报警升级)… ...

4.硬件需求实例

注意:

zabbix产生的数据主要由四部分组成:配置数据、历史数据50Bytes、历史趋势数据:128Bytes、事件数据130Bytes;通过每个item一次需要占用的空间参标准,更具记录的频率和总保留时长,可以大致计算出所需要的存储空间

三、zabbix监控端安装部署

1.安装启动LAMP

[[email protected]~]# yum install -y  httpd  php php-mysql mariadb-server

[[email protected]~]# systemctl start httpd.service

[[email protected]~]# systemctl start mariadb.service

2.配置生成数据库

[[email protected]~]# mysql

MariaDB [(none)]> CREATE DATABASEzabbix CHARACTER SET utf8;      # 创建支持utf8的数据库zabbix

MariaDB [(none)]> GRANT ALL onzabbix.* TO ‘zbxuser‘@‘172.16.%.%‘ IDENTIFIED BY ‘zbxpass‘;       # 授权网段用户可登陆查询库

MariaDB [(none)]> FLUSH  PRIVILEGES;        # 重载授权表

MariaDB [(none)]> quit    # 退出

[[email protected] ~]# mysql -uzbxuser-h172.16.49.101 -p     #检测授权是否可以登录

3.安装zabbix组件

[[email protected] ~]# yum installzabbix-2.4.6-1.el7.x86_64.rpm zabbix-server-2.4.6-1.el7.x86_64.rpmzabbix-server-mysql-2.4.6-1.el7.x86_64.rpm zabbix-web-2.4.6-1.el7.noarch.rpmzabbix-web-mysql-2.4.6-1.el7.noarch.rpm zabbix-agent-2.4.6-1.el7.x86_64.rpmzabbix-get-2.4.6-1.el7.x86_64.rpm zabbix-sender-2.4.6-1.el7.x86_64.rpm

注意:

1) 本次采用zabbix2.4安装,且安装在同一台主机,也可以将多个组件分开安装(一台主机提供zabbix监控以及与专用的agent接口交互采集信息、一台主机专门用于数据的存放、一台主机用于web端接口调取数据展示数据)

2) 各安装组件详细信息如下:


zabbix-2.4.6-1.el7.x86_64.rpm


zabbix程序的主程序包,提供相关服务


zabbix-server-2.4.6-1.el7.x86_64.rpm


zabbix作为监控端提供服务程序包


zabbix-server-mysql-2.4.6-1.el7.x86_64.rpm


zabbix监控端和mysql数据库交互的驱动包


zabbix-web-2.4.6-1.el7.noarch.rpm


zabbix的web展示接口


zabbix-web-mysql-2.4.6-1.el7.noarch.rpm


zabbix的web展示接口与数据库交互的驱动包


zabbix-agent-2.4.6-1.el7.x86_64.rpm


zabbix的agent用于做为客户端交互接口,本处同时将本主机当成客户端监控


zabbix-get-2.4.6-1.el7.x86_64.rpm


zabbix的get工具,手动调试使用


zabbix-sender-2.4.6-1.el7.x86_64.rpm


zabbix的sender工具,手动调试使用

3) 被依赖被安装程序

OpenIPMI-libs.x86_640:2.0.19-11.el7                OpenIPMI-modalias.x86_64 0:2.0.19-11.el7

fping.x86_640:3.10-4.el7                                      iksemel.x86_64 0:1.4-6.el7

net-snmp.x86_641:5.7.2-20.el7                          net-snmp-agent-libs.x86_641:5.7.2-20.el7

net-snmp-libs.x86_641:5.7.2-20.el7                  php-bcmath.x86_64 0:5.4.16-23.el7_0.3

php-gd.x86_640:5.4.16-23.el7_0.3                    php-mbstring.x86_64 0:5.4.16-23.el7_0.3

php-xml.x86_640:5.4.16-23.el7_0.3                  t1lib.x86_64 0:5.1.2-14.el7

unixODBC.x86_640:2.3.1-10.el7

4.初始化zabbix数据库

[[email protected] zabbix]# systemctlrestart httpd.service  # 安装zabbix-web程序会在httpd/conf.d下生成zabbix.conf文件

初始化数据库:执行/usr/share/doc/zabbix-server-mysql-2.4.6/下三个数据库脚本,注意执行顺序

[[email protected]]# cd /usr/share/doc/zabbix-server-mysql-2.4.6/create/

[[email protected]]# ls

data.sql  images.sql schema.sql

[[email protected]]# mysql zabbix < schema.sql

[[email protected]]# mysql zabbix < images.sql

[[email protected]]# mysql zabbix < data.sql

5.配置文件/etc/zabbix/zabbix_server.conf

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

该配置文件中#段表示默认的配置,如要修改则将#去除再修改为所需信息


# ListenPort=10051


监听端口默认10051


LogFile=/var/log/zabbix/zabbix_server.log


日志文件位置


LogFileSize=0


日志文件大小,指明后会自动滚动。0不做滚动


# DebugLevel=3


调试级别


# DBHost=localhost


指明数据库连接地址。

若数据库在本机建议指明路径为localhost,此方式数据传输更快


DBName=zabbix


指明数据库名称


# DBSchema=


可选项为IBM DB2 and PostgreSQL


DBUser=zbxuser


指明数据库连接访问用户


DBPassword=zbxpass


指明联机而数据库用户密码


DBSocket=/tmp/mysqlsocket


当之前配置为"DBHost=localhost"要指明交互的套接字位置,否则可注释

注意: ADVANCED PARAMETERS 配置段用于对进程的一些配置,可以使用默认配置

6.启动服务

[[email protected] ~]# yum install  -y trousers-0.3.11.2-4.el7_1.x86_64.rpm

说明:CentOS7.1安装zabbix-2.4.6-1.el7,其与trousers-0.3.11.2-3不兼容,需要升级trousers至0.3.11.2-4.el7_1。

[[email protected]~]# systemctl start zabbix-server.service

7.修改php时区

[[email protected] ~]# vim /etc/php.ini  修改如下配置

date.timezone= Asia/shanghai

[[email protected]]# systemctl restart httpd.service

8.启动web页面

根据页面提醒进行网页点配置,之后会在/etc/zabbix/web/zabbix.conf.php文件内生成相应配置信息。默认登录的用户名和密码为:admin/zabbix

四、zabbix被控端安装配置

1.安装程序

[[email protected] ~]# yum installzabbix-2.4.6-1.el7.x86_64.rpm zabbix-agent-2.4.6-1.el7.x86_64.rpm  zabbix-sender-2.4.6-1.el7.x86_64.rpm

2.修改配置文件

[[email protected]~]# vim  /etc/zabbix/zabbix_agentd.conf

客户端默认监控在10050端口,在该配置文件中主要需要配置Server授权和Hostname,可以为对多个,对于监控端自监控需要监控127.0.0.1

Server=127.0.0.1,172.16.49.101   #服务端主机地址,指明可拉去数据主机

ServerActive=172.16.49.101  # 主动推送数据至主机地址

Hostname=             # 注意全局唯一,使用DNS解析最理想

3.启动服务

[[email protected]~]# systemctl start zabbix-agent.service

时间: 2024-08-24 12:50:48

zabbix(一):zabbix自动化监控系统搭建详解的相关文章

zabbix监控系统使用详解

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,由zabbix server与可选组件zabbix agent两部门组成,可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视.zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集. zabbix 流程图: zabbix 逻辑图: 下载地址: http://repo.zabbix.com/za

zabbix之本地邮件监控报警安装详解

文记: 写这篇博文之前的时候我接到了一个不幸的消息,跟我一起的一位同事要走,准备换工作了,于是,我的第一反应,我的蜜月期结束了,即将开始一个被蹂躏的时代,心里默默的祝愿他找一份15K的工作,又默默的想说对他说一句,你真JB坑.... 哎~! 我即将跳进一个无底洞,默默的被蹂躏,默默的被践踏...也许这也是一个新的开始.... 开始正文,估计他会默默的陪伴我这仅有的半个月时间,为此,这半个月,可能都会以zabbix 为主,如不出意外,每天一博.在半月后的某天,我估计我能出书了   <<zabbi

centos7 zabbix搭建详解

大家好!应朋友要求,今天为大家献上centos7 zabbix的搭建详解话不多收先把今天需要的安装包献上https://pan.baidu.com/s/1hIbJUTYnPSLlhGpEGCkWQA无需密码永久有效!! 为了方便我们今天就用一台虚机,用一台虚拟机充当监控服务器和被监控服务器 第一步!!!关闭并永久关闭防火墙和SELinux 第二步!!!部署LAMP环境 应为我们的haHP写运行在Linux环境下的Apache下,调用的是MySQL数据库所以必须先部署环境 yum -y insta

自动化监控系统(三) 搭建xadmin做网站后台

Django有个自带的admin后台,不过界面不怎么好看,这里我用xadmin 我的python版本是3.5,可以使用支持py3的xadmin:https://github.com/sshwsfc/xadmin xadmin部署步骤: 1.把xadmin整个目录拷贝到项目里面 2.需要安装的依赖包: django~=1.9.0django-crispy-forms~=1.6.0django-reversion~=2.0.0django-formtools==1.0future==0.15.2ht

zabbix_agentd.conf zabbix客户端配置文件的相关参数的详解:(二)

zabbix_agentd.conf zabbix客户端配置文件的相关参数的详解: Alias key的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID.你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid. 备注: 别名不能重复,但是可以有多个alias对

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

prometheus+node_exporter监控系统搭建

prometheus+node_exporter监控系统搭建: 注:可结合icinga2.telegraf一起用,Disk IOs.Disk Throughout是前2个没有的,traffic监控也可用这个 参考网址:http://blog.51cto.com/youerning/2050543 下载网址:https://prometheus.io/download 服务器端: tar zxfv prometheus-2.4.0.linux-amd64.tar.gz mv prometheus-

中国Linux系统服务进程详解

Linux系统服务进程详解 1.acpid 配置文件:/proc/acpi/event 说 明:Advanced Configuration and Power Interface,为替代传统的APM电源管理标准而推出的新型电源管理标准.建议所有的笔记本用户开启它.一些服务器可能不需要 acpi.支持的通用操作有:"电源开关","电池监视","笔记本 Lid 开关","笔记本显示屏亮度","休眠", &qu

高可用,多路冗余GFS2集群文件系统搭建详解

2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到高可用. GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统.它是由红帽公司开发出来的,允许所有集群节点并行访问.元数据通常会保存在共享