Linux运维管理手册_第1页
Linux运维管理手册_第2页
Linux运维管理手册_第3页
Linux运维管理手册_第4页
Linux运维管理手册_第5页
已阅读5页,还剩213页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux运维管理手册一、Linux运维管理概述

Linux运维管理是指对Linux操作系统进行安装、配置、监控、维护和优化的系统性工作,旨在确保系统的稳定性、安全性和高效性。本手册旨在为运维人员提供一套标准化的操作指南,涵盖从基础操作到高级管理的各个方面。

(一)运维管理的重要性

1.系统稳定性:通过定期维护和监控,减少系统故障,保证业务连续性。

2.资源优化:合理分配系统资源,提高资源利用率。

3.安全防护:及时更新系统补丁,防止安全漏洞。

4.效率提升:自动化运维流程,降低人工操作成本。

(二)运维管理的基本原则

1.安全第一:所有操作需遵循最小权限原则,避免未授权访问。

2.文档化:详细记录运维操作,便于问题排查和知识传承。

3.自动化:利用脚本和工具实现重复性任务,提高效率。

4.持续改进:定期评估运维流程,优化管理策略。

二、Linux系统安装与配置

Linux系统的安装与配置是运维工作的第一步,以下为详细操作指南。

(一)系统安装

1.准备安装介质:下载官方ISO镜像文件,制作启动盘。

2.启动安装程序:从启动盘启动计算机,进入安装界面。

3.选择安装类型:

(1)新安装:全新安装系统。

(2)更新安装:在现有系统基础上升级。

4.配置分区:

(1)自动分区:系统自动分配磁盘空间。

(2)手动分区:自定义分区方案(如/、/boot、/home)。

5.设置用户信息:输入root密码及普通用户账号。

6.完成安装:重启系统,进入登录界面。

(二)系统配置

1.网络配置:

(1)编辑网络文件(如/etc/network/interfaces或/etc/netplan/01-netcfg.yaml)。

(2)设置IP地址(静态或动态)。

(3)重启网络服务(如ifdown/ifup或iplink)。

2.时区配置:

(1)设置时区(如timedatectlset-timezoneAsia/Shanghai)。

(2)同步系统时间(如NTP服务)。

3.软件更新:

(1)更新包列表(如aptupdate)。

(2)升级系统软件(如aptupgrade)。

三、系统监控与维护

系统监控与维护是确保系统稳定运行的关键环节,以下为常用工具和方法。

(一)系统监控工具

1.top:实时查看系统资源使用情况(CPU、内存、进程)。

2.htop:增强版top,提供更直观的监控界面。

3.vmstat:监控系统性能指标(CPU、磁盘、内存)。

4.nmon:综合性能监控工具,支持图形化界面。

5.zabbix:开源监控平台,支持多维度数据采集。

(二)日常维护任务

1.日志检查:

(1)查看系统日志(如/var/log/messages)。

(2)分析应用日志(如/var/log/nginx/access.log)。

2.磁盘管理:

(1)检查磁盘空间(如df-h)。

(2)清理临时文件(如rm-rf/tmp/)。

3.安全加固:

(1)更新系统补丁(如yumupdate或aptupdate)。

(2)禁用不必要的服务(如systemctldisable)。

四、用户与权限管理

用户与权限管理是保障系统安全的重要手段,以下为操作步骤。

(一)用户管理

1.添加用户:

(1)使用useradd命令(如useraddtestuser)。

(2)设置密码(如passwdtestuser)。

2.删除用户:

(1)使用userdel命令(如userdeltestuser)。

(2)删除用户家目录(如rm-rf/home/testuser)。

3.修改用户:

(1)修改用户名(如usermod-lnewnameoldname)。

(2)修改用户组(如usermod-Ggroup1)。

(二)权限管理

1.文件权限:

(1)使用chmod设置权限(如chmod755file)。

(2)使用chown更改所有者(如chownuser:groupfile)。

2.SELinux:

(1)检查SELinux状态(如sestatus)。

(2)临时关闭SELinux(如setenforce0)。

3.sudo配置:

(1)编辑sudoers文件(如visudo)。

(2)授权用户使用sudo(如usermod-aGsudotestuser)。

五、网络服务配置

网络服务是Linux系统对外提供功能的基础,以下为常见服务配置方法。

(一)Web服务

1.Nginx配置:

(1)安装Nginx(如yuminstallnginx)。

(2)编辑配置文件(如/etc/nginx/nginx.conf)。

(3)重载配置(如systemctlreloadnginx)。

2.Apache配置:

(1)安装Apache(如yuminstallhttpd)。

(2)编辑虚拟主机配置(如/etc/httpd/conf.d/vhost.conf)。

(3)重启服务(如systemctlrestarthttpd)。

(二)数据库服务

1.MySQL配置:

(1)安装MySQL(如yuminstallmysql-server)。

(2)启动服务(如systemctlstartmysqld)。

(3)安全设置(如mysql_secure_installation)。

2.PostgreSQL配置:

(1)安装PostgreSQL(如yuminstallpostgresql-server)。

(2)初始化数据库(如postgresql-setup--initdb)。

(3)启动服务(如systemctlstartpostgresql)。

六、故障排查与应急处理

故障排查与应急处理是运维工作的核心能力,以下为常见问题解决方案。

(一)常见问题排查

1.系统无法启动:

(1)进入恢复模式(如GRUB菜单选择recovery)。

(2)检查启动日志(如dmesg)。

2.网络中断:

(1)检查网络接口(如iplink)。

(2)重启网络服务(如systemctlrestartnetworking)。

3.进程崩溃:

(1)使用ps查找进程(如psaux)。

(2)分析coredump文件(如gdb)。

(二)应急处理措施

1.数据备份:

(1)使用rsync同步数据(如rsync-av/source/destination)。

(2)定期备份关键文件(如cronjob)。

