自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月光游侠

主要是一些自己的学习笔记

  • 博客(51)
  • 资源 (3)
  • 收藏
  • 关注

原创 grafana-server 启动碰到 failed to create log directory 的 permission denied 问题

1 问题描述在 centos7 上安装了 grafana-enterprise-8.3.3,然后修改了 /etc/grafana/grafana.ini 里面关于 log -> /home/log/grafana 和 grafana data -> /home/grafana, 然后启动 grafana (systemctl start grafana-server),结果 grafana 启动失败,提示错误信息如下:Failed to start grafana. error: faile

2022-01-06 19:39:00 3210

原创 容器限速和流量采集03-golang实现

1 docker-tc实现上可参考github上的 lukaszlach/docker-tc。lukaszlach/docker-tc 提供了一个通过监听 docker event 来为对应容器做限速的方法,但是只支持 bridge 模式下的下行限速。本方案采用 golang 来是实现容器限速和流量采集,支持对 bridge host模式下容器限速,支持上行和下行限速,支持多网口限速。用户只需要在需要限速的容器配置对应的 --label "com.docker-tc.enabled=1" 启动参数即可。

2021-12-31 19:02:15 1636 2

原创 容器限速和流量采集02-TC-Traffic Control

1 应用场景tc(Traffic Control) 顾名思义主要用来做流量控制的,linux 内核支持的 Traffic Control 主要包括:流量整形(SHAPING)、流量调度(SCHEDULING)、策略(POLICING)、丢弃(DROPPING)。policing 和 dropping 主要是在入方向 ingress 做,shaping 和 scheduling 在 出方向 egress 方向做。在 linux 需要做带宽限速或 qos 的可以使用 tc 来实现。2 Traffic Con

2021-12-31 18:44:46 5974

原创 容器限速和流量采集01-Namespace和Cgroup

1 应用场景在提供容器化PAAS服务的场景下,跟公有云场景下对于VM的需求类似,我们需要能够限制容器 对于网络、磁盘、CPU以及内存的使用,避免某个容器对资源的占用过高导致影响其他容器使用的情况。目前直接使用 docker 原生的 cgroup 对磁盘、CPU以及内存资源使用进行限制基本够用。但是对于网络的使用限制,需要自己来实现。容器化PAAS服务需要对宿主机上跑的各个业务容器做宽带限速和宽带流量进行计费。宿主机的网络有单网口和多网口接入两种类型,宿主机上配置的容器的network也需要支持 host和

2021-12-31 18:37:06 970

原创 macos vscode golang import linux下软件包失败问题解决

问题描述在 macos vscode 做 golang 编程,需要引用 netlink 这个软件包,由于 netlink 的实现在不同操作系统下差异较大, netlink 库 build 是区分操作系统的,我需要应用 linux 环境下的版本,但是 vscode 提示没有找到对应的 package , 如果是 linux 操作系统下使用 vscode 则没有这个问题。应该是 vscode 会根据自身操作系统去引用 netlink 对应内核版本的 package 导致的。解决方法在 vscode 的配置

2021-12-01 12:13:01 353

原创 golang数据库迁移工具golang-migrate使用

1 项目地址https://github.com/golang-migrate/migrate2 使用情景一些项目功能会涉及到数据库和代码逻辑的修改,对于数据库的修改,虽然 gorm 之类的工具能够在代码里面适配大部分情况,但是不能覆盖所有数据库变更情况,而且也不够清晰。为清楚表示某次代码提交设计的数据库的修改并且方便 devops 部署服务,可以使用 golang-migrate 这样的工具明确的标识对于数据的某次修改,可以对这些修改做部署和回滚。使用 golang-migrate 有两种方式,一

2021-11-02 11:21:27 7550

原创 k8s 使用 calico 作为 CNI ,calico-node 启动失败

1 问题描述k8s 集群,使用 calico 作为 CNI,calico 的安装配置参考 https://docs.projectcalico.org/getting-started/kubernetes/hardway/overview。 calico 需要 k8s 运行 calico-node 的 daemonset 在每个node 上运行一个 calico-node,calico-node 里面包括了Felix,BIRD,confd组件。calico-node 是 node 上网络能够正常使用的必要

2021-10-29 17:08:56 8754

原创 prometheus-community-PushProx介绍

prometheus-community-PushProx介绍1. pushprox 应用场景2. 架构3. 部署和测试3.1. 组件3.2. proxy 对 client 进行 TLS 认证3.2.1. 生成支持 SAN 的自签名证书3.2.2. 启动 pushprox-proxy3.2.3. 配置 nginx3.2.4. 启动 client3.2.5. 启动 prometheus4. 代码走读4.1. 代码目录4.2. client 的代码4.3. proxy 的代码5. proxy 和 client

