编辑推荐: |
本文主要基于zabbix+grafana打造服务器监控系统,对zabbix+grafana的模块原理以及配置分别进行详细的介绍。
本文来自于TesterHome,由火龙果软件Alice编辑、推荐。 |
|
前言
搭建linux服务器监控的目的是自己有一台阿里云服务器内存是2g的,多开一些软件就会把内存和cpu使用率弄的很高,最终导致服务器卡死.
所以基于这个痛点,想知道当前的cpu和内存是多少.阿里云ecs控制台中也提供对服务器的监控,但是为了学习linux服务器监控系统,还是打算自己搭建一套.
当然linux服务器监控也有很多,zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.
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 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服务器监控在实际工作中大部分是运维的工作,随着测试工程师的职责越来越广了,测试运维这个岗位也会在以后的工作中慢慢展开.
另外像测试组自己的服务器和在压测中使用的压测机器,也可以搭建监控系统来监控数据.
|