技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统
创始人
2024-03-18 20:29:23

搭建 Linux 服务器监控的目的是防止以下现象:自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死。

所以基于这个痛点,想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习 Linux 服务器监控系统 , 还是打算自己搭建一套。

当然 Linux 服务器监控也有很多,Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

所以基于 Zabbix+Grafana 打造服务器监控系统。

Zabbix

模块介绍

  • Zabbix Server: 负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。

  • Zabbix Agent: 部署在被监控主机上,负责收集本地数据发往 Server 端或 Proxy 端。

  • Database Storage:用户存储所有配置信息,以及存储由 Zabbix Server 收集到的数据。

  • Web Interface:Zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上。

  • Zabbix Proxy:常用于分布监控环境中,代理 Server 收集部分被监控的监控数据并统一发往 Server 端。

原理介绍

Agent 安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送至 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。

当 Zabbix 监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install 等)。

环境安装

Zabbix 需要 zabbix-server、zabbix-agent、mysql。其中 mysql 已经在本机安装了,在 dockercompose 文件中 写上对应的 host、user、pwd 即可。

在 MySQL 中创建 Zabbix 数据库 , 为了后期储存数据使用。

使用 Docker 安装 zabbix,dockercompose 文件如下:

 
 

version: '2' services: zabbix-server-service: image: monitoringartist/zabbix-xxl:3.2.6 container_name: zabbix-server-service restart: always ports: - "8081:80" environment: - ZS_DBHost=192.168.1.103 - ZS_DBUser=root - ZS_DBPassword=123321 zabbix-agent-a: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-a restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-a - ZBX_SERVER_HOST=zabbixserverhost zabbix-agent-b: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-b restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-b - ZBX_SERVER_HOST=zabbixserverhost

启动命令:

 
 

docker-compose up -d

查看日志命令:

 
 

docker logs -f zabbix-server-service

大概启动后 1 到 2 分钟登录 zabbix web 地址 http://127.0.0.1:80801, 出现如下页面说明安装成功。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

默认账号:Admin,密码:zabbix,登录后出现如下页面。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置

修改语言

默认的语言是英文的 , 点击头像后展示修改语言选项 , 选择中文并且更新即可。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

zabbix-agent 配置

之前配置两个 zabbix-agent-a 和 zabbix-agent-b,所以要添加两个 zabbix-agent 来采集数据并发送给 zabbix-server。

在配置,选择主机,创建主机。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置 zabbix-agent 需要其容器内的 ip 地址 , 可以通过 docker exec -it zabbix-agent-b ip addr 命令查看。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在创建页面填写其 ip 和选择群组 , 点击保存即可。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

此时添加了两台 zabbix-agent。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

另外还需要给 zabbix-agent 配置监控模版 , 在模版中选择 Template OS Linux 并且添加即可。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置模版完成后 , 在主机列表中 ZBX 显示绿色说明添加完成。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

添加监控数据

在首页仪表盘上 , 选择常用的图形。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在创建页面选择 zabbix-agent-server-b 主机和 cpu jumps 监控项。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

监控数据可以控制缩放比例和时间段。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

Grafana

简介

grafana 是一个跨平台的开源的度量分析和可视化工具 , 可以通过将采集的数据查询然后可视化的展示。

配置

安装 grafana

可以使用 grafana 展示 zabbix 的数据 , 制作图表展示。

使用 docker 启动 grafana。

1、docker run -d --name=grafana2 -p 7777:3000 -v /var/lib/grafana:/var/lib/grafana grafana/grafana:3.0.4

启动镜像完成后 , 等大概 1 到 2 分钟 , 在浏览器访问:http://127.0.0.1:7777。 默认账号和密码都是 admin。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

安装 zabbix 插件

安装 zabbix 插件 , 进入 grafana 容器执行如下命令

 
 

docker exec -it grafana /bin/bash 进入容器 grafana-cli plugins install alexanderzobnin-zabbix-app docker restart grafana 重启容器

在插件中的 app 中 , 出现 zabbix 说明 zabbix 插件安装成功。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

zabbix 数据源

在 Data Sources 中新增一个数据源。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

数据源配置:type=Zabbix、url、Zabbix 的账号、Zabbix 的密码。

url 格式为:http://ip:8081/api_jsonrpc.php

编辑切换为居中

添加图片注释,不超过 140 字(可选)

grafana 面板

在 Dashboards 中新建一个面板。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

把 Panel data source 数据源改成 zabbix 数据源。

可用内存设置面板中参数如下:

Group=Linux servers (这个参数在 zabbix 设置过)

Host=zabbix-agent-service-a

Application=Memory

Item=Available memory

编辑切换为居中

添加图片注释,不超过 140 字(可选)

grafana 使用模版

在 Dashboards | Grafana Labs 中提供很多第三方模版 , 使用 Dashboard Servers Linux 这个模版

编辑切换为居中

添加图片注释,不超过 140 字(可选)

复制模版的 id

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置模版信息

编辑切换为居中

添加图片注释,不超过 140 字(可选)

最终在一个面板中展示了当前 CPU、内存等,相对原始的数据展示更加直观。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

结语

Linux 服务器监控在实际工作中大部分是运维的工作,随着测试工程师的职责越来越广了,测试运维这个岗位也会在以后的工作中慢慢展开。

另外像测试组自己的服务器和在压测中使用的压测机器,也可以搭建监控系统来监控数据。

参考文章

  • Zabbix 官方文档 1 登陆和配置用户

  • Docker 实战之二:zabbix 监控其他机器 Docker实战之二:zabbix监控其他机器_菲宇的博客-CSDN博客_dockerzabbix监控物理机

  • Docker 部署 ELK、grafana、zabbix docker部署ELK、grafana、zabbix_zhy的技术博客_51CTO博客

  • Grafana + Zabbix — 部署分布式监控系统 Grafana + Zabbix --- 部署分布式监控系统 - ﹏猴子请来的救兵 - 博客园

  • Docker 运行 grafana 与 zabbix 结合 腾讯云 产业智变·云启未来 - 腾讯

  • Zabbix server+agent+proxy 搭建性能监控平台 zabbix server+agent+proxy搭建性能监控平台_(.*)释然的博客-CSDN博客_zabbix server agent proxy

  • Grafana 插件 Zabbix plugin for Grafana | Grafana Labs

  • Grafana 模版 Dashboards | Grafana Labs

  • (end)

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...