2021-10-13 20:45:36 1524

原创 Prometheus pod 流量监控

1 问题描述监控某个服务对应 pod 的流量,将 pod 的流量呈现在 dashboard 上,并且作为监控告警的依据。2 解决办法kube-state-metrics 是 K8S 官方项目,会采集pod、deployment等资源的元信息。使用 container_network_receive_bytes_total container_network_transmit_bytes_total 来检索进出 pod 的流量。由于 pod 可能会重启,这样检索出来的数据可能会分成多个段,可以简单的使用

2021-02-04 20:30:11 5428

原创 Prometheus 编写告警规则应对 metric 丢失的问题

问题描述Prometheus 很重要的一个功能是监控告警,比如一个服务 X 暴露了两个 metric:A,B,我们需要 metricA 的取值是 0 或 1,当 metricA == 1 时,说明业务有问题,需要触发告警。当服务 X 一直运行是上面的告警逻辑容易实现,expr: X{metric="metricA"} == 1 即可搞定。实际情况是,服务 X 本身可能挂掉,导致 prometheus 在服务 X 挂掉这段时间收到的 metricA 是缺失的,这个时候告警规则就不好写了,针对某些 metri

2021-02-03 20:35:30 3755 4

原创 RTSP 鉴权认证

RTSP 的认证基本认证 basic authentication和摘要认证 digest authentication。摘要认证是 http 1.1 提出的基本认证的替代方案,其消息经过 MD5 哈希转换因此具有更高的安全性。交互过程DESCRIBE 环节,客户发送与不需要认证一样的请求。服务器端返回401错误,提示未认证,并且在响应报文里面返回 nonce 。DESCRIBE Requ...

2019-11-25 21:10:31 3543

原创 H.264 编码基础知识

说明,以下内容很多参考 从零了解H.264结构基本资料H.264,又称为MPEG-4第10部分,高级视频编码(英语:MPEG-4 Part 10, Advanced Video Coding,缩写为MPEG-4 AVC)是一种面向块,基于运动补偿的视频编码标准。由ITU-T视频编码专家组与ISO/IEC联合工作组开发。H.264 协议标准ITU-T H.264H.264 : Advan...

2019-11-24 21:15:54 1814

原创 以 File 的方式挂载 Configmap 中的配置

layout: posttitle: 以 File 的方式挂载 Configmap 中的配置categories: kubernetesdescription: 以 File 的方式挂载 Configmap 中的配置keywords: kubernetes, configmap, file配置文件挂载到 K8s 的 Pod 中有多种方式,可以用 hostPath 的方式将配置文件挂载到...

2019-11-19 19:30:48 1631

原创 Wireshark 保存过滤后的报文

定位问题或是了解某个协议的时候,经常会用到 Wireshark 抓包,然后进行分析。 Wireshark 抓包通常是指定某个网络接口,抓取这个网络接口的所有流量,这个时候抓的包经常会有一些杂音,需要剔除的,这个时候需要用到 Wireshark 的过滤功能,通常会根据 IP 或是端口来进行过滤。如果需要保存过滤后的报文为单独的文件,以便后续分析使用,可以使用 Wireshark 的 “Export ...

2019-11-07 21:27:25 10960

原创 Golang调试工具Delve使用简介

Delve 是一款很不错的 Golang 调试工具,可以实现类似 Visual Studio 的断点调试功能,也可以用来在程序 Crash 的时候生成 Coredump 文件,此外 Delve 也适合用于调试 Web Server。Delve 项目Github链接安装 Delvego get -u github.com/go-delve/delve/cmd/dlvDelve 常用命令...

2019-11-07 21:20:56 2704

原创 kubectl exec 遇到 unable to upgrade connection Forbidden 的解决办法

通过 Kubernetes 进行业务部署时,经常需要登陆到 Pod 里面进行调试,这个时候可以用 kubectl exec 命令来登陆到 Pod 里面进行操作。比如使用这个命令:kubectl exec 123456-7890 -c ruby-container -i -t -- bash可以登陆到 Pod=123456-789, container=ruby-container。由于我使...

2019-11-07 21:15:20 12000 2

原创 kubectl exec 遇到 unable to upgrade connection Forbidden 的解决办法

通过Kubernetes进行业务部署时,经常需要登陆到Pod里面进行调试,这个时候可以用kubectlexec命令来登陆到Pod里面进行操作。比如使用这个命令:```bashkubectlexec123456-7890-cruby-container-i-t--bash```可以登陆到Pod=123456-789,container=ruby-...

2019-11-07 21:12:18 913

转载 wireshark过滤语法总结

