zabbix监控

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

监控基本介绍:

使用 SNMP 协议获取主机 CPU、内存、磁盘、网卡流量等数据.

用脚本将获取到的 SNMP 数据存入数据库中,然后再使用一种名为 MRTG 的软件根据获取的数据绘制图表来分析数据的变化。MRTG(Multi Router Traffic Grapher),顾名思义,这款软件最初是设计用于监控网络链路流量负载的。它可以用过 SNMP 获取到设备的流量信息,并根据这些信息绘制成图表并保存为 PNG 格式的图片,再将这些 PNG 图片以HTML 页面的方式显示给用户。用户能够非常直观的一图标的形式观察系统的运行状况,并提供了多样化报警设置。

一.zabbix架构图
image

二.zabbix组件
zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4、Proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;

三.相关术语
主机(host):要监控的网络设备,可由IP或DNS名称指定;
主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
报警媒介类型(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
前端(frontend):Zabbix的web接口

四.监控流程
一个监控系统运行的大概的流程是这样的:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。

【主动监测】通信过程如下:
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active items数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:
获取ACTIVE ITEMS列表
• Agent打开TCP连接
• Agent请求items检测列表
• Server返回items列表
• Agent 处理响应
• 关闭TCP连接
• Agent开始收集数据
主动检测提交数据过程如下:
• Agent建立TCP连接
• Agent提交items列表收集的数据
• Server处理数据,并返回响应状态
• 关闭TCP连接

【被动监测】通信过程如下:
• Server打开一个TCP连接
• Server发送请求agent.pingn
• Agent接收到请求并且响应
• Server处理接收到的数据1
• 关闭TCP连接
从以上过程我们可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。
还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:
1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。
2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

安装zabbix-server

# yum -y install zabbix-web zabbix-web-mysql zabbix-agent mariadb-server zabbix-get zabbix-server-mysql httpd
# service mariadb start
# mysqladmin -uroot password 123
# mysql -u root -p123

mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
mysql> q

导入zabbix表

# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
# gunzip create.sql.gz
# mysql -u zabbix -pzabbix -D zabbix < create.sql

配置zabbix连接数据库

# vim /etc/zabbix/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

# service zabbix-server start

Starting Zabbix server: [ OK ]

# vim /etc/httpd/conf.d/zabbix.conf


Options FollowSymLinks
AllowOverride None

Apache 2.4

Require all granted

Apache 2.2

Order allow,deny
Allow from all

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai

# service httpd restart
# chkconfig httpd on

安装完成后,使用浏览器访问,进行安装设置
http://zabbix-server-ip/zabbix

image
image
image

用户名: admin
密码: zabbix

Zabbix-agent安装

# yum -y install zabbix zabbix-agent

agent配置

# vim /etc/zabbix/zabbix_agentd.conf

Server=6.6.6.13 被动模式 zabbix-server-ip
ServerActive=6.6.6.13 主动模式 zabbix-server-ip
Hostname=web1 稍后在zabbix-server端添加主机时使用同样的名称,建议使用$HOSTNAME

# service zabbix-agent start

Starting Zabbix agent: [ OK ]

# chkconfig zabbix-agent on

======================================
zabbix agent检测分为主动(agent active)和被动(agent)两种形式,主动与被动的说法均是相对于agent来讨论的。简单说明一下主动与被动的区别如下:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。

至此zabbix安装完成,简单设置后即可实现基本的监控工单,具体的设置如下:

Host Groups(主机组) ->
Hosts(主机) ->
Templates(模板){模板内有众多Applications应用集也就是监控项组}->
Items (监控项,添加监控项后可添加图形) ->
Triggers(触发器,监控项可以选择性关联触发器)->
Actions (告警动作)->
Medias (告警方式)->
User Groups(用户组)->
Users(用户)

主机组->主机->监控项->图形->触发器->动作 <-报警媒介类型,用户

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
4月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
77 4
|
4月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
136 0
|
7月前
|
监控 前端开发 JavaScript
Zabbix分布式监控Web监控
Zabbix分布式监控Web监控
81 0
|
6月前
|
监控 关系型数据库 MySQL
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2
|
6月前
|
监控
zabbix如何添加自定义监控项
zabbix如何添加自定义监控项
261 0
|
2月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
|
4月前
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
233 0
|
4月前
|
监控 Java
Zabbix【部署 02】Zabbix-Java-Gateway安装配置使用(使用Zabbix-Java-Gateway通过JMX监控Java应用程序实例分享)
Zabbix【部署 02】Zabbix-Java-Gateway安装配置使用(使用Zabbix-Java-Gateway通过JMX监控Java应用程序实例分享)
89 0