814247614 发表于 2019-1-18 13:59:35

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


  一、监控系统机制

1.监控工具工作机制
      监控是通过传感器采集数据,在经过数据的存储加工后,进行展示。一般采集的数据为时间序列数据,即随时间变化而动态变化的数据;当采集到的数据超出阈值将会报警。监控功能的实现可基于专用agent、ssh、SNMP协议、IPMI(专业级监控接口IntelligentPlatform Management Interface,指挥平台管理接口)
http://s5.运维网.com/wyfs02/M01/7C/A3/wKiom1bUK0-xOlgpAAU4hvIjteY526.png
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
managementinformation 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安定的媒介向用户发送的有关于事件的信息
remotecommand
远程命令,预定义的命令,可在被监控主机处于特定条件下自动执行
template模板
用于快速定义被监控主机的预设条目集合,通常包括item、trigger、graph、screen、application、rule…
application应用
一组item的集合
webscennario
web场景,用于检测web站点可以性的一个或多个HTTP请求
frontend前端
Zabbix的web接口
screens 屏幕
利用当前的屏幕, 来展示的多个graph
graph图表
用于图像化显示时间虚拟数据,item指标产生的监控数据
maps
整个系统的拓扑图
http://s2.运维网.com/wyfs02/M00/7C/A2/wKioL1bUK9OQwxbOAADD9j1norc156.png
zabbix服务启动之后会产生多个进程,如watchdog(监控进程)、housekeeper(管家,对于数据清理操作)、alerter(报警)、poller(拉去收集数据,能被启动多个)、httppoller(监控web页面信息专业poller)、discoverer(发现机制进程,相当占用资源)、pinger(屏操作监控节点在线机制)、db_config_syncer(数据库配置同步器)、db_data_syncer(数据库数据同步器)、nodewatcher(用于监控节点)、timer(计时器)、escalator(报警升级)… ...

4.硬件需求实例
http://s2.运维网.com/wyfs02/M01/7C/A2/wKioL1bUK-jDe3NoAAGrVE56Q6U783.png
注意:   
      zabbix产生的数据主要由四部分组成:配置数据、历史数据50Bytes、历史趋势数据:128Bytes、事件数据130Bytes;通过每个item一次需要占用的空间参标准,更具记录的频率和总保留时长,可以大致计算出所需要的存储空间
http://s2.运维网.com/wyfs02/M02/7C/A3/wKiom1bUK3yiO5OnAAH-U_sGOGg917.png



三、zabbix监控端安装部署
1.安装启动LAMP
      # yum install -yhttpdphp php-mysql mariadb-server
      # systemctl start httpd.service
       # systemctl start mariadb.service

2.配置生成数据库
      # mysql
          MariaDB [(none)]> CREATE DATABASEzabbix CHARACTER SET utf8;      # 创建支持utf8的数据库zabbix
          MariaDB [(none)]> GRANT ALL onzabbix.* TO 'zbxuser'@'172.16.%.%' IDENTIFIED BY 'zbxpass';       # 授权网段用户可登陆查询库
          MariaDB [(none)]> FLUSHPRIVILEGES;      # 重载授权表
          MariaDB [(none)]> quit    # 退出
      # mysql -uzbxuser-h172.16.49.101 -p     #检测授权是否可以登录

3.安装zabbix组件
      # 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
http://s1.运维网.com/wyfs02/M02/7C/A3/wKiom1bUK4niA7BFAAFt0hugDiw641.png

4.初始化zabbix数据库
      # systemctlrestart httpd.service# 安装zabbix-web程序会在httpd/conf.d下生成zabbix.conf文件
初始化数据库:执行/usr/share/doc/zabbix-server-mysql-2.4.6/下三个数据库脚本,注意执行顺序
      # cd /usr/share/doc/zabbix-server-mysql-2.4.6/create/
      # ls
            data.sqlimages.sql schema.sql
      # mysql zabbix < schema.sql
      # mysql zabbix < images.sql
      # mysql zabbix < data.sql
http://s1.运维网.com/wyfs02/M02/7C/A2/wKioL1bULAbxzHhVAAC73-RhhyQ979.png

5.配置文件/etc/zabbix/zabbix_server.conf
      # 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.启动服务
      # 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。
      # systemctl start zabbix-server.service
http://s5.运维网.com/wyfs02/M00/7C/A3/wKiom1bUK6mAy1iWAAMqHaDXK5Q442.png

7.修改php时区
      # vim /etc/php.ini修改如下配置
                   date.timezone= Asia/shanghai
      # systemctl restart httpd.service

8.启动web页面
       根据页面提醒进行网页点配置,之后会在/etc/zabbix/web/zabbix.conf.php文件内生成相应配置信息。默认登录的用户名和密码为:admin/zabbix
http://s5.运维网.com/wyfs02/M00/7C/A2/wKioL1bULDni4N6bAAQiHKrp97I893.png
http://s1.运维网.com/wyfs02/M02/7C/A2/wKioL1bULGKCwl4XAAQIDCLLkWw145.png
http://s3.运维网.com/wyfs02/M00/7C/A3/wKiom1bULFezKcxBAAOrm-t-dI0572.png
http://s4.运维网.com/wyfs02/M02/7C/A2/wKioL1bULp_gdz2aAAJF0_XMslU858.png
http://s4.运维网.com/wyfs02/M02/7C/A2/wKioL1bUMA3j_VO6AALIhzdmA48619.png
http://s3.运维网.com/wyfs02/M00/7C/A2/wKioL1bULsGyLhOpAAIRC8ssTcs057.png



四、zabbix被控端安装配置
1.安装程序
   # yum installzabbix-2.4.6-1.el7.x86_64.rpm zabbix-agent-2.4.6-1.el7.x86_64.rpmzabbix-sender-2.4.6-1.el7.x86_64.rpm
2.修改配置文件
      # 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.启动服务
       # systemctl start zabbix-agent.service



页: [1]
查看完整版本: zabbix系列(一):zabbix自动化监控系统搭建详解