您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
使用 Zabbix + Grafana 搭建服务器监控系统
 
作者: xinxi
   次浏览      
 2020-6-22
 
编辑推荐:
本文是其在实际工作项目中的服务器监控从 0 到 1 实战总结,对Zabbix + Grafana 原理介绍,环境安装以及配置都做了详细描述,希望对您的学习有所帮助。
本文来自于知乎,由火龙果软件Alice编辑、推荐。

前言

搭建 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 端 .

原理介绍

Agentd 安装在被监控的主机上,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, 出现如下页面说明安装成功 .

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

配置

修改语言

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

zabbix-agent 配置

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

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

配置 zabbix-agent 需要其容器内的 ip 地址 , 可以通过

docker exec -it zabbix-agent-b ip addr 命令查看 .

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

此时添加了两台 zabbix-agent.

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

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

添加监控数据

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

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

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

Grafana

简介

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

配置

安装 grafana

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

使用 docker 启动 grafana.

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.

安装 zabbix 插件

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

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

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

zabbix 数据源

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

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

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

grafana 面板

在 Dashboards 中新建一个面板 .

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

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

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

Host=zabbix-agent-service-a

Application=Memory

Item=Available memory

grafana 使用模版

在 https://grafana.com/dashboards 中提供很多第三方模版 , 使用 Dashboard Servers Linux 这个模版

复制模版的 id.

配置模版信息 .

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

结语

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

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

 

 
   
次浏览       
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理
 
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
DevOps 道法术器,立体化实施框架
DevOps 中高效测试基础架构的最佳实践
DevOps 在公司项目中的实践落地
如何基于 Kubernetes 构建完整的 DevOps 流水线
阿里云Kubernetes实战
最新课程
DevOps体系实践、工具与平台
基于Kubernetes的DevOps实践
互联网运维与DevOps
基于Kubernetes构建企业容器云
企业级DevOps工作体系与平台
更多...   
成功案例
北京 DevOps体系实践、工具与平台
神龙汽车 DevOps体系实践、工具与平台
中国移动通信 网络规划与管理
某航空公司 IT规划与企业架构
某金融公司 IT服务管理(ITIL V3)
更多...