运维简学

本文最后更新于:3 个月前

简单了解下运维

运维简学

运维职业规划

云计算

公有云

私有云

混合云

公有云

公有云是作为第三方云厂商所拥有和运营的,他们通过Internet提供计算资源,在公有云中,所有的硬件、软件和其他一些基础性的结构均由云提供商拥有和运营

私有云

私有云一般都是企业或者组织来使用的,可以位于企业数据中心之上,在私有云中,有专门的网络维护功能和基础结构

混合云

顾名思义,即同时使用公有云和私有云
从而允许公司将敏感数据保留私有云中(安全性),同时使用公有云来运行应用程序(低成本)

云计算的服务模式

IaaS 基础设施即服务

PaaS 平台即服务

SaaS 软件即服务

IaaS 基础设施即服务

提供按需付费的计算资源,包括服务器、网络、磁盘存储和数据中心等基础设施

PaaS 平台即服务

提供硬件和软件工具,使开发人员更轻松地快速创建web或移动应用

SaaS 软件即服务

Saas,基于云的应用,被授予的企业或个人通过网络访问使用

例如,百度云盘(个人级 SaaS)、钉钉(企业级 SqaS) 、 53KF客服系统〈企业级 SaaS)

区别

Linux 学习

远程连接

虚拟机/服务器

ip addr 
获取本机IP

xshell

ssh root@ip

输入密码

[root@opn90 ~]#输入命令并开始执行

文件目录管理系统

https://opn90.top/2021/10/27/PHP-ways/#%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%EF%BC%88%E6%9A%82%EF%BC%89

ls        查看目录文件

pwd        查看当前目录

cd        进入相关目录

rm         删除文件        -rf    递归,强制删除

whoami     当前系统用户

mkdir     创建文件夹    -p    递归创建父目录

mv 原 新        修改文件名

cat     查看文本内容

文本编辑

vi 文件名    vi打开文件

i            输入指令,编辑内容,i编辑模式

esc :wq!    写入内容,退出编辑器,强制退出

文件结构

https://blog.csdn.net/wisdom_futrue/article/details/128654038

文件权限

rwx

读 写 运行

--------

421

4 2 1 只读 只写 只运行

7 6 5 3 全 读写 读运行 写运行

7    7    7

用户 用户所在组 其他

文件权限操作

root/user

useradd xxx    
--password

ls    -l    列出文件详细信息(权限信息)

chmod 777 文件名     改变自己的文件的权限

Linux软件安装

windows        exe
mac            dmg
linux        rpm

yum install xx -y    自动化搜索xx软件包,并安装