2.系统恢复:

(1)使用备份恢复系统(如tar-xvfbackup.tar)。

(2)重新配置服务(如手动启动nginx)。

3.安全事件:

(1)关闭受感染服务(如systemctlstopservice)。

(2)清理恶意文件(如find/-namemalicious_file)。

七、自动化运维

自动化运维是提高运维效率的重要手段,以下为常用工具和方法。

(一)脚本编写

1.Bash脚本:

(1)编写日常任务脚本(如备份脚本)。

(2)使用条件语句(如if/else)。

(3)调用系统命令(如df-h)。

2.Python脚本:

(1)使用paramiko远程执行命令。

(2)利用requests库获取API数据。

(3)生成自动化报告(如Pandas)。

(二)自动化工具

1.Ansible:

(1)编写Playbook(如inventory文件)。

(2)执行远程任务(如ansibleall-mcopy)。

(3)管理多个节点。

2.Puppet:

(1)定义Manifest文件。

(2)实现配置管理(如classdefinition)。

(3)持续同步配置。

3.Chef:

(1)编写Recipe文件。

(2)使用Cookbook管理资源。

(3)集成版本控制(如Git)。

八、总结

Linux运维管理是一项系统性工作,涉及系统安装、配置、监控、维护、安全等多个方面。通过规范化操作和自动化工具,可以有效提升运维效率,保障系统稳定运行。本手册提供了基础的操作指南,运维人员应根据实际需求进一步学习和优化。

二、Linux系统安装与配置(续)

(一)系统安装(续)

除了基本的安装步骤,还有一些重要的细节和可选配置需要考虑。

1.磁盘分区策略:在分区时,除了基本的`/`(根目录)、`/boot`(引导程序)和`/home`(用户主目录)之外,还可以根据需求创建其他分区,例如:

`/var`:用于存储系统日志、缓存文件等(如`/var/log`、`/var/cache`)。建议单独分区以方便扩展或清空日志。

`/tmp`:用于临时文件。建议单独分区并定期清理。

`/swap`:交换分区,用于内存不足时的虚拟内存。大小通常建议为物理内存的1-2倍。

逻辑卷(LVM):允许动态调整分区大小,方便管理存储空间。

选择手动分区时,可以使用`fdisk`或`parted`等工具进行操作。规划分区时需考虑每个分区所需的最低空间以及未来可能的增长。

2.选择软件包组:在安装过程中,通常会提示选择要安装的软件包组。根据实际用途选择合适的组,例如:

"Base":包含最基本的系统工具和库。

"DevelopmentTools":包含编译软件所需的工具(如GCC、Make)。

"NetTools":包含网络管理工具(如`iproute2`、`net-tools`)。

"Server":包含各种服务器软件(如Samba、CUPS)。

选择时可以勾选需要的组,也可以单独选择需要的软件包。

3.时区配置(详细步骤):

安装完成后,使用`timedatectl`命令检查或设置时区。例如,设置为中国上海时区:

```bash

sudotimedatectlset-timezoneAsia/Shanghai

```

为了让时区设置在重启后依然有效,可以同步系统硬件时钟(如果服务器有硬件时钟):

```bash

sudotimedatectlset-local-rtc0使用UTC时间

或者

sudotimedatectlset-local-rtc1使用本地时间

```

确保NTP(网络时间协议)服务已安装并运行,以保持时间同步:

```bash

sudoaptinstallntpDebian/Ubuntu

sudoyuminstallchronyCentOS/RHEL

启动并启用服务

sudosystemctlstartntp

sudosystemctlenablentp

```

4.创建普通用户账号(详细步骤):除了安装时创建的root用户,强烈建议创建普通用户进行日常操作。

使用`useradd`命令创建用户,例如创建一个名为`developer`的用户:

```bash

sudouseradddeveloper

```

为新用户设置密码:

```bash

sudopasswddeveloper

```

系统会提示输入并确认密码。

(可选)将用户添加到特定组,例如`sudo`组以授予管理员权限:

```bash

sudousermod-aGsudodeveloper

注意:修改组后,用户需要重新登录才能生效

```

(可选)为用户创建家目录并复制模板文件:

```bash

sudomkdir/home/developer

sudocp-r/etc/skel//home/developer

sudochown-Rdeveloper:developer/home/developer

```

(二)系统配置(续)

安装完成后,还需要进行一些细致的配置以优化系统表现和安全性。

1.防火墙配置:Linux系统通常自带防火墙,如`iptables`(较旧)或`firewalld`(较新)。

检查状态:

对于`firewalld`:

```bash

sudofirewall-cmd--state

```

对于`iptables`:

```bash

sudoiptables-L-n

```

启用服务(以firewalld为例):

```bash

sudosystemctlenablefirewalld

sudosystemctlstartfirewalld

```

基本规则设置(以firewalld为例):

允许SSH远程登录(推荐在指定端口,如22):

```bash

sudofirewall-cmd--permanent--add-service=ssh

或者指定端口

sudofirewall-cmd--permanent--add-port=22/tcp

sudofirewall-cmd--reload

```

允许HTTP和HTTPS服务:

```bash

sudofirewall-cmd--permanent--add-service=http

sudofirewall-cmd--permanent--add-service=https

sudofirewall-cmd--reload

```

阻止所有传入连接(作为示例,生产环境需谨慎配置):

```bash

注意:此命令会阻止所有非已允许的服务,慎用!

sudofirewall-cmd--permanent--zone=public--set-target=DROP

sudofirewall-cmd--reload

```

2.软件包管理器配置:优化软件包管理器的镜像源可以提高软件更新速度和可靠性。

更换镜像源:编辑软件源列表文件(如`/etc/apt/sources.list`或`/etc/yum.repos.d/`目录下的文件),将默认镜像源替换为更快的镜像源(如阿里云、腾讯云等提供的镜像源,或国际镜像源如UCSC、M等)。例如,修改Debian/Ubuntu的`sources.list`:

```bash

sudonano/etc/apt/sources.list

```

将里面的源地址替换为:

```

deb/debian/bullseyemainnon-freecontrib

deb-src/debian/bullseyemainnon-freecontrib

```

更新软件包列表:

```bash

sudoaptupdateDebian/Ubuntu

sudoyumupdateCentOS/RHEL

```

3.系统内核参数优化(`sysctl`):编辑`/etc/sysctl.conf`文件或创建`/etc/sysctl.d/`目录下的配置文件,可以调整内核参数以优化网络性能、文件系统行为等。

示例配置(写入`/etc/sysctl.conf`或同名文件):

```bash

增加最大文件句柄数

fs.file-max=100000

增加TCP连接数

net.ipv4.tcp_max_syn_backlog=65535

net.core.somaxconn=65535

开启TCP快速打开

net.ipv4.tcp_fastopen=3

限制最大开启的TCP连接数

net.ipv4.tcp_max_tw_buckets=5000

```

使配置立即生效:

```bash

sudosysctl-p/etc/sysctl.conf

或者直接加载指定文件

sudosysctl-p/etc/sysctl.d/99-custom.conf

```

4.邮件服务配置(可选):如果需要系统发送通知邮件,可以配置邮件服务。

安装邮件传输代理(MTA):

Debian/Ubuntu:

```bash

sudoaptinstallmailutilssendmail

```

CentOS/RHEL:

```bash

sudoyuminstallmailxsendmail

```

测试邮件发送:使用`mail`命令发送测试邮件:

```bash

echo"Testemailbody"|mail-s"TestSubject"your-email@

```

(需要将`your-email@`替换为实际的接收邮箱地址)

5.SSH安全加固:SSH是远程登录的主要方式,加强其安全性非常重要。

禁用root远程登录:编辑`/etc/ssh/sshd_config`文件,找到`PermitRootLogin`行并将其改为`no`:

```

PermitRootLoginno

```

强制使用SSHv2协议:找到`Protocol`行,确保其值为`2`:

```

Protocol2

```

修改默认端口(可选):将默认的22端口改为其他端口可以增加一定的安全性(但需确保防火墙规则允许新端口):

```

Port2222将2222替换为其他未被使用的端口

```

禁用或修改弱密码算法:添加或修改以下配置:

```

PasswordAuthenticationno强制公钥认证,禁用密码认证

或者

PasswordAuthenticationyes

PermitEmptyPasswordsno禁止空密码登录

可选:调整加密算法,确保使用安全的算法

Cipheraes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc

```

重启SSH服务使配置生效:

```bash

sudosystemctlrestartsshdDebian/Ubuntu

sudosystemctlrestartsshdCentOS/RHEL

```

(可选)生成并使用公钥认证:

在本地机器上生成密钥对(如果还没有):

```bash

ssh-keygen-trsa-b4096

按提示操作,可以直接回车使用默认值

```

将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中(可以使用`ssh-copy-id`命令):

```bash

ssh-copy-iduser@remote-host

```

按提示输入远程主机的密码。

三、系统监控与维护(续)

(一)系统监控工具(续)

除了前面提到的工具,还有一些其他类型的监控工具和平台。

1.日志分析工具:

Logwatch:自动分析系统日志并提供摘要报告。安装后通常会在`/var/log/logwatch/`目录下生成分析报告。

```bash

sudoaptinstalllogwatchDebian/Ubuntu

sudoyuminstalllogwatchCentOS/RHEL

可以配置日志发送到邮件

sudovi/etc/logwatch/conf/logwatch.conf

找到MailTo行,填入邮箱地址

```

Logstash+Kibana(ELKStack):更强大的日志收集、处理和可视化平台。Logstash负责收集和过滤日志,Elasticsearch负责存储和搜索,Kibana负责可视化。

安装示例(基于Elasticsearch7.x):

```bash

安装Java(Elasticsearch需要Java)

sudoaptinstallopenjdk-11-jdkDebian/Ubuntu

sudoyuminstalljava-11-openjdkCentOS/RHEL

下载并解压Elasticsearch

wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-amd64.zip

unzipelasticsearch-7.10.1-amd64.zip

cdelasticsearch-7.10.1-amd64

启动Elasticsearch(可能需要调整Java内存)

./bin/elasticsearch-d-Xms256m-Xmx512m

下载并解压Kibana

wgethttps://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-linux-x64.zip

unzipkibana-7.10.1-linux-x64.zip

cdkibana-7.10.1-linux-x64

启动Kibana(需要指定Elasticsearch地址)

./bin/kibana-Elasticsearch.hosts=http://localhost:9200-port5601&

安装Logstash

wgethttps://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-amd64.zip

unziplogstash-7.10.1-amd64.zip

cdlogstash-7.10.1-amd64

创建Logstash配置文件(示例:logstash.conf)

nanologstash.conf

示例内容:

input{

file{

path=>"/var/log/syslog"

start_position=>"beginning"

}

}

filter{

可以添加过滤器处理日志

}

output{

elasticsearch{

hosts=>["http://localhost:9200"]

index=>"logstash-YYYY.MM.DD"

}

}

启动Logstash

./bin/logstash-flogstash.conf

```

Kibana配置:在浏览器中访问`http://localhost:5601`,首次进入需要配置Elasticsearch连接。

2.资源监控与性能分析工具:

vmstat(续):除了查看CPU、内存、磁盘、网络状态,还可以使用`-s`参数查看各种资源的使用总量:

```bash

sudovmstat-s

```

iostat:查看磁盘I/O性能。

```bash

sudoiostat-mx查看详细的磁盘统计信息

```

iotop:类似top,但专注于显示磁盘I/O占用最多的进程。

```bash

sudoaptinstalliotopDebian/Ubuntu

sudoyuminstalliotopCentOS/RHEL

sudoiotop-o只显示I/O占用高的进程

```

