当前位置:TranBon博客 > 首页 > 技术 > OpenStack云平台日常巡检(一键查询版)

OpenStack云平台日常巡检(一键查询版)

adminis4年前 (2021-02-23)技术42270

由于云平台的监控还没有做好,暂时只能手动排障和日常巡检,目前权限只分配给大客户客服值班人员。


以下操作在生产环境上进行,绝对禁止下载、上传、执行没有经过我批准的命令或者脚本,绝对禁止执行不清楚、不明白、不确定的指令!!!!!!


以下操作,强烈建议在Xshell工具上进行

云平台日常巡检的准备工作:


Step1:ssh到跳板机,即制作OpenStack镜像的机器上。


Step2:在跳板机上ssh到各计算节点:

ssh root@compute0

ssh root@compute1

ssh root@compute2

ssh root@compute3


一:云平台日常巡检-网络流量巡检


Step0:先确认接口连接情况

确定OpenStack节点之间使用哪个接口通信,

命令:

ip addr |grep 10.0.0 |awk  '{print $8}'

显示出来的接口就是计算节点、控制节点、存储节点之间的通信接口,包括迁移,共享存储,镜像传送都通过该接口


确认所有虚拟机通过服务器哪个物理接口连接到公网:

命令:

grep mappings /etc/neutron/plugins/ml2/Linuxbridge_agent.ini |cut -f 2 -d = |cut -f 2 -d :

显示出来的接口就是所有虚拟机通过该接口连接到公网


Step1:查看各计算节点所有网卡的实时流量情况,使用键盘左右键切换

nload -m


第一页通常是物理接口,不需要理会


虚拟机的网卡是tap开头的

比如

tap22b50e6c-26


如果你认为没有问题,到此结束,请直接跳到下面第二章节云平台日常巡检-CPU占用巡检


假设tap22b50e6c-26流量异常,把当前屏幕的内容复制到记事本,方便复制粘贴

20210223060831161403171132876.png




定义环境变量,替换红色部分,每查询一台虚拟机都要替换一次:

instance_netif=tap22b50e6c-26


定义其他环境变量,每查询一台虚拟机都要重新执行一次:

instance_id=`virsh domstats |grep -E -i "Domain|$instance_netif" |sed -n '{/name=/{g;p}};h' |cut -f 2 -d : |sed 's/^..//' |sed 's/.$//'` && instance_uuid=`virsh dumpxml $instance_id |grep /uuid |cut -f 2 -d \> |cut -f 1 -d \<` && instance_psid=`ps -ef |grep  qemu |grep $instance_id | awk '{print $2}' |head -1`



Step2:查看该虚拟机对应的资产号和IP


加载变量环境:

. ~/admin-openrc


命令:

openstack server list |awk ' $2=="'$instance_uuid'" || NR==2 '


执行结果,看到资产号和IP地址

+--------------------------------------+-----------------------+-----------+-----------------------+-----------------------------------------+

| ID                                   | Name                  | Status    | Networks              | Image Name                              |

| 7bc6447c-f428-4d90-8407-0d1cb3c0a1ef | VPS-180514001        | ACTIVE    | 59.37.83=59.37.83.174 | Centos6.5_x64_Q312636100_yuan           |


Step3:查询该虚拟机的网络流量:


命令:

nload $instance_netif

Incoming表示下载

Outgoing表示上传


查看网络连接详细情况:

nethogs $instance_netif


查虚拟Mac地址,如果有必要

virsh domiflist $instance_id |grep tap | awk '{print $5}'


Step4:查看该虚拟机的物理CPU占用率:

查看该虚拟机占用的物理CPU

top -p $instance_psid


Step5:查看该虚拟机内存使用情况

命令:

virsh dommemstat $instance_id |sed -n 6,7p


unused 表示未使用的内存,单位Kbyte,如果想转为M,除以1024

available 表示虚拟机总内存,单位Kbyte,如果想转为M,除以1024


Step6:查看该虚拟机硬盘使用情况

du -sh /var/lib/nova/instances/$instance_uuid/

如果是10k以下的,证明客户数据放在远程卷里,随时可以热迁移。

如果是很大的数据,证明客户数据放在/var/lib/nova/instances里,目前这个目录是挂在本地硬盘的,所以只能关机迁移。未来这个目录会挂成共享的,不用关机就可以迁移。