做应用识别这一块经常要对应用产生的数据流量进行分析。抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑子记不住东西)wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤。对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如tc

2013-12-24 16:38:16 581

转载 Wireshark基本介绍和学习TCP三次握手

记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网络数据包,可以清晰的看到数据包中的每一个字段。更能加深我们对网络协议的理解。对我而言, wireshark 是学习网络协议最好的工具。 阅读目录wireshark介绍w

2013-12-24 15:24:04 494

转载 Ubuntu下实现双网卡负载均衡

什么是bondingLinux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余。bonding的工作模式bonding一共有7种工作模式0:(balance-rr)Round-robin policy: (平衡轮询策略):传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。1:(active-

2013-11-11 10:08:21 2184

转载 ubuntu ntp时间同步服务器搭建与使用

ubuntu server ntp时间同步服务器安装及使用一、服务端1 apt-get install ntp2 安装后默认启动服务,如果没有启动,启动之。 /etc/init.d/ntp start3 vi /etc/ntp.conf 修改为如下restrict default nomodify notrap noqueryrestrict 127.0.0.1re

2013-11-07 15:52:00 1750

转载 Ubuntu Server 12.04 更新源

Ubuntu Server 12.04 官方的源代码更新比较慢,所以更替成国内的源。163源 deb http://mirrors.163.com/ubuntu/ precise main restricteddeb-src http://mirrors.163.com/ubuntu/ precise main restricteddeb http://mirrors.163.co

2013-11-06 10:55:24 538

转载 Ubuntu Server 12.04“初始化月份字符串出错”的解决方法

在登录到系统后ls -l总是提示“初始化月份字符串出错”,解决方法整理如下:引用sudo vi /var/lib/locales/supported.d/local#将文件内容修改如下:en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8zh_CN.GBK GBKzh_CN GB2312引用sudo locale-gen

2013-11-04 17:51:49 646

转载 Ubuntu下的计划任务 -- cron的基本知识

cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多。 想要让cron执行你指定的任务,首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要运行的命令。你可以以下命令 Shell代码  crontab -e  cro

2013-10-30 12:07:11 450

转载 到底要下载哪个?ubuntu-releases 镜像详解

有不少的朋友通过网站的评论、微博、Q群上问,Ubuntu 镜像列表的网页里面,到底要下载哪个文件?上面是我截取的,Ubuntu 12.04 的163镜像发布网页,地址在:http://mirrors.163.com/ubuntu-releases/12.04/我们可以看到,前面有几个文件:FOOTER.html      30-Mar-2012 00:55      27HEA

2013-10-12 15:32:26 6889

转载 oauth2开放认证协议原理及案例分析

之前翻译过一篇 OAuth认证协议原理分析及使用方法,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了。像淘宝、腾讯、人人网、百度开放平台就已经采用Oauth2,新浪微博也发来邮件说是要很快上马OAuth2,彻底替换掉OAuth1.1。目前OAuth2到了v20草稿阶段,最新的版本是 2011年7月25号发布的,协议变化还是

2013-07-09 17:20:23 613

转载 OAuth认证协议原理分析及使用方法

twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,比如像 feedtwitter rss2twitter 推特中文圈(这个目前好像有点问题转回来的时候是个错误地址) 这种网站就是这个效果。其实这都是拜 OAuth所赐。OAuth是什么?OAuth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单

2013-07-09 17:19:24 399

转载 Installing from a distribution package

Installing from sourceTo build uWSGI you need Python and a C compiler (gcc andclang aresupported). Depending on the languages you wish to support you will need theirdevelopment headers. On a Debia

2013-07-01 10:33:27 754

转载 Windows下route命令的用法

当一台电脑上有多个网卡、多条线路的时候,可以使用route命令来制定特定网段使用特定的线路,加快访问速度。1. route命令的基本用法ROUTE [-f] [-p] [-4|-6] command [destination] [MASK mask] [gateway] [METRIC metric] [IF interface][-f] 清除所有网关项的路由表。这个参数慎用。[-

2013-06-27 11:40:32 2882

转载 supervisor - Python进程管理工具

经常会碰到要写一些守护进程,简单做法放入后台:shell> nohup python xxx.py &偶尔这么做还可以接受,如果一堆这样的呢?当然还有一个问题,就是各种服务,对应的命令或者路径都不太一致,比如Apache、MySQL或者其他自行编译的工具。如果可以统一管理这些应用,是不是很哈皮?按照惯例现Google一把,不失所望找到一个神奇的利器。superviso

2013-06-20 16:29:58 786

转载 Ubuntu 12.04 下部署 Nginx+uWSGI+Flask

Flask本身就可以直接启动HTTP服务器,但是受限于管理、部署、性能等问题,在生产环境中,我们一般不会使用Flask自身所带的HTTP服务器。从现在已有的实践来看,对于Flask,比较好的部署方式是使用uWSGI做WSGI容器,Nginx做前端服务器。这样做的好处在于:1. uWSGI性能好,提供的功能也很多,运维方便。2. Nginx对于静态文件处理较好,而且默认支持uWS

2013-06-18 10:56:04 890

原创 centos上配置uwsgi

1、安装uwsig先下载uwsgi,下载地址:http://uwsgi-docs.readthedocs.org/en/latest/Download.html下载后解压缩,然后安装uwsgi:pip install uwsgi2、应用新建python脚本test.pydef application(env, start_response): s

2013-06-18 09:43:41 902

转载 CentOS 6下安装nginx

1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.htmlwget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm2 安装这个rpm包rpm -ivh nginx-releas

2013-06-17 17:11:53 486

转载 Flask+uWSGI+Nginx部署过程

转载时请以超链接形式标明文章原始出处和作者信息及本声明http://blackgu.blogbus.com/logs/171363164.html这两天一直在纠结地部署Flask+uWSGI+Nginx,也许是因为我领悟能力有问题,这个部署过程研究了整整一天,看了很多文档,其他开发人员写的部署的博客,但是发现都写得不够好,有些细节没提及,导致走了些弯路,所以我写了这篇blog,给后面在

2013-06-17 11:33:10 1255

转载 SELinux相关操作

SELinux是个经过安全强化的Linux操作系统,实际上,基本上原来的运用软件没有必要修改就能在它上面运行。真正做了特别修改的RPM包只要50 多个。像文件系统EXT3都是经过了扩展。对于一些原有的命令也进行了扩展,另外还增加了一些新的命令,接下来我们就来看看这些命令。文件操作1)ls命令在命令后加个 -Z 或者加 –context[root@python azureus]# l

2013-06-09 11:13:47 702

转载 盘点 “互联网女皇” 看好的20家创新公司

来源: 新浪科技KPCB著名分析师、“互联网女皇”玛丽·米克美国科技博客BusinessInsider今天撰文,按照类别汇总了KPCB著名分析师、“互联网女皇”玛丽·米克(Mary Meeker)在最新的互联网趋势报告中提及的20家革命性创业公司,它们有可能改造图片分享、移动支付、创意开发、教育等众多领域。以下为文章全文:  1、改造图片Snapchat是一

2013-06-08 17:34:26 726

转载 CentOS下配置iptables防火墙

在CentOS下配置iptables防火墙,是非常必要的。来我们学习如何配置!在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件:vi /etc/sysconfig/iptables 通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:1.修改vi /etc/sysconfig/iptables

2013-06-07 15:06:21 545

转载 应用体验 CentOS 6.2下搭建Web服务器(apache+mysql+php)

CentOS是企业Linux发行版领头羊Red Hat Enterprise Linux(以下称之为RHEL)的再编译版本,RHEL是很多企业采用的linux发行版本,需要向RedHat付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。这个CentOS可以像REHL一样的构筑linux系统环境,但不需要向RedHat付任何的费用,同样也得不到任何有偿技术支持和升级服务。    由于出

2013-06-07 14:45:37 709

转载 CentOs下Apache配置全过程

⒈ 源码包安装httpd。⑴、静态默认安装,命令如下:完成后,先查询安装了那些模块命令如下:再看模块是否激活,如下图:可见模块没有被激活,若想添加模块了,可用如下命令加载:接着可看到模块被加载激活了,如下:⑵、动态安装且加载所有模块,命令如下:完成后可以看到模块安装加载情况如下:通过对比,推荐安装时采取动态完全安装。⒉ apache配

2013-06-06 10:16:25 579

转载 app store下载慢解决办法

手机上修改DNS为:电信的将你的手机或者电脑上的无线的DNS改为178.79.131.110或者是168.95.1.1(台湾中华电信的DNS),联通的DNS则改为114.114.114.114。但是我电信手机上修改为178.79.131.110-168.95.1.1(电信)  ,却比以前更加慢。改为114.114.114.114(联通)却是达到最高速。

2013-06-01 15:29:36 1563

PHP, MySQL, and JavaScript 学习手册

PHP MySQL JavaScript 经典组合。入门级英文原版。

2012-08-24

Linux宝典2010版

Wiley.Linux.Bible.2010.Edition,英文文字版。很经典的操作系统书了。

2012-08-24

Cisco IOS Cookbook 中文精简版

Cisco IOS Cookbook 的中文精简版,简单明了,需要有一定网络基础。

2012-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除