IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【星海出品】 运维巡检合集 -> 正文阅读

[系统运维]【星海出品】 运维巡检合集

Ubuntu20.04 每周一次的备份

太重要了,版本

crontab -e

0 0 * * 1 bash /back/xxx,sh

对容器数据库的备份 dump.sh

cd /back
DB_ID=$(docker ps -a | grep mariadb-server | awk '{print $1}')
docker exec ${DB_ID} mysqldump -uroot -p123456 --all-databases > $(date +%Y%m%d).sql

清理日志,尽量不要删除日志文件,鬼知道设置了什么权限。找个空文件给它重定向进去就算清除了。

cat /dev/null > /var/lib/docker/containers/abcd-json.log

查看当前目录下的各目录大小等。很实用

du -lh --max-depth=1

rabbitMQ 之 重要的事情
rabbitMQ因为日志问题导致出错的时候,清理日志后。
会出现一堆错误,这时候优先重启rabbitMQ等一段时间。
时间主要取决于你服务重启的时间是多久。

如果服务有问题了。
那就把服务相关的服务手动重启一下

一个良好的架构设计和运维保障措施,能为OpenStack云平台的稳定健康运行,产生不可估量的积极影响。

一个基本的物理基础设施IT环境,包括了电力设备、空调和防火设备、网络设备(如交换机、路由器、防火墙等)、存储设备和服务器等。

防火墙一定要在核心交换机外。
一般地,在OpenStack生产环境上,交换机端口应该做聚合(channel)。
也就是将2个或多个物理端口组合在一起成为一条逻辑的链路从而增加交换机和网络节点之间的带宽,将属于这几个端口的带宽合并,给端口提供一个几倍于独立端口的独享的高带宽。
Trunk是一种封装技术,它是一条点到点的链路,链路的两端可以都是交换机,也可以是交换机和路由器,还可以是主机和交换机或路由器。

服务器都应该做网卡Bond,来提供服务器网络的冗余、高可用和负载均衡的能力,根据实际需求,可以选择模式0或模式1。
在网络流量较大的场景下推荐使用bond 0;
在可靠性要求较高的场景下推荐使用bond 1

mode=0
bond 0 数据从不同网口发出,可能影响网络吞吐量;
如果bond的两个网口接到同一个交换机上,需要做配置聚合模式。
有无序的问题, 无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

mode=1
bond 1 资源利用率低,在有 N 个slave网络接口的情况下,资源利用率为 1/N ;(主-备份策略)
无负载均衡能力。

如果是多于90台OpenStack节点规模的私有云或公有云环境,则推荐尽量都使用万兆网络。
一般都是千兆网络,因为涉及到机器的创建,镜像不同节点的调度,存储不同节点的调度,如果带宽太小,则需要增加各个环节的等待时长。

bond配置
ubuntu 20.04版本 和以前16的区别很大,16的用的是/etc/network/interfaces配置文件
在20.04中是无效的,必须修改/etc/netplan下的文件,每台机器的yaml文件可能不一样,但是是要是yaml文件都可以配置

network:
  version: 2
  ethernets:
    eth1:
      addresses: []
      dhcp4: no
    eth2:
      addresses: []
      dhcp4: no

  bonds:
    bond0:
      addresses:
        - 192.168.1.88/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 114.114.114.114
      interfaces:
        - eth1
        -  eth2
      parameters:
        mode: balance-alb  #bond模式
 sudo netplan apply

1、mode=0(balance-rr)(平衡抡循环策略)
2、mode=1(active-backup)(主-备份策略)
3、mode=2(balance-xor)(平衡策略)
4、mode=3(broadcast)(广播策略)
5、mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合)
6、mode=5(balance-tlb)(适配器传输负载均衡)
7、mode=6(balance-alb)(适配器适应性负载均衡)

vim  /etc/default/grub
#修改 /etc/default/grub文件,让系统只使用前三个核 隔离其余核。
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31"
#内存配置方面,网易私有云的实践是关闭 KVM 内存共享,打开透明大页:
echo 0 > /sys/kernel/mm/ksm/pages_shared
echo 0 > /sys/kernel/mm/ksm/pages_sharing
echo always > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

这些配置对云主机 CPU 性能大概有7%左右的提升。

日常巡检命令
top -u root #手动指定用户,对他使用的进程进行查看
ps aux | sort -nrk 3,3 | head -n 5 #查看占用最多的前5个进程
ps -C containerd -o %cpu #可以指定进程名,返回他占用的CPU数据

%CPU
2.1