dstat:更综合的资源监控工具,整合了vmstat、iostat、ifstat等功能。

```bash

sudoaptinstalldstatDebian/Ubuntu

sudoyuminstalldstatCentOS/RHEL

sudodstat--all--top-cpu--top-mem--top-io--top-net--top-cpu--top-io110每秒更新一次,共10次

```

3.应用性能监控(APM)工具:

Prometheus+Grafana+cAdvisor/node-exporter:流量式监控体系。Prometheus作为数据采集和存储(时间序列数据库),cAdvisor/node-exporter采集系统和应用指标,Grafana用于可视化。

Datadog:商业化的APM和监控平台,提供一站式解决方案。

(二)日常维护任务(续)

日常维护是预防问题发生的关键。

1.系统更新与补丁管理:

定期检查更新:建议每天或每周执行一次。

```bash

sudoaptupdate&&sudoaptlist--upgradableDebian/Ubuntu

sudoyumcheck-updateCentOS/RHEL

```

定期应用更新:建议每周或每月执行一次全面更新。

```bash

sudoaptupgradeDebian/Ubuntu

sudoyumupdateCentOS/RHEL

```

安全补丁优先:如果有安全相关的补丁,应尽快应用。

处理依赖冲突:更新时如果出现依赖问题,可能需要先安装`build-essential`或`DevelopmentTools`,或使用`--fix-broken`选项(Debian/Ubuntu)。

```bash

sudoapt--fix-brokeninstallDebian/Ubuntu

```

2.磁盘空间管理:

定期检查空间:使用`df-h`或`du-sh`命令。

```bash

df-hT显示文件系统类型和空间使用情况

du-sh/path/to/directory显示指定目录的大小

```

查找大文件/目录:使用`find`命令。

```bash

查找当前目录下大于1G的文件

find.-typef-size+1G

查找当前目录下最大的一千个文件

find.-typef-execls-s{}+|sort-n-r|head-n1000

```

清理临时文件:

`/tmp`:可以定期清空(注意备份重要临时文件)。

```bash

sudorm-rf/tmp/操作前务必确认

```

`/var/tmp`:类似`/tmp`。

`/var/log`:可以定期清理旧日志(建议保留最近几周)。

```bash

sudofind/var/log-typef-name".log"-mtime+30-execrm{}\;

```

用户家目录下的缓存(如`~/.cache`)。

3.内存与交换空间管理:

检查内存使用:使用`free-h`或`top`。

检查交换空间:使用`swapon--show`。

```bash

sudoswapon--show

```

手动添加交换空间(示例:使用文件):

创建交换文件(例如1G大小):

```bash

sudofallocate-l1G/swapfile

sudochmod600/swapfile

sudomkswap/swapfile

```

启用交换文件:

```bash

sudoswapon/swapfile

```

使交换文件在重启后生效(推荐):

```bash

echo'/swapfileswapswapdefaults00'|sudotee-a/etc/fstab

```

调整swappiness值(谨慎操作):编辑`/etc/sysctl.conf`或`/etc/sysctl.d/`文件,添加:

```

vm.swappiness=80值范围通常为0-100

```

然后运行`sudosysctl-p`使其生效。

4.用户与权限审计:

定期检查用户账户:查找可疑的或过时的用户账户。

```bash

sudoless/etc/passwd

sudoless/etc/shadow

```

检查sudo日志:`/var/log/auth.log`(Debian/Ubuntu)或`/var/log/secure`(CentOS/RHEL)记录了sudo使用情况。

```bash

sudoless/var/log/auth.log|grepsudo

```

检查文件权限:定期使用`find`或`ls-l`检查重要目录的权限设置是否合理。

```bash

检查根目录下权限过松的文件/目录

sudofind/-perm/7000-ls

```

5.服务与进程管理:

检查运行中的服务:使用`systemctllist-units--type=service--state=running`。

```bash

sudosystemctllist-units--type=service--state=running

```

检查僵尸进程:使用`ps`或`top`。

```bash

psaux|grepZ

或在top中按Shift+Z

```

查找内存占用大的进程:使用`top-o%MEM`或`htop`。

查找CPU占用大的进程:使用`top-o%CPU`或`htop`。

管理服务自动启动:使用`systemctlis-enabled`和`systemctlenable/disable`。

```bash

查看nginx是否开机自启

sudosystemctlis-enablednginx

设置nginx开机自启

sudosystemctlenablenginx

禁止nginx开机自启

sudosystemctldisablenginx

```

四、用户与权限管理(续)

(一)用户管理(续)

除了基本的增删改查,还有一些高级管理和安全措施。

1.用户密码策略:为了提高安全性,可以配置密码策略。

安装`pam_pwquality`(Debian/Ubuntu):

```bash

sudoaptinstalllibpam-pwquality

```

编辑PAM配置文件:

```bash

sudonano/etc/pam.d/common-password

```

找到`passwordrequisitepam_pwquality.soretry=3`行,确保其存在并可配置。可以添加或修改参数,例如:

```

passwordrequisitepam_pwquality.soretry=3minlen=8difok=3ucredit=-1lcredit=-1dcredit=-1maxrepeat=3enforce_for_root

```

参数说明:

`retry=3`:失败重试次数。

`minlen=8`:最小密码长度。

`difok=3`:新密码与前密码至少不同字符数。

`ucredit=-1`:至少包含一个小写字母。

`lcredit=-1`:至少包含一个大写字母。

`dcredit=-1`:至少包含一个数字。

`maxrepeat=3`:密码中相同字符最多重复次数。

`enforce_for_root`:对root用户也生效。

应用策略:修改密码时策略会自动生效。

2.用户组管理(续):

创建组并添加用户:除了`usermod-aGgroup`,还可以在创建用户时指定组。

