云运维工程师

一、管理岗职责

1、运维制度建设

2、指定运维规划与策略

3、明确运维职责划分

4、运维质量管理

5、监督运维执行情况

6、沟通与决策

二、运维岗职责(具体运维工作实现)

1、服务器维护

2、Paas和Saas(软件即服务)

3、资源监控和优化配置:资源调度、存储优化;

4、云管平台管理

5、虚拟网络维护

6、监控与故障处理

主动工作:(预先的管理与规划,防止问题的发生)

系统维护与管理

性能监控与优化

资源管理域优化

自动化和工具开发

技术研究和培训

被动工作:(已发生问题处理)

故障响应

问题处理

应急响应

运维安全保障

三、运维安全

1、运维十不准

 2、网安十不准

3、账户安全

使用复杂密码

唯一密码策略

定期更换密码

密码管理器:KeePass、Bitwarden。

多因素认证

邮箱账号安全

4、变更规范

系统和软件更新

安全配置

 5、操作规范

数据备份和恢复

监控和日志管理

灾难恢复和

6、行为升级

安全升级和合规性

7、物理与环境安全

物理安全

设备安全

8、运维生产安全

运维工具配置加密

运维地址表加密

四、网络信息安全

1、网络

网络安全

邮箱安全

2、系统服务端

严禁记住密码

登入限制

定期杀毒

身份验证和访问控制

系统安全配置

3、应用

软件下载

聊天软件

软件版本

4、数据

敏感数据保护避免泄漏

五、监控技术概述

监控核心在于全面覆盖,而告警的核心在于准确及时;

1、监控简介

数据中心监控硬件和用软件;

2、监控对象

容器

分布式存储

分布式系统

3、监控作用

实时监控

告警机制

指标采集

数据存储

页面展示

告警通知

4、监控发展趋势

早期阶段:工具与和平台(top\vmstat\netstat)和目标;

扩展与集成阶段:zabbix、prometheus及grafana

智能化阶段:预测性分析(datadog\splunk\newrelic)

5、传统监控

通过技术手段收集设备指标来保证系统及业务正常运行的管理软件,是对信息技术系统的运行状态监测和管理的过程;

监控内容:

硬件监控

服务器基础监控

数据库监控

中间件监控

应用监控

 六、自动化运维

提高运维效率、降低成本、减少认为错误,并提升系统的稳定性和安全性;

1、场景

配置管理自动化:

配置100台服务器配置;

部署自动化:

部署100台nginx应用;

监控与告警自动化:

模版自动关联主机服务器和应用监控;

编译部署自动化:

借助CICD快速迭代工具和快速交付;

自动化安全

系统及软件暴露漏洞扫描告警和修复;

2、关键技术

配置管理运维自动化

Ansible

  Inventory:主机ip

    语法:  

    i.域名、ssh用户等

    ii.定义访问端口,root用户账号和密码

     

  Modules:常见模块及自定义模块;

    文件模块:copy、file、lineinfile(确保特定行是否在文件中)、synchronize(使用rsync同步内容);

    软件包模块:package、yum、apt、dnf、gem、pip;

    系统模块:firewalld、reboot、service、user;

    Net Tools模块:get_url、nmcli、uri;

  Playbook:批量处理主机;

    定义playbook文件;

 

  要求:Python2.6以上;

  ansible.cfg:全局配置行为包含定义默认行为、管理主机文件路径、设置插件和库的路径、配置远程用户、配置角色路径、配置日志记录、配置其他高级选项(待补充)

 

 

SaltStack

Puppet

实现批量主机、网络设备、云平台的批量安全配置等操作;

监控自动化

Zabbix

Prometheus

Nagios

通过模版配置和自动关联,实现CPU利用率、内存利用率、空间利用率等指标的监控,出现指标异常自动通知;

编译部署自动化

Jenkins

Bamboo

Argo CD

开发的源代码自动部署到生产和测试环境中,中间的编译、部署、测试环节,有事先配置的规则处理完成;

