服务管理
启动服务:systemctl start 服务名
停止服务:systemctl stop 服务名
重启服务:systemctl restart 服务名
重新加载配置文件:systemctl reload 服务名(期间并不停止服务进程)
查看服务运行状态:systemctl status 服务名
获取服务启动报错原因:systemctl status 服务名 -l
开机自启动服务:systemctl enable 服务名
关闭开机自启动服务:systemctl disable 服务名
列出系统中所有服务:systemctl list-units
查看服务是否开机自启动:systemctl list-unit-files
实例:搭建时间服务器
公共时间服务器:阿里,腾讯,百度......
私有时间服务器:由自己搭建
查看服务器的时区:timedatectl
修改主机名:hostnamectl set-hostname 新主机名
服务器端
准备工作:
保证yum仓库可用,保证网络可用
关闭防火墙:systemctl stop firewalld
关闭防火墙开机自启动:systemctl disable firewalld
临时关闭selinux:setenforce 0
永久关闭selinux:vim /etc/selinux/config
SELINUX=disable
①安装时间服务器软件:yum -y install ntp
②修改服务配置文件vim /etc/ntp.conf
restrict default nomodify //不允许客户端登录,也不允许客户端修改
server 127.127.1.0 //使用本地的bios时间,自己跟自己同步
fudge 127.127.1.0 stratum 10 //定义级别,范围0-16,越小越精准
③启动ntp服务
systemctl restart ntpd
客户端
准备工作:
保证yum仓库可用,保证网络可用
①安装ntpdate服务:yum -y install ntpdate
②进行时间同步:ntpdate 时间服务器的IP地址
注意
①如果两台在不同的主机上的虚拟机都是NAT模式,两台虚拟机不能互相通讯
②如果两台在同一个主机上的虚拟机都是NAT模式,两台虚拟机可以互相通讯
③如果两台虚拟机都是桥接模式,两台虚拟机可以互相通讯
④如果两台虚拟机分别是NAT模式和桥接模式
NAT模式的虚拟机可以访问桥接模式的虚拟机
桥接模式的虚拟机不能访问NAT模式的虚拟机
日志管理
日志分类:系统日志,进程日志,应用程序日志
日志的用途:排错,追溯事件,统计流量,审计安全行为
rsyslog:系统自带的日志管理服务,默认运行
日志的分析处理
少量日志使用 vim cat grep awk等文档处理命令查看
大量日志使用splunk、elk [elasticsearch logstash Kibana]
日志服务rsyslog
/var/log :系统默认存放日志的目录,存放常见的日志文件(系统、进程、应用程序)
/etc/rsyslog.conf :日志服务的配置文件
/etc/rsyslog.d/ :日志服务的子配置文件(包含于日志配置文件)
/etc/rsyslog.conf 日志配置文件解释:
日志管理规则
通过 man 5 rsyslog.conf 可以看到日志管理规则中的日志对象和日志级别
日志对象
日志对象 | 日志内容 |
auth/secure | 安全验证信息 |
authpriv | ssh、ftp等登录信息 |
cron | 系统执行定时任务产生的信息 |
daemon | 守护进程产生的信息 |
kern | 内核信息 |
lpr | 打印相关信息 |
| 邮件系统信息 |
mark | 服务内部的信息,时间标识 |
news | 新闻服务器相关信息 |
syslog | 日志系统自身信息 |
user | 用户程序产生的相关信息 |
uucp | Unix-to-Unix Copy 两个unix之间的相关通信 |
local0~local7 | 自定义日志对象 |
日志级别
从上往下等级越来越高,问题越来越严重
日志等级 | 等级说明(等级越高,记录越少) |
none | 不记录任何信息 |
debug | 包含详细的开发情报的信息,通常只在调试一个程序时使用 |
info | 通用性信息,一般用来提供有用信息 |
notice | 正常信息,但是较为重要,可能需要处理 |
warn/warning | 警告信息 |
error/err | 错误信息,某个功能或者模块不能正常工作的信息 |
crit | 严重级别,系统或整个软件不能正常工作的信息,例如硬盘错误 |
alert | 需要立刻修改的信息,如系统数据库被破坏,ISP连接丢失 |
emerg/panic | 紧急情况,内核崩溃等重要信息 |
日志规则:
日志对象.日志级别:只有比当前日志级别更高的级别信息会被记录进日志(等级越高,记录越少;等级越低,记录越多)
*.*:将所有日志对象的所有日志级别信息记录进日志
日志对象.=日志级别:只有当前日志级别的信息会被记录进日志
日志对象.!日志级别:除了当前日志级别的级别信息都会被记录进日志
日志规则格式:
日志对象.日志级别;日志对象.日志级别 日志文件名字及存放路径
实例:使用自定义日志对象记录sshd服务的日志文件
①修改sshd服务的主配置文件:vim /etc/ssh/sshd_config
将配置文件中的 SyslogFacility AUTHPRIV 改为 SyslogFacility local0
使sshd服务的日志文件由local0记录
②修改rsyslog服务的主配置文件:vim /etc/rsyslog.conf
在配置文件的RULES部分添加一行:local0.* /var/log/sshd_log
使sshd服务的所有日志信息被 /var/log/sshd_log 日志文件记录
③重启服务
systemctl restart rsyslog
systemctl restart sshd
④使用另一台服务器远程登录该服务器验证
因为在ssh远程登录的过程中涉及到密码验证,所以实际上/var/log/secure文件中也会留下相关记录
实例:远程日志传输
准备工作:需要关闭防火墙和selinux
两台虚拟机:发送端centos-1;接收端centos-2;
①发送端和接收端修改rsyslog的配置文件/etc/rsyslog.conf
打开TCP或UDP的传输协议(此处选择用TCP协议传输)
②在发送端的配置文件/etc/rsyslog.conf添加规则
此处规则为:将发送端的local0日志对象相关sshd服务日志使用TCP协议发送给接收端
若使用udp协议传输
日志对象.日志级别 @接收端IP地址
若使用udp协议传输
日志对象.日志级别 @@接收端IP地址
udp用@;tcp用@@
③发送端和接收端重启rsyslog服务
systemctl restart rsyslog
④验证
发送端ssh使用exit登出,然后再次远程登入
接收端的默认保存接受日志的文件为 /var/log/massage
/var/log/ 内的日志文件
系统自带日志文件
massage:系统日志文件,记录对系统做的操作
secure:认证安全相关的日志文件,记录了系统用户,ssh远程的登录记录,包括失败登录记录和成功登录记录
cron:计划任务日志
yum.log:记录yum软件包管理相关的日志
wtmp:二进制文件,使用w命令调取该文件,查看当前登录的用户
btmp:二进制文件,使用last命令调取该文件,查看最近登陆的用户
lastlog:二进制文件,使用lastlog命令调取该文件,查看系统中所有用户的登录情况
服务进程相关的日志文件
mysqld.log:MySQL进程的记录日志文件
access_log:apache进程的记录日志文件
xferlog:访问FTP服务器的相关记录日志文件
日志轮转(日志切割)
对象:日志文件
功能:
防止日志文件过大,导致日志文件无法打开或打开过慢
定期清除旧的日志数据文件,避免浪费磁盘资源
日志轮转服务:logrotate
日志轮转规则主配置文件:/etc/logrotate.conf
weekly:每周轮转一次
hourly/daily/weekly/monthly/yearly:每 小时/天/周/月/年 轮转一次
rotate 4:最多保留4份旧的轮转日志
rotate 0:不保留旧的日志文件,直接删除
create:轮转后创建新的日志文件
create的格式:create 四位权限数 属主 属组
dateext:以轮转时的日期作为后缀名保留旧的日志文件
compress:会对旧的日志文件使用gzip进行压缩
nocompress:不会对旧的日志文件进行压缩
delaycompress:延迟压缩,本次轮转时不会立即压缩旧的日志文件,而是延迟在下一次轮转时压缩此次旧的日志文件。通常和 compress 连用,否则没有意义
minsize:指定日志文件大小的最小值,只有当日志文件的大小超过 minisize 时,并且到达了指定的时间周期,logrotate 才会触发轮转。如果文件大小没有达到这个最小值,即使到达了指定的时间周期,logrotate 也不会执行轮转操作。
maxsize:
日志轮转规则子配置文件目录:/etc/logrotate.d/ (针对于某个特定服务的日志轮转规则)
自定义规则:
轮转日志名称及路径{
}
手动强制轮转:logrotate -f 轮转规则配置文件