```bash

sudogroupaddmygroup

sudouseradd-m-gmygroupmyuser

```

修改用户所属组:可以将用户从一组移到另一组。

```bash

sudousermod-Gothergroup-amyuser

注意:移除原组时需谨慎

sudodelusermyusermygroup

```

指定用户主组:在创建用户时通过`-G`指定主组。

3.用户家目录管理:

创建/删除家目录:创建用户时家目录会自动创建。删除用户时,可以使用`--remove-home`选项保留家目录(用于后续审计)。

```bash

创建用户时创建家目录

sudouseradd-mmyuser

删除用户但保留家目录

sudouserdel--remove-homemyuser

完全删除用户及其家目录(危险操作,慎用)

sudouserdel-rmyuser

```

设置家目录权限:通常用户对其家目录有读写权限。确保`/home`目录的权限设置正确。

```bash

sudochownroot:root/home

sudochmod755/home

```

(二)权限管理(续)

更深入地理解和应用权限模型。

1.SELinux(Security-EnhancedLinux)详解:

检查状态:

```bash

sudosestatus显示SELinux状态、模式、级别等信息

```

查看策略:使用`sestatus-v`查看更详细的策略信息。

模式切换(临时):

临时开启enforcing模式(如果处于permissive模式):

```bash

sudosetenforce1

```

临时切换到permissive模式(不应用策略,记录日志):

```bash

sudosetenforce0

```

模式切换(永久):编辑`/etc/selinux/config`文件,修改`SELINUX=enforcing`或`SELINUX=permissive`。

```

SELINUX=enforcing或permissive

```

文件上下文(Context)查看与修改:

查看文件上下文:

```bash

sudols-Z/path/to/file

sudosemanagefcontext-l查看默认文件上下文

```

设置文件上下文:

```bash

sudosemanagefcontext-a-thttpd_sys_content_t'/var/www/html(/.)?'

sudorestorecon-Rv/var/www/html

```

`httpd_sys_content_t`是示例类型,根据实际服务选择。

删除文件上下文:

```bash

sudosemanagefcontext-d-thttpd_sys_content_t'/var/www/html(/.)?'

sudorestorecon-Rv/var/www/html

```

2.Btrfs文件系统权限:如果使用Btrfs文件系统,可以利用其内置的快照和权限特性。

查看快照:

```bash

sudobtrfssubvolumelist/mnt/mybtrfs

```

创建快照:

```bash

sudobtrfssubvolumesnapshot/mnt/mybtrfs/mnt/mybtrfs/snapshot

```

设置Btrfs权限(类似chmod):

```bash

sudobtrfspropertysetpath/subvolumerotrue设置只读

sudobtrfspropertysetpath/subvolumespace_cachefalse禁用空间缓存

```

3.Sudo权限精细化控制(`visudo`):

编辑sudoers文件:

```bash

sudovisudo

```

基本配置示例:

```

允许用户admin无需密码执行所有命令

adminALL=(ALL)NOPASSWD:ALL

允许用户user仅能执行指定命令

userALL=(ALL)/usr/bin/vi/usr/bin/ls

允许用户group仅能管理其所属组的文件

%groupALL=(root)/usr/bin/find/usr/bin/grep

允许用户仅能在本主机上执行sudo命令

userALL=(root)NOPASSWD:ALL

```

常用指令:

`User`:指定用户或用户组。

`ALL`:代表所有主机、用户、命令。

`(``)`:用于指定命令执行的权限(ALL代表所有用户,root代表超级用户)。

`NOPASSWD`:执行命令无需密码。

`ALL=(ALL)ALL`:允许用户以任何用户身份执行所有命令。

`%`:代表当前用户所属的组。

五、网络服务配置(续)

(一)Web服务(续)

除了Nginx和Apache,还有一些其他Web服务器软件。

1.Lighttpd:轻量级Web服务器,以高性能和低资源占用著称。

安装:

Debian/Ubuntu:

```bash

sudoaptinstalllighttpd

```

CentOS/RHEL:

```bash

sudoyuminstalllighttpd可能需要安装EPEL仓库

sudoyuminstallepel-release

sudoyuminstalllighttpd

```

基本配置:编辑`/etc/lighttpd/lighttpd.conf`文件。

启动服务:

```bash

sudosystemctlstartlighttpd

sudosystemctlenablelighttpd

```

2.CherryPy:微型Web框架,可以快速开发PythonWeb应用,并将其部署为独立服务器。

安装:

```bash

sudoaptinstallpython3-pipDebian/Ubuntu

sudoyuminstallpython3-pipCentOS/RHEL

sudopip3installcherrypy

```

示例应用(hello.py):

```python

importcherrypy

classHelloWorld(object):

@cherrypy.expose

defindex(self):

return"<h1>Hello,World!</h1>"

if__name__=='__main__':

cherrypy.quickstart(HelloWorld())

```

运行应用:

```bash

python3hello.py

```

应用将在`:8080`上运行。

3.CGI/FastCGI支持:Nginx和Apache都支持CGI和FastCGI,用于运行外部程序(如Python、PHP脚本)。

Nginx+FastCGI(以PHP为例):

安装PHP-FPM:

```bash

sudoaptinstallphp-fpmDebian/Ubuntu

sudoyuminstallphp-fpmCentOS/RHEL

```

配置Nginx(编辑站点配置文件,如`/etc/nginx/sites-available/default`):

```nginx

location~\.php${

try_files$uri=404;

fastcgi_split_path_info^(.+\.php)(/.+)$;

fastcgi_pass:9000;

fastcgi_indexindex.php;

includefastcgi_params;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

}

```

重载Nginx配置:

```bash

sudonginx-sreload

```

Apache+CGI(以Python为例):

安装mod_cgi:

```bash

sudoaptinstalllibapache2-mod-cgiDebian/Ubuntu

sudoyuminstallmod_cgiCentOS/RHEL

```

