随笔分类 - 运维&环境
测试需要的运维知识
摘要:什么是minikube? minikube是单机版的kubernetes,主要用于方便个人学习和研究K8s。 你仅需要一些一些容器环境(例如docker)或者虚拟机环境,然后在此之上使用minikube start就可以启动K8s。 环境依赖: 2核以上CPU 2GB以上内存 20GB可用的存储空间
阅读全文
摘要:背景 最近使用ansible管理项目部署,有个前端的配置项是类似字典类的配置,其值如{‘memu1’:['/test1','/test2']},在ansible渲染后模板配置项变成了{u'memu1’:[u'/test1',u'/test2']}。 问题过程 假设ansible中某配置文件的模板如下
阅读全文
摘要:背景 公司的项目全部由pm2管理,有一天不知道什么原因,利用pm2 list查看APP列表,发现有几个服务处于STOP状态,我尝试使用:pm2 start all 结果报错:[PM2][ERROR] Process 1021 not found 解决方法 直接删除报错的app id即可,如:pm2
阅读全文
摘要:背景 我在自己Macbook上使用homebrew安装telegraf。 执行:brew install telegraf,然后报错了:Error: Permission denied @ apply2files - /usr/local/opt/openssl/ssl/man/man3/HMAC.
阅读全文
摘要:前言 Telegraf 是一个用 Go 编写的用于收集机器数据的代理程序。它可部署到机器上收集系统和服务的统计数据,并通过配置写入到 InfluxDB 数据库,然后在通过Grafana或者Chrongraf用于数据展示。 核心功能 完全由GO编写,编译产物仅为一个二进制程序,安装运行无需外部依赖 运
阅读全文
摘要:背景 最近公司的项目中使用rocketmq,部署方式为多master-多slave。项目上线一周后,有一天调用方的开发突然找我,说我们的MQ服务的请求调用有延时。 我登陆到broker的机器上查看了broker的store.log,发现pagacache的大部分响应都在0~50ms,有部分请求在10
阅读全文
摘要:背景 项目中使用到了pm2,用于管理微服务的启停,我在相关机器上安装好了pm2,然后使用ansible进行批量启动服务。在使用ansible的shell模块执行远程命令时候却报了错:/bin/sh: pm2 :command not found,如下图 问题定位 1. 在被执行机器上查看pm2命令,
阅读全文
摘要:前言 如果你想在mac下动态截屏,选款工具强?当然是kap! 项目地址:https://github.com/wulkano/Kap 下载 1) homebrewCask安装(不推荐) brew cask install kap 2)官网release下载(太慢了) https://github.c
阅读全文
摘要:背景 最近公司的网络不稳定,本地电脑访问公司内网的环境老是超时,请教了下组内的老前辈,得知可以通过使用ssh的socket5代理,通过隧道的方式走通。 如图,我本机机器到ServerA的延时较低,但是直接访问ServerB延时较高(A和B之间网络结构关系不明),这样可以在A与B通过ssh实现sock
阅读全文
摘要:背景 公司的机器上安装了某些node包有冲突,这时候我想去清理一下现有的node包缓存,重新去安装一下node包,但是node_module的目录在哪个路径呢? 解决方法 1. 查看node_modules的目录,执行:npm root -g 2. 查看npm的可执行文件所在目录:npm bin -
阅读全文
摘要:前言 Elasticsearch Curator是一款ES索引(或快照)的清理神器,可以帮你轻松管理ES中的索引和快照,整体实现过程如下: 从ES集群中获取索引或者快照,作为待执行列表 通过用户定义的filters(过滤器)从待执行列表中删除索引或者快照 通过待执行列表,可以为其定义各种各样的处理动
阅读全文
摘要:背景 最近用vue写一个项目,在服务器上用npm运行该vue项目的时候,执行npm run serve,整个过程执行到一半报错了:Error: ENOSPC: System limit for number of file watchers reached 原因 查了一下,是linux系统的限制导致
阅读全文
摘要:前言 在项目中写了一个MQTT的客户端小程序,用于测试MQTTServer的连接数上限,运行了一段时间后报错:Cannot assign requested address 网上查了下"Cannot assign requested address"指的是linux系统无法继续为客户端分配端口了(已
阅读全文
摘要:背景 最近我所在项目的进程管理工具从supervisor切换到pm2了,原因之一是因为长期二者兼容导致维护成本过大。后来经过和研发同学沟通,最终选择统一成pm2,因为pm2在windows下也可以对进程进行管理,方便他们在windows本地开发环境起服务调试。 supervisor的进程配置文件中自
阅读全文
摘要:背景 最近在项目中需要编译arm架构的某驱动docker镜像,但是手头上没有现成的arm架构的机器环境,于是在网上搜索了下如何在x86机器模拟arm环境来进行编译。我找到了一款神器:multiarch/qemu-user-static 简介 项目地址:https://github.com/multi
阅读全文
摘要:简介 上文介绍了ansible的shell模块,今天要为大家分享的是command模块和raw模块的使用。 command和raw模块和shell一样,都是用于执行shell命令,三者都不具备幂等性,如果有能替代的ansible模块,尽量不要说使用该模块。 对比 模块 用途 特点 shell 均用于
阅读全文
摘要:简介 shell模块是ansible里面比较常用的模块。顾名思义,shell模块用于执行shell命令。我们利用ansible批量在多台机器上执行shell命令,该模块非常的简单粗暴。 对于ansible很多模块,都可以用shell替代达到相对应的效果。 虽然shell模块看起来非常万能,但存在着许
阅读全文
摘要:背景 项目中搭建了一套集群环境,整个集群机器的网络可用性通过一个shell脚本来进行监控。该脚本在检测网络连通性失败的情况下会打印错误日志并发送邮件通知给相关人员。那如何使用linux命令来发送邮件呢? 这里找到了一个好工具:mailx。 简介 Mailx is an intelligent mai
阅读全文
摘要:前言 最近在用go编译某gomod管理的项目时,由于是新安装的go环境(参考go环境安装),在编译的时候出现了三个问题: 1. go的proxy超时: dial tcp 34.64.4.17:443: i/o timeout 2. go get读取用户名失败:terminal prompts dis
阅读全文
摘要:背景 在后端服务运行过程中,有时会遇到一个时间不同步的问题,即服务器时间对比当前时间会有滞后或超前。 这种时间不同步导致某些软件服务问题,例如: 1. 服务日志打印的时间不准,导致查问题比较麻烦。 2. 在服务写入数据到数据库或者其他中间件的时候,时间戳不对,导致页面显示异常 3. 集群化服务在不同
阅读全文

浙公网安备 33010602011771号