批量检测服务器状态

一个网友反馈批量在腾讯云购买的服务器10台部分连接失败!!这里连接失败特指使用服务器秘钥的方式登录失败。我这边也模拟用户的场景复测了一下一次性购买20台服务器,大概思路:

  • 是先判断端口是否工作正常,如果不正常再来根据情况排查
  • 再来通过脚本批量测试秘钥登录服务器,是否有异常。

这里拆分两块来完成,分别是检测端口是否工作正常和通过秘钥方式来模拟登录服务器。

先确认端口是否工作正常

如何批量检测这些服务器端口是否正常是摆在眼前的一个问题,当然检测服务器端口是否正常有很多方式,哪种是最快的让我想到以下方式推荐大家。
首先下载nc (或叫netcat)

1
yum install nc

编辑以下Shell脚本。

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
port=80
while read line
do
if nc -z -w1 $line $port ;then
echo $line $port "ok"
else
echo $line $port "fail"
fi
done < iplist

nc 命令的参数解释:

  • -z 表示zero,表示扫描时不发送任何数据
  • -w1 超时秒数,后面跟数字

它也可以写成一行

1
if nc -z -w1 ip 80 ;then echo "ok"; else echo "fail"; fi

将要测试的IP放到ipList文件中,然后执行脚本效果如下。

再来确认秘钥登录

这里可以使用expect脚本来实现,脚本如下

1
2
3
4
5
6
7
8
9
#!/usr/bin/expect
set timeout 3
set host [lindex $argv 0]
set command [lindex $argv 1]

spawn ssh -i djangowang.pem root@$host $command
expect "*connecting"
send "yes\r"
interact

参数解释

  • djangowang.pem 为服务器秘钥
  • host为检测服务器IP
  • command 为执行的命令

MacOS 下iterm2 快捷键复制不好用

在MacOS下iterm2通过vim配置Apache配置文件时发现一个问题快捷键 “command + c” 不能复制粘贴!!
起初以为我用的不是Mac键盘是Karabiner-Elements(一款模拟mac键盘的程序)的配置问题导致,但测试在其他程序里并没有此问题,唯独在vim下编辑文件时会出现此问题。 另外网上也有网友说在iterm2直接用鼠标划要复制的文字也可以实现复制的功能,但我还是希望能实现在vim通过快捷键( “ command + c “复制 & “command + v ” 粘贴)来实现复制粘贴的功能。

解决方案
选择iterm2 - > preferences -> profiles -> terminal -> 去掉 “ Enable mouse reporting “ 前面挑。如下截图:

再次在vim下测试command + c 快捷键复制 + command + v粘贴:)

腾讯云务器连接不上如何排查

最近看到一些网友经常会问,购买了云服务器、云MySQL或类似的云产品后无法远程登录应该如何排查?这里笔者以排查云服务器问题为例,整理了一下问题排查思路分为三个过程分别为客户端确认,腾讯云控制台确认和登录服务器确认来介绍(注:按照问题可能的原因进行排序从高到低)同时推荐一些好用的排查问题工具供大家参考。另外如果你有好的思路别忘记给我留言,我会持续更新本文档。

本文内容提供B站在线视频( https://www.bilibili.com/video/BV1564y1u72Z

客户端确认

网络质量排查

首先确认自己的网络环境与云服务器的连接链路网络质量是否有问题,这里通常通过ping命令来确认。以下购买的是一台腾讯云的美国云服务器, ping -c参数代表发送包次数,其中截图1代表云服务器收到icmp包到返回的响应时长单位是毫秒,2代表是否有丢包也就是我发了3个icmp包响应也是三个代表没有丢包。

ping远程服务器的结果,图1

Read More

腾讯云培训认证学习笔记

本文提供视频讲解,详细见地址:https://www.bilibili.com/video/BV1Gi4y1V7vV

写在前面
本文主要介绍“腾讯云认证课”程的学习过程,为什么要学腾讯云认证课程? 如何学习? 适合人群是哪些?以下是本文整个讲解详细的过程:

本文目录结构

为什么学

学习腾讯培训认证有助于快速了解腾讯云产品的一些细节、使用、原理,这里我将从三个方面来介绍:

  • 学习后的感受
  • 学习路径
  • 当前我学到哪

Read More

Linux防火墙介绍

防火墙(iptables)基于Netfilter实现,它在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。

关于Netfilter,它在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。1990年代,Netfilter在Linux 2.3.15版时进入Linux内核。( http://www.netfilter.org/ )

在很多云厂商以腾讯云为例,类似的产品如腾讯云的clb(负载均衡)、安全组和应用防火墙功能 ,开源产品的Nginx(负载均衡,应用层转发)和lvs 这些都可以通过Linux下的防火墙来实现或者也可以说这些产品的原型就是Netfilter的iptables。

整理介绍目录

防火墙的备份与恢复

在玩防火墙命令前建议先备份线上的规则,这是一个非常不错的习惯。
查看当前防火墙规则

1
iptables -L -nv --line 

通过iptables-save + “>” 将当前iptables规则备份在文件中。

1
iptables-save > iptables.2020.10.1

通过iptables-restore命令来恢复之前备份好的防火墙规则

1
iptables-restore < iptables.2020.10.1

防火墙进阶

防火墙基础知识

学习iptables的顺序(Tables(表) -> Chains (链)-> Rules(规则))

表与链

防火墙(iptables) 分为常用的表和链,先介绍三张表分别为:

  • filter 过滤数据
  • nat 转发数据
  • mangle 数据包打标记
    根据每张表的不同常用的链如下:
  • INPUT 用于匹配进入的数据包
  • OUTPUT 用于匹配出的数据包
  • FORWARD 用于匹配转发的数据包
  • PREROUTING 用于匹配NAT之前的数据包
  • POSTROUTING 用于匹配NAT之后的数据包
  • 数据生命周期流程图
    具体每张表对应链使用的场景可以见以下数据转发生命周期的流程图。

Read More

Sysbench测试云MySQL性能

最近看到一个网友在问(请问一下,每天3~4W次的读写,用什么样子的配置比较好,麻烦推荐一个配置,谢谢 MySQL5.7的.)看着应该是一个比较简单的场景,不过笔者通过这问题在想云MySQL不同的配置他的性能究竟如何?如果推荐了这个用户配置后,他的业务又涨了该如何再选择其他的配置? 所以这里我们可以来测试一下云MySQL的性能,从测试数据上看是否可以更好的解答此用户的问题。

本文内容提供了B站视频:https://www.bilibili.com/video/BV1vt4y1U71S

我们使用《高性能MySQL》第二章推荐的工具sysbench( http://sysbench.sourceforge.net )这是一款开源的多线程系统基准测试工具,可以用于测试CPU、内存、磁盘I/O线程和数据库的性能,目前数据库支持MySQL、Oracle和PostgreSQL等常见的数据库。

本文主要介绍以下两个话题:

  • 1.腾讯云MySQL性能测试结果
  • 2.sysbench安装与使用介绍

腾讯云MySQL性能测试结果
以下笔者测试了腾讯云MySQL5.7版本的不同配置服务器对应的指标。为了简化介绍用户场景这里笔者将不同的规格分为三个等级分别为初级、中级和高级(笔者个人的定义),可以看到初级的配置基本可以满足网友的需求,如果用户后续业务增长也可以按照以下做参考。

数据库最有价值的指标TPS,什么是TPS如下。TPS(Transactions Per Second)每秒事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

Read More