配置Apache(编辑`httpd.conf`或虚拟主机配置文件):

```apache

LoadModulecgi_modulemodules/mod_cgi.so

<Directory/var/www/cgi-bin>

Options+ExecCGI

Orderallow,deny

Allowfromall

</Directory>

```

创建CGI脚本(如`/var/www/cgi-bin/hello.py`):

```python

!/usr/bin/python3

print("Content-type:text/html")

print()

print("<h1>HellofromCGI!</h1>")

```

设置脚本权限:

```bash

sudochmod+x/var/www/cgi-bin/hello.py

sudochownwww-data:www-data/var/www/cgi-bin/hello.py根据系统用户调整

```

重启Apache服务:

```bash

sudosystemctlrestartapache2

```

(二)数据库服务(续)

除了MySQL和PostgreSQL,还有一些其他类型的数据库。

1.MariaDB:MySQL的分支版本,兼容性强,性能优异。

安装:

Debian/Ubuntu:

```bash

sudoaptinstallmariadb-server

sudomysql_secure_installation进行安全设置

```

CentOS/RHEL:

```bash

sudoyuminstallmariadb-server

sudosystemctlstartmariadb

sudosystemctlenablemariadb

sudomysql_secure_installation注意:CentOS/RHEL版本可能需要先安装MariaDBrepo

```

使用方式:客户端命令和SQL语法与MySQL基本兼容。

2.MongoDB:Nosql数据库,以文档存储和灵活性著称。

安装:

Debian/Ubuntu:

```bash

wget-qO-/static/pgp/server-4.4.asc|sudoapt-keyadd-

echo"deb[arch=amd64,arm64]/apt/ubuntubionic/mongodb-org/4.4multiverse"|sudotee/etc/apt/sources.list.d/mongodb-org-4.4.list

sudoaptupdate

sudoaptinstall-ymongodb-org

sudosystemctlstartmongod

sudosystemctlenablemongod

```

CentOS/RHEL:

```bash

sudorpm-Uvh/static/pgp/server-4.4.asc

sudotee/etc/yum.repos.d/mongodb-org-4.4.repo<<EOF

[mongodb-org-4.4]

name=MongoDBRepository

baseurl=/yum/amazon/2018.3/mongodb-org/4.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=/static/pgp/server-4.4.asc

EOF

sudoyuminstall-ymongodb-org

sudosystemctlstartmongod

sudosystemctlenablemongod

```

使用方式:通过`mongosh`客户端或驱动程序连接。

3.Redis:哈希表结构NoSql数据库,支持键值对存储,常用于缓存和消息队列。

安装:

Debian/Ubuntu:

```bash

sudoaptinstallredis-server

sudosystemctlstartredis

sudosystemctlenableredis

```

CentOS/RHEL:

```bash

sudoyuminstallredis

sudosystemctlstartredis

sudosystemctlenableredis

```

配置示例:编辑`/etc/redis/redis.conf`文件。

设置监听地址:`bind::1`(限制本地访问)。

设置密码:`requirepassyourpassword`。

设置最大客户端连接数:`maxclients10000`。

重启服务:

```bash

sudosystemctlrestartredis

```

六、故障排查与应急处理(续)

(一)常见问题排查(续)

针对更具体的故障场景提供排查方法。

1.无法远程SSH登录:

检查SSH服务状态:

```bash

sudosystemctlstatussshd

```

检查防火墙规则:确认端口(默认22)开放。

```bash

sudofirewall-cmd--list-allfirewalld

sudoiptables-L-niptables

```

检查SSH配置文件:确保`/etc/ssh/sshd_config`中的`PermitRootLogin`为`no`,`Port`(如果修改过)正确。

检查日志文件:查看`/var/log/auth.log`(Debian/Ubuntu)或`/var/log/secure`(CentOS/RHEL)中的登录记录。

```bash

sudotail-n50/var/log/auth.log|grepsshd

```

检查用户密码:确认用户密码正确,尝试`sshuser@hostname`。

检查SELinux设置:如果SELinux启用,可能阻止SSH登录。检查`/var/log/audit/audit.log`。

```bash

sudogrepsshd/var/log/audit/audit.log|audit2allow-c/var/log/audit/audit.log

```

检查网络连接:确认网络可达。

```bash

ssh-vuser@hostname使用verbose模式查看详细过程

```

2.系统无法启动(引导失败):

进入恢复模式:启动时按特定键(如F2、F12、Shift+F2)进入BIOS/UEFI,选择“恢复模式”或“高级启动选项”。

检查引导日志:在恢复模式下,使用`fsck`检查文件系统,使用`fsck-f`强制检查。

```bash

sudofsck/dev/sda1替换为实际分区

```

检查内存问题:使用`memtest86+`(需制作启动盘)检查内存。

检查启动顺序:确认BIOS/UEFI启动顺序正确。

检查initramfs:使用`lsinitramfs`查看initramfs是否正常。

```bash

lsinitramfs/boot/initramfs-$(uname-r)|grepinit

```

检查磁盘分区:使用`lsblk`或`fdisk-l`查看分区是否识别。

```bash

sudolsblk

```

3.Web服务无法访问:

检查服务状态:确认Nginx/Apache正在运行。

```bash

sudosystemctlstatusnginx或sudosystemctlstatusapache2

```

检查防火墙规则:确认HTTP(80)和HTTPS(443)端口开放。

```bash

sudofirewall-cmd--list-allfirewalld

sudoiptables-L-niptables

```

检查配置文件:确保`/etc/nginx/nginx.conf`或`/etc/apache2/sites-available/`目录下的配置文件正确。

```bash

sudonginx-t检查Nginx配置

sudoa2ctlstatus检查Apache状态

```

检查日志文件:查看`/var/log/nginx/error.log`(Nginx)或`/var/log/apache2/error.log`(Apache)。

