Zabbix-介绍及部署

感情迁移 提交于 2020-01-10 02:46:48

1、介绍

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

1.1 优点

支持自动发现服务器和网络设备;
支持底层自动发现;
分布式的监控体系和集中式的WEB管理;
支持主动监控和被动监控模式;
服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, MAC等;
Agent客户端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD,Windows等;
基于SNMP、IPMI接口方式也可以监控Agent;
安全的用户认证及权限配置;
基于WEB的管理方法,支持自由的自定义事件和邮件发送;
高水平的业务视图监控资源,支持日志审计,资产管理等功能;
支持高水平API二次开发、脚本监控、自Key定义、自动化运维整合调用。

1.2 监控组件及流程

Zabbix监控主要有三大组件,分别是Zabbix server端、Zabbix Proxy、Agent客户端,其中Zabbix Server端包括:WEB GUI、Database、Zabbix_Server。
Zabbix监控完整流程包括:Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。
当Zabbix监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:邮件、微信报警或者执行命令等操作。如下为Zabbix完整监控系统,各个部分负责的工作:
Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
Database Storage:专用于存储所有配置信息,以及存储由Zabbix收集到的数据;
Web interface:Zabbix的GUI接口,通常与Server运行在同一台主机上;
Proxy:常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
Zabbix Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
Zabbix监控部署在系统中,会包含常见的四个程序:zabbix_server 、zabbix_get、zabbix_agentd 、zabbix_proxy、zabbix_sender等。四个程序启动后分别对应四个进程,如下为每个进程的功能:
Zabbix_server:Zabbix服务端守护进程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的数据最终均是提交给Zabbix_Server;
Zabbix_Agentd:客户端守护进程,负责收集客户端数据,例如收集cpu负载、内存、硬盘使用情况等;
Zabbix_get:Zabbix数据获取工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令;
Zabbix_sender:zabbix数据发送工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据;
Zabbix_proxy:zabbix分布式代理守护进程,分布式监控架构需要部署Zabbix_Proxy。

1.3 监控方式及数据采集

Zabbix分布式监控系统监控客户端的方式常见有三种,分别是Agent方式、SNMP、IPMI方式,三种方式特点如下:
Agent:Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等。
SNMP:Zabbix可以通过简单网络管理协议(Simple Network Management Protocol,SNMP)协议监控网络设备或者Windows主机等,通过设定SNMP的参数将相关监控数据传送至服务器端,交换机、防火墙等网络设备一般都支持SNMP协议。
IPMI:智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于无论OS在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。
Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加。可以关闭被动模式的方法:在配置文件中加入 StartAgents=0,即为关闭被动模式。主被动监控模式区别如下:
Zabbix主动模式:Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,Zabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active items数据值server或者proxy;
Zabbix被动模式:Server向agent请求获取监控项的数据,agent返回数据,Server打开一个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server处理接收到的数据。

1.4 监控概念

Zabbix监控系统包括很多监控概念,如下为Zabbix常用术语及解释:

主机(host): 被监控的网络设备,可以写IP或者DNS;
主机组(host group): 主机组用于管理主机,可以批量设置权限;
监控项(item): 具体监控项,items值由独立的keys进行识别;
触发器(trigger): 为某个items设置触发器,达到触发器会执行action动作;
事件(event): 例如达到某个触发器,称之为一个事件;
动作(action): 对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation): 发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。
媒介(media): 发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification): 通过设置的媒介向用户发送的有关某事件的信息;
远程命令 达到触发器,可以在被监控端执行命令;
模板(template): 可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario)用于检测web站点可用性,监控HTTP关键词;
web前端(frontend): Zabbix的web接口;
图形(graph) 监控图像;
屏幕(screens) 屏幕显示;
幻灯(slide show) 幻灯显示。

2、Zabbix平台构建(yum方式)

2.1 部署lamp环境

2.1.1 yum安装

yum install -y httpd httpd-devel mariadb mariadb-server mariadb-devel php php-mysql php-devel

2.1.2 配置zabbix虚拟主机

yum install -y zabbix40-web zabbix40-web-mysql.noarch 

#修改配置文件
vim /etc/httpd/conf.d/zabbix.conf
#开头添加以下三行
<virtualHost *:80> 
servername blog.zabbix.com 
documentroot /usr/share/zabbix

 # 修改时区        
 php_value date.timezone Asia/Shanghai

# 尾部添加闭合标签 
</virtualHost>

2.1.3 配置数据库

[root@localhost /]# systemctl start mariadb
[root@localhost /]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-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)]> create database zabbix charset utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to "zabbix"@localhost identified by "123456";
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

2.1.4 导入zabbix初始数据

[root@localhost /]# yum install -y zabbix40-dbfiles-mysql
[root@localhost /]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@localhost /]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
[root@localhost /]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql

2.1.5 启动apache访问

[root@localhost /]# apachectl start

浏览器访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 部署zabbix-server

[root@localhost /]# yum install zabbix40-server zabbix40-server-mysql -y
[root@localhost /]# vim /etc/zabbix/zabbix_server.conf 

# 指定数据库主机: 
DBHost=localhost 
 # 指定密码 
 DBPassword=123456 

启动zabbix-server

[root@localhost /]# systemctl start zabbix-server

刷新页面
在这里插入图片描述

2.3 添加监控主机

在另一台机器部署agent

[root@localhost ~]# yum install zabbix40-agent -y
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 

#指定数据要发送到的server端ip
Server=10.0.0.150
#关闭主动模式
#ServerActive=127.0.0.1
#自己的ip
Hostname=10.0.0.149

启动zabbix-agent

[root@localhost ~]# systemctl start zabbix-agent

配置监控主机及监控项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看监控数据
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!