七、Shell脚本

1、概述

shell脚本特点:非交互式、(变量、条件语句和循环控制等功能)、类似DOS批处理文件;

shell脚本用途:自动化日常任务、批量处理数据、系统管理与维护;

shell脚本的优势:提高工作效率、易于修改和使用、跨平台支持;

Bash:/bin/sh指向/bin/bash的符号链接;

 

2、案列

特殊字符:

“”双引号:使shell认出特殊字符;

‘’单引号:使shell无法认出特殊字符;

?问号:匹配一个字符

\反斜杠:反编译特殊字符为普通字符;

+加好:拼接字符串

${自定义字符}:通过自定义通俗易懂字符串名来调用“自定义字符等号后面的字符串信息”;

${#字符串}:计算字符串长度;

nohup ls / &
systemctl enable sshd;systemctl restartsshd  #分号分隔多条指令在一行执行
echo $((1+2))  #数值计算
echo ${#abc}  #统计字符串长度
##!/bin/bash  #定义脚本解释器

-eq等于

-ne不等于

-gt大于

-lt小于

-ge大于等于

-le小于等于

#!/bin/bash
num=5 if [$num -gt 3]; then echo "Number is greater than 3." else echo "Number is 3 or less." fi

 脚本参数

$1

$2

$0

$#

文本处理(匹配行-替换行内容-排序删选)

grep  

# 忽略大小写
grep -i "root" /etc/passwd
# 显示不匹配关键字的行
grep -v "root" /etc/passwd # 显示匹配关键字的行号 grep -n "root" /etc/passwd # 显示匹配ip的行 grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" myfile.txt

sed

# 关闭LInux默认的安全机制:替换文件中/etc/selinux/config的“enforcing”为“disabled”
  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  # 检查
  grep 'SELINUX=' /etc/selinux/config
# 删除文件中incorrect行
  sed -i '/incorrect/d' tcp22.txt
# 在每行开始添加“#”
  sed -i 's/^/#/' tcp22.txt
# 删除指定关键字的前的“#”
  sed -i 's/^#    192.168.190.1.62934/    192.168.190.1.62934/' tcp22.txt
# 在包含关键字“
24128210”的放后面追加一行
  sed -i '/24128210/a\Hello,World!' tcp22.txt
  # 检查
  grep -B 1 'Hello,World!' tcp22.txt
# 读取修改后的结果保存到另一个文件(不直接修改原文件)
  sed -i '/24128210/i\Hello,World!' tcp22.txt
  # 检查
  grep -B 1 'Hello,World!' tcp22.txt

 

awk

八、计算产品日常维护

1、ECS弹性云主机

功能

安全稳定

自助获取

弹性伸缩

灵活计费

极简运维

特点

极大降低企业成本。

种类

  VPC虚拟私有云

  核心特性:SDN技术,实现二层隔离;

  网络配置:定义子网、IP虚机网卡;

  访问控制:云防火墙、安全组;

  弹性伸缩

  规格调整:按需求调整云主机规格;

  自动伸缩:结合EAS服务,根据请求量和资源利用率自动调整实力数量;

  镜像服务

  公共镜像:云服务商提供的标准镜像;

  市场镜像:公网各系统厂商提供的镜像;

  自定义镜像:基于业务云主机或客户提供的私有定制镜像;

  云服务器备份

  自动备份:定义备份时间点、备份周期;

  高可靠性:将数据存在对象存储设备;

  云硬盘

  类型丰富:容量型、性能优化型、高性能云硬盘,单盘最大32TB;

  高可靠性:可信云认证,提供极高数据持久性;

特性

  极限算力:提供CPU和GPU资源,112vCPU、3584G内存、30Gbps带宽;

  简单易用:控制台提供云主机管理操作;

  弹性灵活:自由配置资源,灵活扩容,覆盖多种云主机类型及规格;

  稳定可靠:可信云认证;

ECS云主机业务逻辑

 组成

  CPU

  内存

  操作系统

  云硬盘

应用场景

  企业电商:秒杀,资源高弹性、高稳定的业务需求;

  Web应用:均衡强劲计算,随时调整资源配置;

  大数据分析:频繁读取存储,海量存储,高存储性能,高峰数据读取;

  机器学习、深度学习、训练推理、科学计算、地震分析,推荐GPU计算;

  云渲染:高性能、均衡发证,满足发并发;

  游戏部署:计算、网络、图像高性能要求、资源弹性满足业务要求;

  视频场景:高网络收发能力、资源弹性;

  数据库应用:超高IO云硬盘,满足海量数据处理要求;

管理

# libvirt维护指令
domain-Name即instance-xxxxx
# 计算节点:虚机开机、关机、重启
virsh shutdown
virsh reboot instance-xxxxx
virsh start instance-xxxxx
# 计算节点:列出所有虚机
virsh list --all
virsh list --all --uuid
virsh list --id
注意:在计算节点,打印所有虚机的id、domain-Name(instance-xxxxx)、state
# 计算节点:迁移回退
virsh domjobabort instance-xxxxx

# 计算节点:获取xml配置
virsh dumpxml instance-xxxxx

# 计算节点:指定虚机配置文件instance-xxxxx.xml,载入虚机libvirt管理平台
virsh define /etc/libvirt/qemu/instance-xxxxx.xml
# 计算节点:将虚机移除libvirt管理平台
virsh undefine domain-Name

# 计算节点:卸载、挂载盘
virsh attach-device instance-xxxxx add_disk.xml
virsh detach-device instance-xxxxx add_disk.xml

# 计算节点:获取虚机QGA信息
virsh qemu-agent-command instance-xxxxx '{"execute":"guest-info"}'
# 计算节点:获取虚机文件系统状态
virsh qemu-agent-command instance-xxxxx '{"execute":"guest-fsfreeze-status"}'

# Openstack维护指令
nova:在Openstack中负责管理虚拟机实例的组件;

 

 nova组件

# 作用
管理虚机实例的组件,实现云环境中资源的动态分配和管理。

# 虚机生命周期管理
创建
调度运行
停止
删除

# nova查询虚机详细信息
nova show 虚机uuid
注意:虚机uuid可在管理平台上查询;

# nova查询虚机操作记录
nova instance-action-list 虚机uuid

# nova查询vnc登入URL,用于web节点登入
nova get-vnc-connsole 虚机uuid novnc

# nova将虚机开机、关机、重启
nova stop 虚机uuid
nova start 虚机uuid
nova reboot 虚机uuid
nova reboot 虚机uuid --hard

# nova重置虚机状态
# 如果nova指令重置虚机状态失败,需要nova数据库中重置
nova reset-state --active 虚机uuid

# nova将虚机重装
nova rebuild 虚机uuid 镜像id
# 查询镜像id
nova image-list

# nova将虚机挂载盘、卸载盘
nova volume-attach 虚机uuid volume-id
# 查询volume-id
nova volume-list

# nova将虚机热迁移
nova live-migration --block-migrate 虚机uuid
# 热迁移
nova live-migration 虚机uuid 目标宿主机id

# nova查询宿主机id
nova hypervisor-list

# 热迁移失败,Error:Unable to live migrate server 'server-id' to host 'host-id'
# 关闭虚机进行冷迁移
nova stop 虚机uuid
nova stop 虚机uuid --hard
# 查询虚机状态,确认已关闭,状态shutdown
nova show 虚机uuid
# 冷迁移
nova migrate 虚机uuid
nova migrate 虚机uuid 宿主机id

# 疏散
nova evacuate 虚机uuid 目标宿主机id
# 查询宿主机上所有虚机
nova list--all --host 源宿主机hostname
# 源宿主机所有虚机疏散到目标宿主机(源宿主机故障)
nova host-evacuate 目标宿主机hostname

# nova查询宿主机信息
nova service-list --hosts 宿主机hostname

# 案例1:nova查询云主机到操作云主机的流程
# 加载环境变量
source admin-ioebrc,sg
# 删选指定云主机(云主机UUID、云主机名称、)
nova list --all | grep 云主机关键字
# 通过云主机UUID可以开机、关机,查询云主机状态、云主机操作记录

 

top指令

 vmstat指令

r:长期大于cpu个数,表示资源不足;
buff:用于缓冲块设备对内存的读写操作;
cache:用于频繁访问的文件被缓存;
si:从磁盘交换到内存的数据量,即磁盘读入到内存的数据量;
so:从内存交换到磁盘的数据量,即内存写入到磁盘的数据量;
si/so长期不为0,表示系统内存不足,查看free指令或sar -r指令的free参数是否过小,可能需要增加内存,或通过内核优化保留内存和加快脏数据回收;
bi:从块设备读入的块数单位KB/s,即磁盘每秒从磁盘读入的数据量;
bo:发送到块设备的块数单位KB/s,即写出到磁盘的数据量;
bi+bo:参考值1000,超过这个值且wa较大,表示磁盘IO有问题;
in:每秒中断数量,越大表示内核消耗CPU时间越多;
cs:每秒上下文切换数量,操作系统在多个任务之间共享CPU资源的一种方式;
us:用户空间中运行的时间百分比,值高时,说明用户进程消耗的CPU时间多;
sy:内核空间中运行的时间百分比,值高时,说明内核消耗的CPU资源多;
id:CPU空闲时间百分比,表示CPU在空闲时间的占比;
wa:等待IO时间的百分比,值高时,说明IO等待严重,延迟高,可能磁盘瓶颈造成的;
st:被虚拟机偷取的时间百分比,虚拟环境中表示被其他虚拟机占用;
 

 df指令

df -h

 实例诊断操作

  性能诊断

  网卡状态诊断

  实例状态诊断

  订单状态诊断

  安全组风险诊断

架构

  控制节点

  计算节点

  存储节点

  Haproxy+VIP负载均衡

AMQP集群

  4个进程:ZooKeeper、Jps、Main、PulsarBrokerStarter;

  AMQP健康检查指令:/apps/svr/amqp/bin/pulsar-admin brokers healthcheck

          结果:OK

  问题:AMQP集群设计的目录及文件的属组和属主都是apps用户,由于ansible拷贝或cp时将属组和属主改变为root,导致后续ansible节点巡检或手动启动AMQP服务时报错;

 解决办法:
    i.切换到apps用户环境       
su - apps
    ii.执行关闭脚本
      cd /apps/svr/deploy;sh stop-all.sh
    iii.执行启动脚本
      cd /apps/svr/deploy;sh start-all.sh
         

 HAProxy巡检

  检查进程

ansible -i <相对路径>/inventory/hosts.haproxy all -m shell -a "ps -ef | grep haproxy"

  检查haproxy发布的监听端口

ansible -i hosts .haproxy all -m shell -a "netstat -nlp | grep 端口"

  服务发生异常

# 问题1.巡检返回访问异常,可能存在目录属主和属组不一致问题;
## 切换用户
su - apps ## 停止服务 sudo /apps/sh/haproxy.sh stop ## 启动服务 sudo /apps/sh/haproxy.sh start

# 服务呈现黄色或者红色
## 确认服务节点是否被防火墙组织
getenforce
systemctl stop firewalld
iptables -L
## 该服务状态是否正常
systemctl status haproxy.service

# haproxy节点无法打开
## 确认haproxy节点是否被防火墙阻止
getenforce
systemctl stop firewalld
iptables -L

Keepalived巡检


 

  

 

  

 

 

 

 

参考

https://ecloud.10086.cn/api/query/developer/user/home.html?ticket=ST-207253-muDwkGaaOKZeUjpx16AT#study@certificationCourseLearning?setupId=16ce620d12c19de26002c1ba072fc525&identId=d976de47d2be47338ad91d08409e9b90

 

posted on 2025-01-09 20:20  gkhost  阅读(73)  评论(0)    收藏  举报

导航