Step7:查完后记得及时退出,防止窗口误操作

命令:

exit


二:云平台日常巡检-CPU占用巡检


Step1:先看物理机的CPU利用情况:

命令:

top


执行结果:

top - 10:51:27 up 3 days, 22:39,  1 user,  load average: 5.23, 4.81, 4.69

Tasks: 562 total,   2 running, 560 sleeping,   0 stopped,   0 zombie

%Cpu(s):  6.4 us,  1.6 sy,  0.0 ni, 91.7 id, 0.3 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem : 98785056 total, 34372128 free, 62469140 used,  1943784 buff/cache

KiB Swap:  4190204 total,  3748348 free,   441856 used. 35534888 avail Mem


PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

2942 qemu      20   0 4977832   3.8g  11892 S 105.9  4.0   5411:48 qemu-KVM                                                                                                              

4485 qemu      20   0 5053132   3.9g  12040 S  58.8  4.2 930:25.20 qemu-kvm

32817 qemu      20   0 5153192   3.8g  11992 S  23.5  4.0 454:05.48 qemu-kvm



留意四个参数:

0.3 wa表示磁盘IO,最理想情况下是0.0,数值越高,表明磁盘越忙碌

PID号,确认是不是qemu-kvm进程,即KVM虚拟机的进程。

105.9%表示该虚拟机消耗的CPU,如果该虚拟机是2核,CPU利用最高可达200%


如果你认为没有问题,巡检到此结束。



假设你认为PID号为2942的虚拟机有问题,接下来开始排障


定义环境变量,替换红色部分,每查询一台虚拟机都要替换一次:

instance_psid=2942


定义其他环境变量,每查询一台虚拟机都要重新执行一次:

instance_id=`ps -ef |grep $instance_psid |grep uuid |cut -f 1 -d , |cut -f 2 -d =` && instance_uuid=`virsh dumpxml $instance_id |grep /uuid |cut -f 2 -d \> |cut -f 1 -d \<` && instance_netif=`virsh domiflist $instance_id |sed -n 3p |awk '{print $1}'`



Step2:查看该虚拟机内存使用情况

命令:

virsh dommemstat $instance_id |sed -n 6,7p

uunused 未使用的内存,单位Kbyte,如果想转为M,除以1024

available 虚拟机总内存,单位Kbyte,如果想转为M,除以1024


Step3:查看该虚拟机对应的资产号和IP:

载入环境变量命令:

. ~/admin-openrc


命令:

openstack server list |awk ' $2=="'$instance_uuid'" || NR==2 '


执行结果

+--------------------------------------+-----------------------+-----------+-----------------------+-----------------------------------------+

| ID                                   | Name                  | Status    | Networks              | Image Name                              |

| 4219fce8-ae9e-404e-b4e4-47b69bfb66b5 | VPS-180605007         | ACTIVE    | 59.37.83=59.37.83.187 |                                         |


Step4:查看该虚拟机的实时流量:

命令:

nload $instance_netif

Incoming表示下载

Outgoing表示上传


查看网络连接详细情况:

nethogs $instance_netif


查询虚拟机的MAC地址:

virsh domiflist $instance_id |grep tap | awk '{print $5}'


Step5:查看该虚拟机硬盘使用情况

du -sh /var/lib/nova/instances/$instance_uuid/

如果是10k以下的,证明客户数据放在远程卷里,随时可以热迁移。

如果是很大的数据,证明客户数据放在/var/lib/nova/instances里,目前这个目录是挂在本地硬盘的,所以只能关机迁移。未来这个目录会挂成共享的,不用关机就可以迁移。


Step6:查完后记得及时退出,防止窗口误操作

命令:

exit


三:根据用户的反馈进行排障

最快的方式是直接问客户拿密码进入虚拟机查询,


当客户不能提供用户名和密码时,用以下方法查询


比如客户的IP是59.37.83.180


Step1:到网页界面查询该IP是哪台计算节点的

然后进入该计算节点,加载环境变量:

命令:

. admin-openrc


定义环境变量,替换红色部分,每查询一台虚拟机都要替换一次:

instance_ipadd=59.37.83.180