```bash

sudotail-n50/var/log/nginx/error.log

一、Linux运维管理概述

Linux运维管理是指对Linux操作系统进行安装、配置、监控、维护和优化的系统性工作,旨在确保系统的稳定性、安全性和高效性。本手册旨在为运维人员提供一套标准化的操作指南,涵盖从基础操作到高级管理的各个方面。

(一)运维管理的重要性

1.系统稳定性:通过定期维护和监控,减少系统故障,保证业务连续性。

2.资源优化:合理分配系统资源,提高资源利用率。

3.安全防护:及时更新系统补丁,防止安全漏洞。

4.效率提升:自动化运维流程,降低人工操作成本。

(二)运维管理的基本原则

1.安全第一:所有操作需遵循最小权限原则,避免未授权访问。

2.文档化:详细记录运维操作,便于问题排查和知识传承。

3.自动化:利用脚本和工具实现重复性任务,提高效率。

4.持续改进:定期评估运维流程,优化管理策略。

二、Linux系统安装与配置

Linux系统的安装与配置是运维工作的第一步,以下为详细操作指南。

(一)系统安装

1.准备安装介质:下载官方ISO镜像文件,制作启动盘。

2.启动安装程序:从启动盘启动计算机,进入安装界面。

3.选择安装类型:

(1)新安装:全新安装系统。

(2)更新安装:在现有系统基础上升级。

4.配置分区:

(1)自动分区:系统自动分配磁盘空间。

(2)手动分区:自定义分区方案(如/、/boot、/home)。

5.设置用户信息:输入root密码及普通用户账号。

6.完成安装:重启系统,进入登录界面。

(二)系统配置

1.网络配置:

(1)编辑网络文件(如/etc/network/interfaces或/etc/netplan/01-netcfg.yaml)。

(2)设置IP地址(静态或动态)。

(3)重启网络服务(如ifdown/ifup或iplink)。

2.时区配置:

(1)设置时区(如timedatectlset-timezoneAsia/Shanghai)。

(2)同步系统时间(如NTP服务)。

3.软件更新:

(1)更新包列表(如aptupdate)。

(2)升级系统软件(如aptupgrade)。

三、系统监控与维护

系统监控与维护是确保系统稳定运行的关键环节,以下为常用工具和方法。

(一)系统监控工具

1.top:实时查看系统资源使用情况(CPU、内存、进程)。

2.htop:增强版top,提供更直观的监控界面。

3.vmstat:监控系统性能指标(CPU、磁盘、内存)。

4.nmon:综合性能监控工具,支持图形化界面。

5.zabbix:开源监控平台,支持多维度数据采集。

(二)日常维护任务

1.日志检查:

(1)查看系统日志(如/var/log/messages)。

(2)分析应用日志(如/var/log/nginx/access.log)。

2.磁盘管理:

(1)检查磁盘空间(如df-h)。

(2)清理临时文件(如rm-rf/tmp/)。

3.安全加固:

(1)更新系统补丁(如yumupdate或aptupdate)。

(2)禁用不必要的服务(如systemctldisable)。

四、用户与权限管理

用户与权限管理是保障系统安全的重要手段,以下为操作步骤。

(一)用户管理

1.添加用户:

(1)使用useradd命令(如useraddtestuser)。

(2)设置密码(如passwdtestuser)。

2.删除用户:

(1)使用userdel命令(如userdeltestuser)。

(2)删除用户家目录(如rm-rf/home/testuser)。

3.修改用户:

(1)修改用户名(如usermod-lnewnameoldname)。

(2)修改用户组(如usermod-Ggroup1)。

(二)权限管理

1.文件权限:

(1)使用chmod设置权限(如chmod755file)。

(2)使用chown更改所有者(如chownuser:groupfile)。

2.SELinux:

(1)检查SELinux状态(如sestatus)。

(2)临时关闭SELinux(如setenforce0)。

3.sudo配置:

(1)编辑sudoers文件(如visudo)。

(2)授权用户使用sudo(如usermod-aGsudotestuser)。

五、网络服务配置

网络服务是Linux系统对外提供功能的基础,以下为常见服务配置方法。

(一)Web服务

1.Nginx配置:

(1)安装Nginx(如yuminstallnginx)。

(2)编辑配置文件(如/etc/nginx/nginx.conf)。

(3)重载配置(如systemctlreloadnginx)。

2.Apache配置:

(1)安装Apache(如yuminstallhttpd)。

(2)编辑虚拟主机配置(如/etc/httpd/conf.d/vhost.conf)。

(3)重启服务(如systemctlrestarthttpd)。

(二)数据库服务

1.MySQL配置:

(1)安装MySQL(如yuminstallmysql-server)。

(2)启动服务(如systemctlstartmysqld)。

(3)安全设置(如mysql_secure_installation)。

2.PostgreSQL配置:

(1)安装PostgreSQL(如yuminstallpostgresql-server)。

(2)初始化数据库(如postgresql-setup--initdb)。

(3)启动服务(如systemctlstartpostgresql)。

六、故障排查与应急处理

故障排查与应急处理是运维工作的核心能力,以下为常见问题解决方案。

(一)常见问题排查

1.系统无法启动:

(1)进入恢复模式(如GRUB菜单选择recovery)。

(2)检查启动日志(如dmesg)。

2.网络中断:

(1)检查网络接口(如iplink)。

(2)重启网络服务(如systemctlrestartnetworking)。

3.进程崩溃:

(1)使用ps查找进程(如psaux)。

(2)分析coredump文件(如gdb)。

(二)应急处理措施

1.数据备份:

(1)使用rsync同步数据(如rsync-av/source/destination)。

(2)定期备份关键文件(如cronjob)。

2.系统恢复:

(1)使用备份恢复系统(如tar-xvfbackup.tar)。

(2)重新配置服务(如手动启动nginx)。

3.安全事件:

(1)关闭受感染服务(如systemctlstopservice)。

(2)清理恶意文件(如find/-namemalicious_file)。

七、自动化运维

自动化运维是提高运维效率的重要手段,以下为常用工具和方法。

(一)脚本编写

1.Bash脚本:

(1)编写日常任务脚本(如备份脚本)。

(2)使用条件语句(如if/else)。

(3)调用系统命令(如df-h)。

2.Python脚本:

(1)使用paramiko远程执行命令。

(2)利用requests库获取API数据。

(3)生成自动化报告(如Pandas)。

(二)自动化工具

1.Ansible:

(1)编写Playbook(如inventory文件)。

(2)执行远程任务(如ansibleall-mcopy)。

(3)管理多个节点。

2.Puppet:

(1)定义Manifest文件。

(2)实现配置管理(如classdefinition)。

(3)持续同步配置。

3.Chef:

(1)编写Recipe文件。

(2)使用Cookbook管理资源。

(3)集成版本控制(如Git)。

八、总结

Linux运维管理是一项系统性工作,涉及系统安装、配置、监控、维护、安全等多个方面。通过规范化操作和自动化工具,可以有效提升运维效率,保障系统稳定运行。本手册提供了基础的操作指南,运维人员应根据实际需求进一步学习和优化。

二、Linux系统安装与配置(续)

(一)系统安装(续)

除了基本的安装步骤,还有一些重要的细节和可选配置需要考虑。

1.磁盘分区策略:在分区时,除了基本的`/`(根目录)、`/boot`(引导程序)和`/home`(用户主目录)之外,还可以根据需求创建其他分区,例如:

`/var`:用于存储系统日志、缓存文件等(如`/var/log`、`/var/cache`)。建议单独分区以方便扩展或清空日志。

`/tmp`:用于临时文件。建议单独分区并定期清理。

`/swap`:交换分区,用于内存不足时的虚拟内存。大小通常建议为物理内存的1-2倍。

逻辑卷(LVM):允许动态调整分区大小,方便管理存储空间。

选择手动分区时,可以使用`fdisk`或`parted`等工具进行操作。规划分区时需考虑每个分区所需的最低空间以及未来可能的增长。

2.选择软件包组:在安装过程中,通常会提示选择要安装的软件包组。根据实际用途选择合适的组,例如:

"Base":包含最基本的系统工具和库。

"DevelopmentTools":包含编译软件所需的工具(如GCC、Make)。

"NetTools":包含网络管理工具(如`iproute2`、`net-tools`)。

"Server":包含各种服务器软件(如Samba、CUPS)。

选择时可以勾选需要的组,也可以单独选择需要的软件包。

3.时区配置(详细步骤):

安装完成后,使用`timedatectl`命令检查或设置时区。例如,设置为中国上海时区:

```bash

