自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 【无标题】厉害

2023-12-15 19:34:51 373

原创 listtt

2022-11-18 11:08:09 199

原创 Dockerfile

1、git clone 、build and run应该能满足2、build and run by local jar本地jar包试下

2021-12-11 09:31:22 438

原创 shell curl 压测

#!/bin/basha=0for i in {1..600}:do sleep 1 echo $[$(date +%s%N)/1000000] for i in {1..1000}; do curl --insecure -L -v -k -H 'Content-Type: application/json' -H 'test_uuid: xhwtest' -X POST --data '{"microservice":"test","groupId":"KAFKA","m.

2021-08-01 15:02:56 1439

原创 Etcd Unable to attach or mount volumes

1.etcd报错日志如下:Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedMount 42m (x4 ...

2020-03-31 17:23:04 12368 1

原创 Openstack对接EMC商业存储scaleio

1 控制节点修改cinder.conf:[DEFAULT]enabled_backends = scaleio[scaleio]volume_driver = cinder.volume.drivers.emc.scaleio.ScaleIODrivervolume_backend_name = scaleiosan_ip = 111.88.50.11sio_protection_domain_n...

2020-02-23 18:15:34 319

原创 通过fio压测rbd设备,提高Ceph集群的IOPS

一.fio安装1.下载fiofio 官网地址:http://freshmeat.net/projects/fio/wgethttp://brick.kernel.dk/snaps/fio-2.0.7.tar.gz2.确认ceph-devel-compat是否安装[root@node-2 fio]# rpm -qa | grep ceph-devel-compatceph...

2020-02-23 18:11:25 937

原创 Centos 配置go运行及delve调试开发环境

1. 下载并解压go安装包到 /usr/local/目录wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gztar -C /usr/local/ -xzf go1.12.5.linux-amd64.tar.gz2. 创建环境变量,并生效(1) vim /etc/profile.d/go.sh(2) export P...

2020-02-23 18:05:33 3774

原创 raid1降级恢复获取实时状态

1. 拔除节点的一块缓存盘后,将缓存盘从盘架拆卸,放置于移动硬盘盒中2. 将移动硬盘盒连接到具备windows的操作系统的机器上3. 进入windows磁盘管理器,将新插入的缓存盘中的所有分区依次删除4. 新建分区,然后再删除分区(新建分区会执行整个磁盘的格式化)5. 从移动硬盘盒中将磁盘拆下,重新安装到硬盘架,然后插回对应节点6. 进入对应节点,查看磁盘状态: /op...

2020-01-16 15:29:41 1187

原创 RAID0 拔盘重建

问题背景:在一个物理节点上,两个做成单盘raid0的osd数据盘:sdd、sde,直接拔掉两个数据盘交换插槽位置插入。发现系统无法识别到硬盘了。再把两个盘拔出,只将sdd插回它原先的插槽位置,发现sdd依然无法被系统识别到。问题定位:登陆到发生该问题的物理节点环境,先使用如下命令查看raid卡上的所有物理硬盘设备情况: /opt/MegaRAID/MegaCli/MegaCli64 -P...

2020-01-16 15:24:33 1237 2

原创 从容器里umount 一个/dev/rbd设备

背景:  (1) 我们的平台docker默认的挂载方式是MountFlags=slave, 该挂载方式的一个特性是:一旦某个container的以这种方式挂载后启动后,则host节点的信息变动,不会再同步到container里 (2) 因为节点监控数据采集工具node-exporter, 需要挂载host节点的根目录,若以MountFlags=slave的方式挂载,会导致节点...

2020-01-15 19:11:26 1347

原创 Alertmanager 告警的mute和unmute

1.通过Alertmanager的api mute全部告警#!/usr/bin/env python# -*- coding: utf-8 -*-# Usage: python mute_alerts.pyimport jsonimport requestsimport timeroot_url = "http://alerts-engine:9093"comment ...

2019-12-23 16:41:51 2010

原创 暂停mariadb虚拟网卡

1.获取mariadb主控节点的ip[root@node-1 tmp]# kubectl get ep -n openstack -o wide | grep marimariadb 10.233.64.131:3306 4dmariad...

2019-12-18 00:10:31 118

原创 Rabbitmq的一些场景构建

1.节点消息队列服务发生异常rabbitmqadmin -u rabbitmq -p 77jJ4gwo -H rabbitmq list exchanges| grep reply| awk '{print $2}'| while read line ; do rabbitmqadmin -u rabbitmq -p 77jJ4gwo -H rabbitmq delete exchange ...

2019-12-18 00:06:48 122

原创 通过 by-path 对应 盘符和 OSD_ID

当前平台:在K8s上部署了Ceph,由Ceph生成的磁盘用途有两种:缓存盘和数据盘背景说明:每个数据盘都会对应一个OSD_ID,而缓存盘是一种特殊的数据盘需求:监控页面需要展示各种用途的磁盘的总容量和已使用量,而数据盘(缓存盘)的OSD_ID和盘符之间的关系,需要通过/dev/disk/by-path/pci××× 来对应方法:(1) 获取该节点的所有数据盘和缓存盘pod[r...

2019-12-18 00:06:15 1801 2

原创 RAID1拔掉一个盘恢复步骤

流程如下1.格式化拔掉的这个盘,并插入到原槽位[root@node-1 ~]# /opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aALLEnclosure Device ID: 252Slot Number: 6Enclosure position: N/ADevice Id: 14WWN: 55cd2e4150226499Sequenc...

2019-12-18 00:05:30 8765

原创 服务器非正常关机(意外掉电、强制拔电)后 etcd 数据损坏,如何恢复etcd集群

问题描述:服务器非正常关机(意外掉电、强制拔电)后 etcd 数据损坏。通过下述现象3或者4能确定是出现了数据损坏问题;现象1和2是表象。现象:1、因为当前kube-apiserver 是跟本地的 etcd 通信,etcd 数据损坏会导致 apiserver无法启动;通过在正常节点执行kubectl get pod --namespace kube-system|grep apiserve...

2019-12-18 00:04:37 3338 1

原创 Prometheus源码系列:通知管理(notifierManager)

Prometheus会在配置文件定义一些告警规则表达式, 当采集的metrics经过聚合, 满足告警表达式条件, 将触发告警, 发送给告警服务Alertmanager. 所以,本文主要分析与Alertmanager交互的通知管理(notifierManager), 但会先梳理下规则管理(ruleManager)的部分内容. 因为告警规则的最终判断是由规则管理(rule...

2019-12-17 00:49:59 668

原创 Prometheus源码系列:指标采集(scrapeManager)

指标采集(scrapeManager)简介   从上篇文章:Prometheus源码系列:服务发现 (serviceDiscover),我们已经知道,为了从服务发现(serviceDiscover)实时获取监控服务(targets),指标采集(scrapeManager)通过协程把管道(chan)获取来的服务(targets)存进一个map类型:map[string][]*targetgr...

2019-12-11 23:38:01 2817

原创 Prometheus源码系列:指标缓存(scrapeCache)

  Prometheus通过scrapeManager抓取的指标(metrics)可通过本地TSDB时序数据库存储,简单高效,但无法持久化数据.所以,可根据需求,选择本地存储或远端存储.本文不涉及存储的具体实现,而是分析指标(metrics)在存储前合法性校验,即指标缓存层(scrapeCache).  由上文Prometheus源码系列:指标采集(scrapeManager)可知,scrap...

2019-12-09 20:00:18 3841

原创 openstack-helm 环境配置

1.配置pip源[root@xhw alertsaver]# cat /root/.pip/pip.conf[global]timeout=60index-url=https://pypi.doubanio.com/simpletrusted-host=pypi.doubanio.com12.生成虚拟环境virtualenv .envsource .env/bin/ac...

2019-11-28 13:25:28 1661

原创 Prometheus源码系列:服务发现 (serviceDiscover)

服务发现 (serviceDiscover)简介   Prometheus采用pull方式拉取监控数据,需要实时感知被监控服务(Target)的变化.服务发现(serviceDiscover)支持多种服务发现系统,这些系统可以动态感知被监控的服务(Target)的变化,把变化的被监控服务(Target)转换为targetgroup.Group的结构,通过管道up发送个服务发现(serv...

2019-11-12 20:11:23 2049

原创 Prometheus.yml配置文件示例

# my global configglobal: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The defau...

2019-11-05 22:56:43 12478

原创 Prometheus源码系列: 启动过程分析

Prometheus 启动过程中,主要包含服务组件初始化,服务组件配置应用及启动各个服务组件三个部分,下面基于版本v2.7.1,详细分析这三部分内容1.服务组件初始化(1) Storage组件初始化  Prometheus的Storage组件是时序数据库,包含两个:localStorage和remoteStorage.localStorage当前版本指TSDB,用于对metrics的...

2019-11-04 20:51:51 3071

原创 打开30900端口

1. 查看跳转机ip[root@node-2 ~]# ip a show br-pub13: br-pub: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether 26:78:e9:13:76:49 brd ff:ff:ff:ff:ff:ff...

2019-10-22 14:01:23 1233

原创 麒麟环境配置IPMI

1. 安装ipmitool和openipmiapt-get install -y ipmitool openipmi2. 修改/etc/modprobe.d/gfw-ipmi.conf,满足以下输出cat /etc/modprobe.d/gfw-ipmi.conf options ipmi_si type="kcs" addrs=0x80020000CA2 regspacing...

2019-10-17 17:38:40 1720

原创 Container 挂载目录报错: /rootfs/dev/termination-log: read-only file system

解析问题思路:1. 首先,我们要先了解一个事实:docker 在使用 -v 来挂载 data volume 时,不论是在 host 端还是container 内部,若是其文档或是目录不存在,则会自动建立它2.可以复现问题的命令下法,复现 read-only 的报错信息$ docker run \-v /dev:/dev:ro \-v /root/termination-lo...

2019-08-28 16:43:06 2029

原创 k8s container日志报错: 10250 dial tcp lookup on server misbehaving

1. 修改/etc/resolv.conf[root@master ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 10.8.1.6其中ip是kubelet启动地址2. 修改/etc/hosts, 添加对应的域名解析[root@master ~]# kubectl get nodesNAM...

2019-08-26 17:17:01 8171

原创 ceph df中的max avail取值

1. 获取OSD容量[root@node-3 ~]# ceph osd dfID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS 1 hdd 0.12303 1.00000 106GiB 14.6GiB 91.4GiB 13.81 0.73 256 3 hdd 0.12303 1.00000 10...

2019-08-12 12:21:47 897

原创 Docker 通过 run 和 exec 进入同一个Container

需求:自己build了一个image,希望通过docker命令多终端进入到同一个Container,有助于调试1. 环境如下:[root@xhw delve]# docker imagesREPOSITORY TAG IMAGE ID CREATED ...

2019-07-31 20:34:23 876

原创 Centos 7 mail定时发送邮件

需求:(1) 因为公司有多个分部A,B,C,每个分部都是内网IP,其中有个分部C,没有对外的vpn,而我就在C里.所以,若每次出差在外,想连到C环境,分部C需要有个服务器Server_1,连接分部B的vpn, 出差地有服务器Sever_2也连接分部B的vpn,这样,两台服务器及都在分部B的网络里,就可联通(2) 因为分部C的网络每天0点准时重启,会导致Server_1的vpn重试,ip会发...

2019-07-10 21:23:19 663

原创 获取 rabbitmq 实时数据

以下列举了一些典型的rabbitmq实时数据1. 获取rabbitmq的consumer数目,以下为了节省空间,只显示多少列,实际需要把列出的所有值相加# rabbitmqctl list_channels consumer_countListing channels ...00003131...........# rabbitmqctl list_cha...

2019-07-01 17:16:33 3508

原创 kubernetes 查看pod 对应的容器日志

1.pod若处于运行状态,则通过kubectl logs 即可[root@node-1 ~]# kubectl logs node-exporter-2f5ll -c node-exporter -n openstacktime="2019-06-26T01:00:30Z" level=info msg="Starting node_exporter (version=0.15.0, br...

2019-06-29 16:29:13 14496

原创 Ceph 压测相关整理

1.压测Ceph带宽数据指的是硬盘或设备(路由器/交换机)在传输数据的时候数据流的速度(1) 在rbd pool创建一个test块设备,大小为100G,这个大小可以超过pool本身大小,因为是瘦分配.[root@node-1 ~]# rbd create rbd/test2 --size 100G --object-size 4M --image-feature layering -...

2019-06-25 16:16:12 1578 2

原创 prometheus PromQL 内置函数

1. increase 函数该函数只能作用于计数器类型(counters),只增不减计算磁盘的IO延迟increase(node_disk_io_time_ms{host_ip=~".+"}[2m]) / (increase(node_disk_reads_completed[2m]) + increase(node_disk_writes_completed[2m])) * 100...

2019-06-18 20:34:13 4344

原创 Ceph 三副本 触发recovery

环境配置,三个节点,Ceph三副本查看Ceph最小副本数[root@node-1 ~]# ceph osd dump | grep -E " size | min_size "pool 1 '.rgw.root' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_...

2019-06-14 13:40:45 1518

原创 商业存储对接整理

scaleio[DEFAULT]enabled_backends = ceph,scaleio[scaleio]volume_driver = cinder.volume.drivers.emc.scaleio.ScaleIODrivervolume_backend_name = scaleiosan_ip = 111.88.50.11sio_protection_domain_n...

2019-05-28 16:19:21 473

原创 k8s daemonset 的节点选择

需求:daemonset正常是在每个节点已agent形式部署,现因节点node-1出现问题,为了不blocked 正常升级,部署的时候,把这个节点排除在外.方法:通过nodeSelector形式,在除了node-1的节点上,打上标签,然后在daemonset里添加nodeSelector操作步骤如下:(1) 查看每个节点标签kubectl get nodes --show-lab...

2019-05-23 15:19:49 3825

原创 python logging 设置

logging 日志需求(1) 设置LEVEL(2) 设置日志输出包含文件名,函数名,行数等.(3) 设置日志对应的输出时间(4) 设置日志追加的日志文件(5) 限定日志文件的大小,若超过,则备份成新文件,新文件个数限定为1代码如下:import logging.handlers# Init loggingLOG = logging.getLogger('no...

2019-05-09 19:40:09 527

原创 CPU和Memory压力测试方法

一:用原生Centos自带的工具1. CPU下面命令会创建 CPU 负荷,方法是通过压缩随机数据并将结果发送到 /dev/null:cat /dev/urandom | gzip -9 &gt; /dev/null如果你想要更大的负荷,或者系统有多个核,那么只需要对数据进行压缩和解压就行了,像这样:cat /dev/urandom | gzip -9 | gzip -d ...

2019-01-31 10:35:16 8642

空空如也

空空如也

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

TA关注的人

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