备份原配置文件
cd /etc/yum.repos.d/
mkdir repo-bak
mv ./* ./repo-bak

安装
yum install xx -y

systemctl start xxx

进程

ps -ef         显示所有进程信息

过滤命令/管道符

ps -ef | grep "xx"         搜索xx相关信息

端口

netstat -tunlp | grep "xx" 

网页访问

打开/关闭nginx
systemctl start nginx 
systemctl stop nginx

修改网页显示内容

获取网页源码    
curl opn90.top

获取url服务器信息
curl -I opn90.top

查找nginx的首页
rpm -ql nginx | grep "index"

安装vim编辑器
yum install vim -y

修改首页文件内容
dd    清空一行
dG     清空所有内容

复制粘贴源代码

黄金架构LAMP

LAMP

Linux             操作系统
Apache/Nginx    web服务器
Mysql/Mariadb    数据库
Prel/PHP/Python    服务端服务器

Apache 渲染静态资源,转发请求

PHP 处理请求

Nginx

轻量级网站服务

稳定性,丰富的功能

系统消耗低,并发能力强


运行

/opt/nginx1-12/sbin/nginx

nginx配置文件

nginx.conf

修改配置后,重启服务
/opt/nginx1-12/sbin/nginx -s reload

基于端口的多虚拟主机

server{
    # 监听端口
    listen 80;
    # 服务名
    server_name localhost;    

    
    location / {
        # 目录地址
        root /opt/...;
        # 主页
        index index.html;
    }
    ...
}

server{
    listen 81;
    server_name useruser;    
    ...
}

访问日志

对于该日志的记录,分析,可以更清晰的掌握服务器的动态信息,比如安全性

对用户行为进行检测,分析

nginx.conf

/opt/nginx1-12/sbin/nginx

server{
    listen 80;
    server_name localhost;    

    # 日志路径
    access_log logs/host.access.log main;

    location / {
        root /opt/...;
        index index.html;
    }
    ...
}

持续监测日志内容变化

tail -f /opt/nginx1-12/logs/access.log

代理服务

访问ip得到另一个ip内容

nginx.conf

location / {
        # 代理转发
        proxy_pass opn90.top
    }

正向/反向代理

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率

反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问

正向代理实际代理的是客户端。反向代理代理的是目标服务器

正向代理

访问原来无法访问的资源,如google

可以做缓存,加速访问资源

对客户端访问授权,上网进行认证

代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理

保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网

负载均衡,通过反向代理服务器来优化网站的负载

运维自动化

Ansible软件架构

无需客户端

Ansible使用

………………

https://www.bilibili.com/video/BV1QY4y1u7dG

监控

运维自动化体系与监控

监控生命周期

监控体系

监控系统

  • 监控系统能够自定义监控的内容,自己通过脚本采集所需要的数据
  • 数据需要存入数据库,日后对数据进行分析计算
  • 监控系统可以简易,快速的部署到服务器
  • 数据可视化直观清晰

zabbix

跳板机

运维/内部人员经过跳板机,进入服务器

堡垒机

通过堡垒机控制IT系统运维风险

跳板机/堡垒机区别

跳板机

跳板机就是一台服务器,运维人员在使用管理服务器时,必须先连接上跳板机,然后才能去操控内网中的服务器,才能登录到目标设备上进行维护和操作

仅实现服务器登录安全,没有实现对于运维人员的行为操作和审计

跳板机优点:

集中式对服务器进行管理

跳板机缺点:

没有实现对于运维人员的行为操作监控和审计,使用跳板机的过程中,还有可能在服务器上进行错误操作,一旦出现错误操作,很难定位到实践人

堡垒机运维思想

审计只是事后的行为,审计能够发现问题以及责任人,但无法防止问题的发生

只有实现了实现严格监控,才能够源头上解决服务器误操作的事故

堡垒机能够创建系统账号,该系统账号功能是属于角色区分的作用,但是也无法确认该账号的执行人

堡垒机作用

跳板机不足,需要一种能够满足

角色管理、角色授权、信息资源访问控制、操作记录和审计、系统变更、维护控制、能够生成服务器资产统计报表

等功能的堡垒机

核心作用

1、核心系统运维和安全审计管理
2、过滤和拦截非法请求访问,恶意功能,拒绝非法命令,进行审计和监控,报警和责任追踪
3、报警、记录、分析、处理

堡垒机核心功能

1、单点登录功能(登录堡垒机==登录所有服务器)
2、账号管理
3、身份认证
4、资源授权
5、访问控制
6、操作审计

总结:

运维权限混乱、操作无审计

JumpServer

首款完全开源堡垒机

符合4A专业运维审计

4A统一安全管理平台解决方案

认证Authentication

授权Authorization

账号Account

审计Audit


补:Linux常用命令

2023.3.20…的确准备不足

文件目录

cd
pwd
cp
mv
rm

查看文件内容

cat
tac
more
head

文件搜索

find
find / -name file1
find / -user user1
find /usr/bin -type f -atime +100     100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10     10天内被创建或修改过的文件

文件的权限

chmod 
ls -lh     显示权限
chmod ugo+rwx directory1     设置目录的所有人(u)、群组(g)以及其他人(o) 读写执行rwx的权限
chmod go-rwx dircetory1     删除群组(g)、其他人(o),读写执行的权限

chown     改变文件所有者
chown user1 file1     改变一个文件的所有人属性
chown -R user1 directory1     改变一个目录所有人属性,并改变目录下的所有文件属性
chown user1:group1 file1     改变一个文件的所有人和群组属性

charp    改变文件所属用户组
chgrp group1 file1         改变文件的群组

文本处理

grep    过滤
grep Aug /var/log/messages      在文件 '/var/log/messages'中查找关键词"Aug" 


sed        合并
sed 's/stringa1/stringa2/g' example.txt     将example.txt文件中的 "string1" 替换成 "string2" 

paste    
paste file1 file2     合并两个文件或两栏的内容 

sort     排序
sort file1 file2     排序两个文件的内容 

comm
comm -1 file1 file2     比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2     比较两个文件的内容只删除 'file2' 所包含的内容 
comm -3 file1 file2     比较两个文件的内容只删除两个文件共有的部分

打包与压缩文件

tar     打包
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir

压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 
查询:tar -jtv -f filename.tar.bz2 
解压:tar -jxv -f

bzip2 file1     压缩file1
bunzip2 file1.bz2    解压file1.bz2

gzip file1
gunzip file.gz

rar a file1.rar test_file     创建一个叫做 'file1.rar' 的包 
rar x file1.rar     解压rar包

zip file1.zip file1 创建一个zip格式的压缩包 
unzip file1.zip 解压一个zip格式压缩包 

系统、关机

shutdown -h now     关闭系统

init 0 

telinit 0 

shutdown -h hours:minutes &     按预定时间关闭系统 
shutdown -c     取消按预定时间关闭系统 
shutdown -r now     重启

reboot         重启
logout         注销

time     测算一个命令(即程序)的执行时间

进程相关指令

jps        显示当前系统的java进程情况,及其id号

ps         将某个时间点的进程运行情况选取下来并输出

-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出

ps aux      查看系统所有的进程数据
ps ax          查看不与terminal有关的所有进程
ps -lA      查看系统所有的进程数据
ps axjf      查看连同一部分进程树状态

kill    用于向某个工作或者是某个PID传送一个信号

kill –9 3268 // -9 强制杀掉进程

top        Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况


netstat -tunlp|grep xxx        查看端口号

-a:(all)显示所有选项,netstat默认不显示LISTEN相关
-t:(tcp)仅显示tcp相关选项
-u:(udp)仅显示udp相关选项
-n:拒绝显示别名,能显示数字的全部转化成数字
-l:仅列出有在:Listen:(监听):的服务状态
-p:显示建立相关链接的程序名
-r:显示路由信息,路由表-e:显示扩展信息,例如uid等
-s:按各个协议进行统计
-c:每隔一个固定时间,执行该netstat命令

服务器、内存

free         查看内存使用情况

-b:以字节为单位显示
-k:以KB为单位显示,默认就是以KB为单位显示
-m:以MB为单位显示
-g:以GB为单位显示 

cat /proc/cpuinfo         查看CPU信息

uname            显示系统的启动时间和平均负载

网卡

ifconfig             显示或设置网络设备

防火墙

firewall-cmd  --get-zones        列出filewalld下的区域

firewall-cmd --get-default-zone        查看默认区域

systemctl stop firewalld        临时关闭防火墙

systemctl restart firewalld     重启防火墙

systemctl enable firewalld         设置firewalld防火墙开机自启

systemctl disable firewalld     永久关闭防火墙

firewall-cmd --reload             重载防火墙规则

firewall-cmd --list-all         查看防火墙默认区域的放行规则

日志

日志文件格式

>基本日志格式包含一下四列:
-事件产生的时间
-发生事件的服务器的主机名
-产生事件的服务名或程序名
-事件的具体信息 

/var/log/cron-----记录了系统定时任务相关的日志
/var/log/cups/-----记录打印信息的日志
/var/log/dmesg-----记录了系统在开机时内核自检的信息.也可以使用dmesg命令直接查看内核自检信息
/var/log/btmp-----记录错误登录的日志.这个文件是二进制文件,不能直接vim查看,而要使用[lastb]命令查看
/var/log/lastlog-----记录系统中所有用户最后一次的登录时间的日志.这个文件也是二进制文件,不能直接vim,而要使用lastlog命令查看
/var/log/mailog-----记录邮件信息
/var/log/message-----记录系统重要信息的日志.这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件.
/var/log/secure-----记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录.比如说系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加用户和修改用户 密码都会记录在这个日志文件中.
/var/log/wtmp-----永久记录所有用户的登录,注销信息,同时记录系统的启动,重启,关机事件.同样这个文件也是一个二进制文件,不能直接vim,而需要使用last命令来查 看.
/var/run/utmp-----记录当前已经登录的用户的信息.这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息.同样这个文件不能直接vim,而要使用 w,who,users等命令来查询. 
    

数据库

https://blog.csdn.net/weixin_43642752/article/details/126289672

关系型/非关系型

关系型数据库,采用了关系模型来组织数据的存储,以行和列的形式存储数据并记录数据与数据之间的关系 —— 将数据存储在表格中,可以通过建立表格与表格之间的关联来维护数据与数据之间的关系

非关系型数据库,采用键值对的模型来存储数据,只完成数据的记录,不会记录数据与数据之间的关系

在非关系型数据库中基于其特定的存储结构来解决一些大数据应用的难题

NoSQL(Not only SQL)数据库来指代非关系型数据库

MySql语法

------------------- 库 ----------

show databases

create database if not exists 库名

alter database 库名 character set 字符集

drop database is exists 库名

------------------- 表 ----------

show tables

desc 表名  查询指定表的表结构

drop table if exists 表名 

alter table 旧表名 rename to 新表名

alter table 表名 add 列名 类型

alter table 表名 change 旧列名 新列名 类型

alter table 表名 modify 列名 类型

alter table 表名 drop 列名

------------------- 定义字段 ----------

auto_increment     自增

not null         非空

unique             唯一

primary key     主键————非空+唯一

foreign key        外键

------------------- 操纵字段 ----------

insert into 表名(列名1,...) values (值1,...)

delete from 表名 [where ...]

update 表名 set 列名1=值1, ... where 

------------------- 查询字段 ----------
    
select 列名1,.. from 表名 where 

where ... like ...

select 字段1 as 别名1 from 表

select distinct 字段 from 表      消除重复行

where ... order by 列 asc|desc    按照指定的值升序/降序排列

------------------- 聚合函数 ----------

count max min sum avg

------------------- 字符串函数 ----------

concat(colnum1,)    拼接多行

upper(column)        将字段的值转换成大写

lower(column)        将指定列的值转换成小写

------------------- 排序/查询 ----------

排序查询

order by 字段名 排序方式

分组查询    

group by 字段名

分页查询

limit 

------------------- 多表 ----------

内连接

inner join

左连接:

显示左表中的所有数据,如果在有右表中存在与左表记录满⾜匹配条件的数据,则进⾏匹配;如果右表中不存在匹配数据,则显⽰为null

left join

右连接:

显⽰右表中的所有数据,如果在有左表中存在与右表记录满⾜匹配条件的数据,则进⾏匹配;如果左表中不存在匹配数据,则显⽰为null

right join

------------------- 嵌套查询 ----------

select id from user where name = (select a from b where c=c)

------------------- 事务 ----------

程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。

------------------- JDBC ----------

JAVA......

TCP/IP


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!