sudotimedatectlset-timezoneAsia/Shanghai

```

为了让时区设置在重启后依然有效,可以同步系统硬件时钟(如果服务器有硬件时钟):

```bash

sudotimedatectlset-local-rtc0使用UTC时间

或者

sudotimedatectlset-local-rtc1使用本地时间

```

确保NTP(网络时间协议)服务已安装并运行,以保持时间同步:

```bash

sudoaptinstallntpDebian/Ubuntu

sudoyuminstallchronyCentOS/RHEL

启动并启用服务

sudosystemctlstartntp

sudosystemctlenablentp

```

4.创建普通用户账号(详细步骤):除了安装时创建的root用户,强烈建议创建普通用户进行日常操作。

使用`useradd`命令创建用户,例如创建一个名为`developer`的用户:

```bash

sudouseradddeveloper

```

为新用户设置密码:

```bash

sudopasswddeveloper

```

系统会提示输入并确认密码。

(可选)将用户添加到特定组,例如`sudo`组以授予管理员权限:

```bash

sudousermod-aGsudodeveloper

注意:修改组后,用户需要重新登录才能生效

```

(可选)为用户创建家目录并复制模板文件:

```bash

sudomkdir/home/developer

sudocp-r/etc/skel//home/developer

sudochown-Rdeveloper:developer/home/developer

```

(二)系统配置(续)

安装完成后,还需要进行一些细致的配置以优化系统表现和安全性。

1.防火墙配置:Linux系统通常自带防火墙,如`iptables`(较旧)或`firewalld`(较新)。

检查状态:

对于`firewalld`:

```bash

sudofirewall-cmd--state

```

对于`iptables`:

```bash

sudoiptables-L-n

```

启用服务(以firewalld为例):

```bash

sudosystemctlenablefirewalld

sudosystemctlstartfirewalld

```

基本规则设置(以firewalld为例):

允许SSH远程登录(推荐在指定端口,如22):

```bash

sudofirewall-cmd--permanent--add-service=ssh

或者指定端口

sudofirewall-cmd--permanent--add-port=22/tcp

sudofirewall-cmd--reload

```

允许HTTP和HTTPS服务:

```bash

sudofirewall-cmd--permanent--add-service=http

sudofirewall-cmd--permanent--add-service=https

sudofirewall-cmd--reload

```

阻止所有传入连接(作为示例,生产环境需谨慎配置):

```bash

注意:此命令会阻止所有非已允许的服务,慎用!

sudofirewall-cmd--permanent--zone=public--set-target=DROP

sudofirewall-cmd--reload

```

2.软件包管理器配置:优化软件包管理器的镜像源可以提高软件更新速度和可靠性。

更换镜像源:编辑软件源列表文件(如`/etc/apt/sources.list`或`/etc/yum.repos.d/`目录下的文件),将默认镜像源替换为更快的镜像源(如阿里云、腾讯云等提供的镜像源,或国际镜像源如UCSC、M等)。例如,修改Debian/Ubuntu的`sources.list`:

```bash

sudonano/etc/apt/sources.list

```

将里面的源地址替换为:

```

deb/debian/bullseyemainnon-freecontrib

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论