vmstat 是一个命令行实用程序,用于打印有关 CPU 活动、进程、块 IO、磁盘和分页的详细信息。
如果想使用 vmstat 命令以 2 秒的间隔监视系统资源,间隔 5 次。在这种情况下,请使用以下命令:

root@controller:/etc/default# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b 交换 空闲 缓冲 缓存   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 157462496 34918292 28579348    0    0     3     9    0    0  1  1 98  0  0
 0  0      0 157464176 34918292 28579372    0    0     0   188 7201 11580  1  0 99  0  0
 3  0      0 157464928 34918292 28579456    0    0     0   897 7368 11982  1  0 99  0  0
 0  0      0 157465216 34918292 28579516    0    0     4   248 8272 13991  1  0 99  0  0
 2  0      0 157426816 34918292 28579636    0    0     0  2083 19218 50013  3  3 95  0  0

sar命令也可以实现同样的效果

root@controller:/etc/default# sar 3 3
Linux 5.13.0-37-generic (controller)    2022年05月24日  _x86_64_        (48 CPU)

11时34分39秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
11时34分42秒     all      2.04      0.00      1.73      0.00      0.00     96.24
11时34分45秒     all      2.90      0.00      1.22      0.00      0.00     95.88
11时34分48秒     all      3.50      0.00      1.27      0.00      0.00     95.22
平均时间:     all      2.81      0.00      1.41      0.00      0.00     95.78
cat /proc/meminfo
total:内存总数
used:已使用的内存数
free:空闲的内存数
shared:当前已废弃不用
buffers:系统分配但未被使用的缓冲区
cached:系统分配但未被使用的缓存

vmstat也可以查看内存

存储问题
du == disk usage (磁盘使用量,占用的磁盘空间)

通常情况下,ls 显示的文件大小比du显示的磁盘占用空间小
原因:
比如文件系统的block是4K,一个13K的文件占用的空间是 13k/4k = 3.25 个block,一个block只能被一个文件占用,因此实际占用空间就是4个block,就是16K。

一个文件占用的磁盘空间和一个文件的大小是两码事情。占用空间取决于文件系统的块(block)的大小,linux一般默认是4k(4096) ,因此,一个大小为1个字节的文件,最小也要占用4k,如果你创建文件系统的时候制定块大小是16K,那么即便一个文件只有1个字节,占用空间也是16K。

如果一个分区上主要放大文件,那么block可以大一些,有利于减少磁盘碎片,如果主要放小文件,那么block设置小一下,否则太浪费磁盘空间。

网络问题
uniq -c 相当于分组统计并把统计数放在最前面
列出当前服务器每一进程运行的数量,倒序排列

ps -ef | awk -F ' ' '{print $8 " " $9}' |sort | uniq -c |sort -nr |head -20

对比httpd.conf中MaxClients的数字差距多少

netstat -an | grep ESTABLISHED | wc -l

统计httpd进程数

ps -ef|grep httpd|wc -l

netstat -an会打印系统当前网络链接状态,而grep -i “80”是用来提取与80端口有关的连接的,wc -l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数

netstat -nat|grep -i "80"|wc -l

netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。然后wc -l统计

netstat -na|grep ESTABLISHED|wc -l

查看详情

netstat -nat||grep ESTABLISHED|wc

输出每个ip的连接数,以及总的各个状态的连接数

netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

查看TCP的连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 

netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 

netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}' 

netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}' 

netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn 

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
netstat -ant|awk '/ip:80/{split($5,ip,":");++S[ip[1]]}END{for (a in S) print S[a],a}' |sort -n 

netstat -ant|awk '/:80/{split($5,ip,":");++S[ip[1]]}END{for (a in S) print S[a],a}' |sort -rn|head -n 10 

查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

根据端口列出进程

netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1

查找请求数前20个IP(常用于查找攻来源):

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20

查看连接数,和当前连接数

netstat -ant | grep $ip:80 | wc -l 
netstat -ant | grep $ip:80 | grep EST | wc -l

linux当前的连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

连接状态

 netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

小知识1
我的 openstack 日志问题导致了,rabbitMQ出错。
日志删除后,其他服务也出错。原因在于其他服务停的时间长了之后有Token失效了。
需要重启一下heat 和 horizon 和 keystone
如果有其他操作导致了调度机器比如说删除卡住了。先重启了heat和horizon ,然后再重启compute相关服务即可。
小知识2
有个机器一直在创建中,调度日志也没有。卷也没有。重启nova服务都不行。
右边有个强制删除,点击删除后。
显示找不到机器信息,然后就消失了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:29:48  更:2022-06-01 15:32:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 21:12:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码