定义其他环境变量,每查询一台虚拟机都要重新执行一次:

命令:

instance_uuid=`openstack server list |grep $instance_ipadd | awk '{print $2}'` && instance_psid=`ps -ef |grep  qemu |grep $instance_uuid | awk '{print $2}' |head -1` && instance_id=`ps -ef |grep  qemu |grep $instance_uuid | awk '{print $10}' |cut  -f 2 -d = |cut -f 1 -d ,` && instance_netif=`virsh domiflist $instance_id |grep tap | awk '{print $1}'`


Step2:查询该虚拟机占用物理机CPU的情况

top -p $instance_psid


Step3:查看该虚拟机内存使用情况

命令:

virsh dommemstat $instance_id |sed -n 6,7p

unused 未使用的内存,单位Kbyte,如果想转为M,除以1024

available 虚拟机总内存,单位Kbyte,如果想转为M,除以1024


Step4:查看该虚拟机的实时流量:

命令:

nload $instance_netif

Incoming表示下载

Outgoing表示上传


查看网络连接详细情况:

nethogs $instance_netif


Step5:查看该虚拟机硬盘使用情况

du -sh /var/lib/nova/instances/$instance_uuid/

如果是10k以下的,证明客户数据放在远程卷里,随时可以热迁移。

如果是很大的数据,证明客户数据放在/var/lib/nova/instances里,目前这个目录是挂在本地硬盘的,所以只能关机迁移。未来这个目录会挂成共享的,不用关机就可以迁移。


Step6:查完后记得及时退出,防止窗口误操作

命令:

exit


有道云笔记  https://note.youdao.com/ynoteshare/index.html?id=c6132292aedeb904d66a1490696dceee

第2条随机版权
文章免责声明
尊敬的读者:

本文所提供的信息、观点及数据均来源于公开资料、相关研究报告及个人理解,仅供读者参考。本文不代表任何官方立场或专业机构的意见,亦不构成任何投资建议或决策依据。

在撰写本文时,我们已尽力确保信息的准确性和完整性,但鉴于信息来源的多样性及可能存在的误差,我们无法保证本文所述内容在任何时刻都绝对准确无误。因此,读者在阅读本文时,应结合自身实际情况及专业知识,进行独立分析和判断。

对于因本文信息不准确、不完整或读者自身理解偏差而导致的任何损失或损害,我们概不负责。同时,我们也不承担因本文所述内容引发的任何法律责任或纠纷。

此外,本文可能包含对特定公司、行业或市场的分析和预测,这些分析和预测均基于当前市场环境及可获得的信息,并可能受到多种因素的影响而发生变化。因此,读者在参考本文时,应充分考虑这些潜在的风险和不确定性。

我们鼓励读者在阅读本文后,进一步查阅相关资料和咨询专业人士,以获取更全面、准确的信息和建议。同时,我们也欢迎读者就本文内容提出宝贵的意见和建议,以便我们不断改进和提升文章质量。

最后,感谢读者对本文的关注和阅读。我们希望通过提供有价值的信息和观点,为读者在相关领域的学习和决策提供一定的帮助和参考。但请务必记住,本文所述内容仅供参考,不构成任何具体建议或承诺。

特此声明。

扫描二维码推送至手机访问。

版权声明:本文由TranBon博客发布,如需转载请注明出处。

本文链接:http://1.tranbon.com/?id=286

“OpenStack云平台日常巡检(一键查询版)” 的相关文章

SSR 一键部署脚本

一个逗比写的逗比脚本ssr.sh脚本说明: ShadowsocksR 一键安装/管理脚本,支持单端口/多端口切换和管理系统支持: CentOS6+ / Debian6+ / Ubuntu14+使用方法: https://doub.io/ss-jc42/项目地址: https://...

centos7破密时提示Authentication token manipulation error

centos7破密时提示Authentication token manipulation error

需要在passwd 前输入chattr -i /etc/passwd chattr -i /etc/shadow如下:...

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos手动安装mysql没有my.cnf配置文件时,1.可以从其它服务器把my.cnf文件拷贝到需要的服务器上,2.可以touch创建my.cnf文件这边是直接使用touch命令my.cnf文件的,创建在/etc/目录下[root@host ~]#  touch&...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。