运维之路梳理———未完,待更
Posted wobenwuxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维之路梳理———未完,待更相关的知识,希望对你有一定的参考价值。
1.基础知识梳理
1.1基础命令
vim:/查找相应字符 n:显示下一个匹配字符 N:显示上一个
mkdir -p #创建目录
touch #创建文件
cp #复制粘贴文件
mv #移动文件或者改名
vim #编辑文件
echo #查询变量与输出
head #默认查看文件前十行
cat #查看文件
tr [a-z] [A-Z] #更改字母大小写
mount #系统挂载
umount #系统卸载
alias #别名功能
nalias #取消别名功能
export #定义环境变量
fdisk -l #列出磁盘信息大小
dd if= dev/sda of=/tmp/mbr.txt bs=512 count=1 #提取512字节磁盘文件 提取一次 放在mbr.txt文件中
mkfs -t 格式化磁盘分区,才可以挂载
curl #访问网站请求显示详细信息
wget #访问网站请求显示详细信息
ping #查看网站是否可以连通
ps -ef |grep #查看指定进程号
rpm -e #卸载软件 -qa #查看软件是否安装
nc #打开一个端口
ss -lntup #查看端口
iptables -save # 转换新添加的规则 >/etc/sysconfig/iptables 中
iptables -restore #重新写入</etc/sysconfig/iptables 中
ln -s # 创建软连接
lest #一页一页看日志
pstree #显示java进程信息
iftop #显示系统网络信息 -P #显示端口号 -N #不要把端口号显示为对应的服务 -n #不要逆向解析ip为域名 # -i #指定网卡
crontab #编写定时任务
chmod #更改文件权限信息
chown #更改文件属主属组信息
lvm:逻辑卷管理 弹性扩容和缩容磁盘 缺陷:存储效率较低
磁盘种类:SATA SAS PCI-E(插显卡)
磁盘分区: d delete a partition 删除分区 g create a new empty GPT partition table 创建一个新的空的GPT分区表(对大于2T磁盘进行分区) l list known partition types 列出已知的分区类型 m print this menu n add a new partition 创建分区 o create a new empty DOS partition table(对小于2T磁盘进行分区) 创建一个新的空的Dos分区表 p print the partition table 显示分区信息 q quit without saving changes 不保存退出 t change a partition‘s system id 显示分区系统编号 u change display/entry units w write table to disk and exit 保存退出
输入n 创建 p主分区 e扩展分区 ? 分区开始不用设置 ? 分区结束需要设置:+NK +NM +NG ? 输入p 进行查看 ? 分区确认后进行保存 ? w 保存分区表信息
1.2运维需要了解的网络相关知识
1.2.1DNS解析过程
首先,客户端发出 DNS 请求翻译 IP 地址或主机名。DNS 服务 器在收到客户机的请求后:
(1)检查 DNS 服务器的缓存,若查到请求的地址或名字,即 向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或 名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域 DNS 服务器,并依序从 根域查找顶级域,由顶级查
找二级域,二级域查找三级,直至找到要解析的地址或名字, 即向客户机所在网络的 DNS
服务器发出应答信息,DNS 服务器收到应答后现在缓存中存 储,然后,将解析结果发给客
户机。
(4)若没有找到,则返回错误信息。
1.2.2简述TCP/IP协议
TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。
#OSI七层模型 #TCP/IP四层模型
第一层 #物理层 第一层 #网络接口层
第二层 #数据链路层 第二层 #网络层IP
第三层 #网络层 第三层 #运输层(TCP/UDP)
第四层 #传输层 第四层 #应用层
第五层 #会话层
第六层 #表示层
第七层 #应用层
-
1、物理层:
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
2、数据链路层:
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
3、网络层:
在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
4、运输层:
定义了一些传输数据的协议和端口号(WWW端口80等),如: TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据) UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
5、会话层:
通过运输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)
6、表示层:
可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
7、应用层:
是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务
1.2.3 ICMP协议
IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。ICMP不是高层协议,而是IP层的协议。
当传送IP数据包发生错误。比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。
1.2.4 ARP协议
ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存)。
如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机。
而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。
1.2.4 UDP协议
无连接协议,也称透明协议,也位于传输层。
UDP与TCP区别:
1) TCP提供面向连接的传输,通信前要先建立连接(三次握 手机制); UDP提供无连接的传输,通信前不需要建立连 接。 ? 2) TCP提供可靠的传输(有序,无差错,不丢失,不复); UDP提供不可靠的传输。 ? 3) TCP面向字节流的传输,因此它能将信息分割成组,并在 接收端将其重组; UDP是面向数据报的传输,没有分组开 销。 ? 4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制 和流量控制机制。
1.2.5 HTTP协议
HTTP长连接和短连接本质上是TCP长连接和短连接。
1.2.6 网转报错状态码介绍
状态码 | 原因短语 | 中文描述 |
---|---|---|
100 | Continue | 继续 |
101 | Switching Protocols | 切换协议 |
200 | OK | 成功 |
201 | Created | 已创建 |
202 | Accepted | 接受 |
203 | Non-Authoritative information | 非权威信息 |
204 | No Content | 无内容 |
205 | Reset Content | 重置内容 |
206 | Partial Content | 部分内容 |
300 | Multiple Choices | 多个选择 |
301 | Moved Permanently | 永久移动 |
302 | Found | 发现 |
303 | See Other | 见其它 |
304 | Not Modified | 没有改变 |
305 | Use Proxy | 使用代理 |
307 | Temporary Redirect | 临时重发 |
400 | Bad Request | 坏请求 |
401 | Unauthorized | 未授权的 |
402 | Payment Required | 必需的支付 |
403 | Forbidden | 禁用 |
404 | Not Found | 没有找到 |
405 | Method Not Allowed | 方法不被允许 |
406 | Not Acceptable | 不可接受的 |
407 | Proxy Authentication Required | 需要代理验证 |
408 | Request Timeout | 请求超时 |
409 | Confilict | 冲突 |
410 | Gone | 不存在 |
411 | Length Required | 长度必需 |
412 | Precondition Failed | 先决条件失败 |
413 | Request Entity Too Large | 请求实体太大 |
414 | Request-URI Too Long | 请求URI太长 |
415 | Unsupported Media Type | 不支持的媒体类型 |
416 | Requested Range Not Satisfiable | 请求范围不被满足 |
417 | Expectation Failed | 期望失败 |
500 | Internal Server Error | 内部服务器错误 |
501 | Not Implemented | 服务端没有实现 |
502 | Bad Gateway | 坏网关 |
503 | Service Unavailable | 服务不能获得 |
504 | Gateway Timeout | 网关超时 |
505 | HTTP Version Not Supported | HTTP协议版本不支持 |
2. 服务与重要目录配置文件
2.1 iptables 防火墙软件管理
-
iptables工作流程
-
防火墙是层层过滤的,实际上是按照配置规则的顺序从上到下,从前到后进行过滤的。
-
如果匹配上规则,就执行该规则通过或禁止,如果没有匹配到规则则向下执行,如果都没有匹配到,则使用默认规则同意访问通过
-
-
四表五链
表 fiter 实现防火墙功能的:准许或拒绝端口 nat 网络地址转发 1.共享上网 2.端口/ip映射 raw 决定数据包是否被状态跟踪机制处理 mangle 修改数据包的服务类型、TTl、并且可以配置实现路由QQS 链 作用 INPUT链 进来的数据包应用此规则链中的策略 OUTPUT 外出的数据包应用此规则链中的策略 FORWAPO 转发数据包时应用此规则链中的策略 PREROUTING链 对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理) POSTROUTING链 对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理) -
iptables 命令参数
参数 含义 -L 显示表中的所有规则 -n 不要把端口或ip反向解析为名字 -t 指定表 -A append 追加规则追加到最后 准许ACCEPT -D delete 删除 -I insert拒绝的规则放在最上面 参数 含义 -p protocal 协议 tcp/udp/icmp/all -dport 目标端口 -sport 源端口 -d -destination 目标ip -s --source 源ip -m 指定模块 -j jump 满足条件后的动作: DROP(拒绝)、ACCEPT(准许)。REJECT(拒绝) -F 清除所有规则 -
iptables允许端口转发功能配置文件
-
首先写入规则
iptables -t -nat -A POSTROUTING -s 172.16.1.7 -j -SNAT --to-source 10.0.0.61
-
关闭公网ip 设置内网转发eth1
#添加
GATMWAY=###公网ip -
更改防火墙机器 打开端口转发功能
echo ‘net.ipv4.ip_forward=1‘ >>/etc/sysctl.conf
-
2.2 tomcat 服务
2.2.1 tomcat简单介绍
-
jvm:Java virtual machine Java虚拟机
-
可移植性 一份代码多个平台使用
-
关注CPU和内存
-
-
jdk:Java development kit Java开发环境
-
存放Java命令
-
jvm环境
-
-
tomcat : 存放Java代码
2.2.2 tomcat开机自启动
-
开机启动故障
-
需要重新读取 /etc/profile 在/etc/rc.d/rc.log中写入 /etc/profile
-
-
tomcat连接后端数据库
-
(tomcat站点目录下)/webapps/jpress/WE-INF/classses/db.properties
-
-
tomcat 存储迁移
-
tomcat站点目录下)/webapps/jpress//attachment 用nfs挂载到存储服务器上
-
-
tomcat查看Java负载
-
jstack pid 显示出Java进程信息
-
lmap -heap 显示jvm内存使用情况
-
jmap -dump:format=b,file=/tmp/jvm.bin 进程号
将指定Java进程导出使用信息至/tmp
-
mat 分析信息工具
-
2.3 lvs负载均衡服务
-
lvs-arp ip(3层)—>mac(2层) 工作在哪层? 3层协议工作在2层. lvs 常见模式 dr nat tun(隧道) full nat 项目:负载均衡选型项目 lvs+keepalived 面试: 技能: 精通 熟练掌握 熟悉 了解 熟练掌握 Shell编程 书写服务管理脚本.监控备份脚本.日常维护. 熟练掌握 负载均衡维护和优化 项目:负载均衡选型项目 云服务器 故障案例: 推出havip 给keepalived使用vip.现在无法使用. 只能使用slb 故障案例: 实现内网服务器上外网(共享上网) iptables 使用阿里云的 nat网关.
2.3.1 ipvsadm环境搭载
#web01 web02
curl 10.0.0.7
web01
curl 10.0.0.8
web02
#lb01
yum install -y ipvsadm
#####配置 负载均衡lb01
ip addr add 10.0.0.3/24 dev eth0 lebel eth0:0
ipvsadm -C #clear清除
ipvsadm --set 30 5 60 #设置tcp 超时时间
ipvsadm -A -t 10.0.0.3:80 -s wrr -p 20
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.7:80 -g -w 1
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.8:80 -g -w 1
ipvsadm -ln
[root@lb01 ~]# lsmod |grep ip_vs
[root@lb01 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight
ActiveConn InActConn
[root@lb01 ~]# lsmod |grep ip_vs
ip_vs 145497 0
nf_conntrack 133095 1 ip_vs
libcrc32c 12644 3 xfs,ip_vs,nf_conntrack
#######ib01负载均衡
#添加vip keepalived生成 havip
ip addr add 10.0.0.3/24 dev eth0 lebel eth0:0
ipvsadm -C #clear清除
ipvsadm --set 30 5 60 #设置tcp 超时时间
#创建 upstream web_pools
#-t tcp
#-s 轮询算法 wrr 加权轮询
#-p 会话保持时间 默认300s
ipvsadm -A -t 10.0.0.3:80 -s wrr -p 20
#upstream server server
# -a 添加server rs服务器
# -t tcp
# -r 指定rs服务器ip:port
# -g --gatewaying 直接路由模式 dr模式
# -w weight 权重
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.7:80 -g -w 1
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.8:80 -g -w 1
ipvsadm -ln
[root@lb01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight
ActiveConn InActConn
[root@lb01 ~]# ipvsadm --set 30 5 60
[root@lb01 ~]# ipvsadm -A -t 10.0.0.3:80 -s wrr -p 20
[root@lb01 ~]# ipvsadm -a -t 10.0.0.3:80 -r
10.0.0.7:80 -g -w 1
[root@lb01 ~]# ipvsadm -a -t 10.0.0.3:80 -r
10.0.0.8:80 -g -w 1
[root@lb01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight
ActiveConn InActConn
TCP 10.0.0.3:80 wrr persistent 20
-> 10.0.0.7:80 Route 1 0
-> 10.0.0.8:80 Route 1 0
0
[root@lb01 ~]# ip a |grep 0.3
inet 10.0.0.3/32 scope global eth0
upstream web_pools {
server 10.0.0.7:80 weight=1 ;
server 10.0.0.8:80 weight=1 ;
}
proxy_pass xxx
#ipvsadm 规则的备份与恢复
[root@lb01 ~]# ipvsadm-save -n >/root/ipvs.txt
[root@lb01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight
ActiveConn InActConn