【在线课程精华】基于kubernetes平台的Zabbix压力测试
zabbix吧
全部回复
仅看楼主
level 9
Zabbix_中国 楼主
k8s介绍
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
- k8架构
- 本次环境及配置
机器为虚拟机,磁盘为普通的SAS硬盘做RAID1,性能不是太好。
- Zabbix docker官方仓库,目前包括以下镜像
Zabbix部署
- 部署在k8s平台的zabbix架构
Zabbix server和Zabbix web以k8s service形式提供。同时部署二个Zabbix web pod进行负载均衡,Zabbix server只运行一个Pod。
所使用的yaml文件
- zabbix-agent.yaml
- zabbix-agent-stress.yaml
- zabbix-proxy-mysql.yaml
- zabbix-secret.yaml
- zabbix-server-mysql.yaml
- zabbix-svc.yaml
- zabbix-web-apache-mysql.yaml
- zabbix-web-nginx-mysql.yaml
zabbix-agent-stress 为添加了压测模块的agent
zabbix-server-mysql 在zabbix4.0.3版本的zabbix server
zabbix-secret为zabbix数据的的连接账号及密码,采用k8s secret保存,默认账号:zabbix 默认密码:zabbixpwd123
zabbix-svc文件为zabbix server及zabbix web创建k8s service,提供给外部访问
zabbix-web-nginx-mysql 为zabbix前端部署文件
使用的镜像:
hub.c.163.com/canghai809/zabbix-server-mysql:v4.0.3
hub.c.163.com/canghai809/zabbix-web-nginx-mysql:v4.0.3
hub.c.163.com/canghai809/zabbix-agent-stress:v4.0.3
使用的yaml文件:https://dl.cactifans.com/zabbix/zabbix-kubernetes-yaml.tar.gz
数据库导入
下载对应版本的zabbix源码,本文以4.0.3为例子,并创建zabbix数据库文件create.sql
cat database/mysql/schema.sql > create.sql
cat database/mysql/images.sql >> create.sql
cat database/mysql/data.sql >> create.sql
导入zabbix数据库文件create.sql到数据库服务器,并建立用户并授权
create database zabbix;
grant all on zabbix.* to zabbix@'%' identfied by 'zabbixpwd123';
use zabbix;
source /opt/create.sql;
使用yaml部署
下载部署的yaml文件之后在k8s master上执行以下命令进行部署
wget https://dl.cactifans.com/zabbix/zabbix-kubernetes-yaml.tar.gz
tar zxvf zabbix-kubernetes-yaml.tar.gz
kubectl apply -f zabbix/zabbix-svc.yaml
kubectl apply -f zabbix/
即可一键部署Zabbix,即可部署完成。
部署成功后的状态如下
查看Service
可使用任何一个节点ip:30080访问zabbix web,默认账号:Admin 密码:zabbix
2019年01月25日 07点01分 1
level 9
Zabbix_中国 楼主
Zabbix压力测试
- Zabbix日常使用中的疑问
在Zabbix的使用过程中,以下问题是大家经常关心的:
1. Zabbix server每秒可以处理多少指标?
2.Zabbix agent的性能到底如何?
3.如何规划Zabbix数据库的磁盘?
对于这方面的疑问目前较多,网上相关的教程及资料较少,因此依赖与k8s的自动化部署及高伸缩特性,通过不断在增加Zabbix agent,结合压力测试模块对Zabbix server及Zabbix agent进行压力测试。
- 基本架构:
通过k8s的deploy模式部署Zabbix agent,通过Zabbix的自动注册功能,添加到指定的组并关联指定的压力模版
Zabbix 压力测试模块及模版:
github地址为:https://github.com/monitoringartist/zabbix-server-stress-test
提供了压力测试的module,编译之后,利用Zabbix module功能,加载到Zabbix agent,重启agent即可添加。template 目录下提供了压力测试模版:分为主动和被动二种模式,模版每有1k个item,每秒采集一次。还有2个每个包含5k个item的(item过多,不建议使用)模版,导入到Zabbix server。自动发现添加Zabbix 之后关联对应的压力测试模版即可。
在Zabbix上导入模版,分别导入二个模版
Template App Zabbix Server Stress 1k active A.xml 主动模式压力测试模版
Template App Zabbix Server Stress 1k passive A.xml 被动模式压力测试模版
Zabbix 相关参数
以下为本次测试所配置的Zabbix Server参数,其他参数为Zabbix docker默认参数
- name: ZBX_CACHESIZE
value: "1024M"
- name: ZBX_TRENDCACHESIZE
value: "1024M"
- name: ZBX_HISTORYCACHESIZE
value: "2048M"
- name: ZBX_HISTORYINDEXCACHESIZE
value: "1024M"
- name: ZBX_STARTTRAPPERS
value: "50"
- name: ZBX_STARTPREPROCESSORS
value: "300"
- name: ZBX_STARTDBSYNCERS
value: "100"
Zabbix db 为使用rpm包安装,mysql server版本为mysql-community-server-5.7.24-1.el7.x86_64配置参数为
lower_case_table_names=1
character_set_server=utf8
wait_timeout=31536000
interactive_timeout=31536000
max_connections=1000
validate_password_policy=LOW
主动模式测试
建立自动注册动作,并关联主动模式模版,如图:
添加成功之后如下图
添加之后过一会即可看到主机已自动添加到Zabbix server
Zabbix Server及DB 性能
Dashboard
Zabbix Performance Overview
Db iotop
DB TOP
2019年01月25日 07点01分 2
level 9
Zabbix_中国 楼主
被动模式测试
测试主动模式之后,先停止自动注册动作,删除所有agent节点,并修改自动注册关联被动模式模版,并启用,如图:
过一会即可看到agent已自动添加到Zabbix server中并关联了被动压力测试模版
Zabbix Server及DB 性能
Dashboard
Zabbix Performance Overview
Db iotop
Db top
2019年01月25日 08点01分 3
1