使用 Zabbix + Grafana 搭建服务器监控系统

搭建 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.6container_name: zabbix-server-servicerestart: alwaysports:- "8081:80"environment:- ZS_DBHost=192.168.1.103- ZS_DBUser=root- ZS_DBPassword=123321zabbix-agent-a:image: zabbix/zabbix-agent:ubuntu-3.2.6links: - zabbix-server-service:zabbixserverhostcontainer_name: zabbix-agent-arestart: alwaysdepends_on:- zabbix-server-serviceenvironment:- ZBX_HOSTNAME=zabbix-agent-service-a- ZBX_SERVER_HOST=zabbixserverhostzabbix-agent-b:image: zabbix/zabbix-agent:ubuntu-3.2.6links: - zabbix-server-service:zabbixserverhostcontainer_name: zabbix-agent-brestart: alwaysdepends_on:- zabbix-server-serviceenvironment:- 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-appdocker 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 服务器监控在实际工作中大部分是运维的工作 , 随着测试工程师的职责越来越广了 , 测试运维这个岗位也会在以后的工作中慢慢展开 .

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文字的baseLine算法

使用canvas的drawText方法时候,除了要传入画笔和text还需要传入一个x坐标和y坐标。这边的x和y坐标是Baseline的坐标。 public void drawText(NonNull String text, float x, float y, NonNull Paint paint) {super.drawText(text, x, y, paint);} top:是 baseLine到…

mysql B+树索引

数据库索引用于提高查询性能和数据访问效率。索引可以加速数据的查找和筛选,减少查询的时间复杂度。数据库索引有很多类型,这里不展开也不比较,只介绍最常见一种索引结构B树索引。mysql中InnoDB引擎默认使用的就是BTREE索引。 B树数据结构 …

ubuntu设置每天定时关机

ubuntu设置每天定时关机 终端输入命令: sudo crontab -e输入密码,回车。 我这里使用nano作为编辑器,你可以选择vim。 在末尾输入以下命令: 59 23 * * * sudo -u root shutdown now设置:每天23:59分,电脑…

GitHub图床TyporaPicGo相关配置

本文作者: slience_me 文章目录 GitHub图床&Typora&PicGo相关配置1. Github配置2. picGo配置3. Typora配置 GitHub图床&Typora&PicGo相关配置 关于Typora旧版的百度网盘下载路径 链接:https://pan.baidu.com/s/12mq-dMqWnRRoreGo4MTbKg?…

SiamRPN代码研读

SiamRPN 1、概述 SiamRPN 是一种用于视觉目标跟踪的算法。它结合了 Siamese 网络(孪生网络)和 Region Proposal Network(区域提议网络)的概念。这种算法的主要目的是在视频序列中准确地跟踪单个目标。下面是它的一些关键特点&…

linux内核源码编译

centos7环境 iso选择 https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 自带qemu,未实测是否可用 选择编译版本2.6 下载地址 遇到的编译错误解决 yum list | grep curses yum install ncurses-devel.x86_64 -y yum i…

python爬取图片(thumbURL和html文件标签分别爬取)

当查看源代码,发现网址在thumbURL之后时,用此代码: # 当查看源代码,发现网址在thumbURL之后时,用此代码:import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121…

SQL Povit函数使用及实例

PIVOT函数常用于数据的行转列&#xff0c;同时也可以用此函数实现类似于Excel中的数据透视表的效果。 PIVOT函数 PIVOT 函数的基本语法如下&#xff1a; -- PIVOT 语法 SELECT <非透视的列>,[第一个透视的列] AS <列名称>,[第二个透视的列] AS <列名称>,.…

在iPhone或iPad和Windows PC之间复制和粘贴文本的几种方法,总有一种适合你

复制和粘贴文本一直是计算机和移动设备中最酷的省时功能之一。但这个过程的工作方式因你使用的设备和操作系统而异。 在iPhone(或iPad)和Mac之间复制和粘贴相对快速而简单。还有几个选项用于在Android设备和Windows之间移动内容。但是,如果你想在iPhone和Windows之间复制和…

旅游项目day07

目的地攻略展示 根据目的地和主题查询攻略 攻略条件查询 攻略排行分析 推荐排行榜&#xff1a;点赞数收藏数 取前十名 热门排行榜&#xff1a;评论数浏览数 取前十名 浏览数跟评论数差距过大&#xff0c;可设置不同权重&#xff0c;例如&#xff1a;将浏览数权重设置为0.3…

在微信公众号中加入ChatGPT聊天的方法

1 介绍 开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用&#xff0c;这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的&#xff0c;因此用户只需拥有一部手机&#xff0c;就可以在任何环境下与 ChatGPT 进行交流。例如&am…

linux下vsc的自动切换输入法解决方案

前言 个人使用的是Linux开发加上vsc编辑器&#xff0c;这两个东西一加中国开发者大致上就消失不见了&#xff0c;眼馋idea那个Smartinput很久了&#xff0c;赶上放假了&#xff0c;有空搞搞&#xff0c;如果后期有心情会做的通用点 安装 商店搜索SmartInputLinux安装 使用…

链表回文结构

链表回文结构 编写一个函数&#xff0c;检查输入的链表是否是回文的。 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 链表的回文结构&#xff0c;应该先找到中间节…

【Copula】最可能场景详解

基于Copula联合分布的最可能场景详解 最可能场景&#xff08;The most-likely scenario&#xff09;实例探讨参考 最可能场景&#xff08;The most-likely scenario&#xff09; 相应英文介绍原理介绍如下&#xff1a;&#xff08;出自论文J2020-Drought hazard transferabilit…

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

Helm Dashboard 通过提供图形用户界面&#xff0c;使在 Kubernetes 中管理 Helm 版本变得更加容易&#xff0c;这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本&#xff0c;并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…

通过代理如何调通openai的api

调通openai的api 一、前提二、通过curl调通openai的api三、通过python调通openai的api 一、前提 会魔法上网本地运行代理软件&#xff0c;知道端口号&#xff08;如1081&#xff09;。 127.0.0.1:1081二、通过curl调通openai的api 如果在国外&#xff0c;没有qiang&#xff…

ChatGLM3报错:No chat template is defined for this tokenizer

使用官方提供的脚本创建ChatGLM3的DEMO&#xff1a; cd basic_demo python web_demo_gradio.py 出现效果异常问题&#xff1a; conversation [{role: user, content: 你好}, {role: assistant, content: 你好&#xff0c;有什么我可以帮助你的吗&#xff1f;\n\n<|im_end|…

23号资源——电力系统程序集合已提供下载资源

23号资源&#xff1a;程序集合包含9个程序&#xff08;经典电力系统经济调度程序&#xff1b;2解决带储&#xff1b;3智能微电网PSO优化算法&#xff1b;微电网调度等等&#xff0c;见资源描述&#xff09;资源-CSDN文库https://download.csdn.net/download/LIANG674027206/887…

docker安装 mysql 8.0.32

首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭 命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld 如果不想重启虚拟机 可以执行 systemctl stop mysqld //指定版本 docker pull mysql:8.0.32 // 拉取最新的…

【linux】ps的基本使用

ps是linux中用于显示进程的工具&#xff0c;确切来说是显示活动进程的工具 ps的基本格式是 ps [选项] sh-3.2# ps --help ps: illegal option -- - usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]][-g grp[,grp...]] [-u [uid,uid...]][-p pid[,pid..…