Zabbix简介
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司 Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务
Zabbix 是一个企业级分布式开源监控解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使
1、系统的性能
内存使用率、cpu负载、网络以及磁盘I/O、Tcp的各种连接状态
2、应用程序
首先监控应用程序是否正常运行(端口进程)、监控应用程序的性能
运维常用的监控软件:nagios、cacti、ganglia、promethues、zabbix、open-falcon
zabbix监控软件:它是一个C/S架构,还是一个B/S架构, zabbix软件的前端是由php页面写的
zabbix数据的采集的两个模式
主动模式:被监控端主动将采集到的数据,发送给监控端
被动模式:zabbix默认的模式,监控端定时的向被监控端拿数据
zabbix的监控原理
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,规范项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)
Zabbix分布式监控系统监控客户端的方式常见有三种:Agent、SNMP、IPMI
Agent | Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等 |
SNMP | Zabbix通过简单网络管理协议(Simple Network Management Protocol)监控网络设备或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处理接收到的数据 |
Zabbix的常用组件 | |
Zabbix Server | 接收Agent采集数据的核心组件;所有的配置统计数据及操作都由它进行 |
Zabbix Database | 提供数据存储功能,专用于存储配置信息,以及采集到的数据 |
Zabbix Web GUI | 提供Web界面 |
Zabbix Proxy | 当被监控节点较多时,用于减轻Server压力的组件,也用于分布式监控系统。由Proxy接收数据后统一发送至Server |
Zabbix Agent | 部署在被监控主机上,用于采集本地数据 |
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) | 幻灯显示 |
Grafana简介
Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库
Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。 官方支持以下数据源:Graphite、Elasticsearch、InfluxDB、Prometheus、Cloudwatch、MySQL、OpenTSDB和Zabbix等
所需环境
系统 | IP | 名称 | 角色 |
CentOS 7.4 | 192.168.2.14 | zabbix | LAMP、zabbix、grafana(版本8.0) |
CentOS 7.4 | 192.168.2.13 | agent | agent(FTP,Web) |
一、安装zabbix server服务端
[root@zabbix ~]# echo '
192.168.2.14 zabbix
192.168.2.13 agent
' >> /etc/hosts
安装 LAMP 使用本地yum
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate
echo '
192.168.2.14 agent
添加一个网卡连接外网
[root@zabbix ~]# systemctl restart network
[root@zabbix ~]# yum -y install wget
[root@zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
因本地yum安装 有部分安装包没有需要网络yum源 安装 LAMP
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate
[root@zabbix ~]# yum -y install libevent-devel
[root@zabbix ~]# yum install *bcmath* --skip-broken
[root@zabbix ~]# yum install php-mbstring
同步时间
[root@zabbix ~]# yum -y install ntpdate
....
[root@zabbix ~]# ntpdate ntp1.aliyun.com
27 Dec 16:10:33 ntpdate[44367]: adjust time server 120.25.115.20 offset 0.003932 sec
启动myslq
[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zabbix ~]# mysqladmin -u root password 123.com
启动httpd
[root@zabbix ~]# systemctl start httpd
[root@zabbix ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
下载 Zabbix
如果没有提示下载可以使用下面的方式进行下载
[root@zabbix ~]# tar zxvf zabbix-4.4.7.tar.gz
[root@zabbix ~]# cd zabbix-4.4.7
[root@zabbix zabbi