第六周
1. 总结sudo配置文件格式,总结相关示例
sudo配置文件通常指的是/etc/sudoers文件,它用于定义哪些用户或用户组可以以root权限执行特定的命令。
配置文件格式
- 用户或用户组:指定可以使用
sudo的用户或用户组。 - 主机名:指定用户可以在哪些主机上使用
sudo。 - 命令:指定用户可以执行的命令。
- 选项:可以设置一些额外的限制或权限。
示例
# 允许用户alice在所有主机上以root权限执行所有命令
alice ALL=(ALL) ALL
# 允许用户组wheel在所有主机上以root权限执行所有命令
%wheel ALL=(ALL) ALL
# 允许用户bob在特定主机上执行特定命令
bob server1=(root) /usr/bin/vi /etc/httpd/conf/httpd.conf
# 允许用户charlie在所有主机上执行所有命令,但需要输入密码
charlie ALL=(ALL) ALL
2. 搭建时间同步服务器,详细总结配置和搭建过程
时间同步服务器通常使用NTP(Network Time Protocol)或chrony来实现。
使用chrony搭建时间同步服务器
-
ip地址
10.0.0.210 server 10.0.0.211 client 10.0.0.212 client -
配置chrony
服务端:编辑/etc/chrony/chrony.conf文件,配置如下:server ntp.aliyun.com iburst allow 10.0.0.0/24 local stratum 10 -
客户端
server 10.0.0.210 iburst4.重启服务
systemctl restart chrony.service5.查看情况
客户端:
服务端:
3. 总结常见的日志服务管理的常见日志服务
常见的日志服务包括:
- rsyslog:Linux系统中常用的日志服务,支持日志的本地存储和远程转发。
- syslog-ng:另一种流行的日志服务,功能与rsyslog类似,但配置方式略有不同。
- Fluentd:用于收集、转发和存储日志的工具,支持多种数据源和输出目标。
- Logstash:Elastic Stack的一部分,用于解析和处理日志数据。
- ELK Stack:Elasticsearch、Logstash和Kibana的组合,用于日志分析和可视化。
4. 总结日志分类、优先级别,图文并茂解释应用如何将日志发到rsyslog,并写到目标
日志分类
- 系统日志:记录系统运行状态、错误信息等。
- 应用程序日志:记录应用程序的运行日志。
- 安全日志:记录安全相关事件,如用户登录、权限变更等。
日志优先级别
- Emergency (0):系统不可用。
- Alert (1):必须立即采取措施。
- Critical (2):严重错误。
- Error (3):普通错误。
- Warning (4):警告信息。
- Notice (5):正常但重要的信息。
- Info (6):普通信息。
- Debug (7):调试信息。
应用程序如何将日志发送到rsyslog
- 配置应用程序:应用程序需要配置为将日志发送到
rsyslog服务,通常通过配置日志路径或使用syslog函数。 - 配置rsyslog:在
/etc/rsyslog.conf或/etc/rsyslog.d/目录下的配置文件中,定义日志的接收和存储规则。
图解
应用程序 --> syslog() --> rsyslog服务 --> 日志文件/远程服务器
5. 完成功能,将3个主机(要求主机名为IP)的SSH日志,通过rsyslog服务将SSH日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件
在集中主机上配置rsyslog
-
编辑
/etc/rsyslog.conf,开启tcp,udp# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514") -
添加日志规则
:programname, isequal, "sshd" /var/log/all-ssh.log -
重启
rsyslog服务sudo systemctl restart rsyslog
在其他主机上配置rsyslog
-
编辑
/etc/rsyslog.conf*.* @@<集中主机IP>:514 -
重启
rsyslog服务sudo systemctl restart rsyslog
6. 总结/var/log/目录下常用日志文件作用
messages:系统消息日志,记录系统运行状态、错误信息等。auth.log:记录用户认证相关的日志,如登录、权限变更等。syslog:系统日志,记录系统运行的详细信息。cron:记录定时任务的执行日志。maillog:记录邮件系统的日志。secure:记录安全相关的日志,如SSH登录等。
7. 总结journalctl命令的选项及示例
journalctl是systemd的日志工具,用于查看系统日志。
常用选项
-u <unit>:查看指定服务的日志。journalctl -u sshd-b:查看当前启动的日志。journalctl -b-p <priority>:按优先级过滤日志。journalctl -p err-f:实时跟踪日志。journalctl -f--since和--until:按时间范围过滤日志。journalctl --since "2024-01-01" --until "2024-01-31"
8. 完成将多个主机(要求主机名为IP)的logger命令日志集中写入到MySQL表中
在集中主机上配置rsyslog将日志写入MySQL
-
#在 log-server 上安装 rsyslog 的 mysql 包
apt install rsyslog-mysql -
#在数据库服务器上建表
[root@log-server ~]# scp /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql 10.0.0.201:/root/rsyslog.sql root@10.0.0.210's password: mysql 100% 1038 717.7KB/s 00:00 #创建数据库 mysql> create database rsyslog; Query OK, 1 row affected (0.01 sec) mysql> use rsyslog; Database changed #导入SQL文件建表 mysql> source /root/rsyslog.sql; Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.01 sec) #查看表 mysql> show tables; +------------------------+ | Tables_in_rsyslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.01 sec) #创建用户并授权 mysql> create user 'rsysloger'@'10.0.0.%' identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> grant all on rsyslog.* to 'rsysloger'@'10.0.0.%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) #注释两行,不能只监听127.1 [root@mysql-server ~]# cat /etc/mysql/mysql.conf.d/mysqld.cnf ...... ...... #bind-address = 127.0.0.1 #mysqlx-bind-address = 127.0.0.1 [root@mysql-server ~]# systemctl restart mysql.servic -
在 log-server 服务器上配置 mysql 转发
编辑/etc/rsyslog.conf,添加以下内容:[root@log-server:/var/log]#cat /etc/rsyslog.d/mysql.conf ### Configuration file for rsyslog-mysql ### Changes are preserved module (load="ommysql") *.* action(type="ommysql" server="10.0.0.212" db="rsyslog" uid="rsysloger" pwd="123456") -
测试
[root@client-1 ~]# logger "this msg from client-1" [root@client-2 ~]# logger "this msg from client-2" [root@log-server ~]# logger "this msg from log-server"5.查看数据库
#查看数据库 mysql> select FromHost,Message from SystemEvents order by id desc limit 3; +------------+------------------------------+ | FromHost | Message | +------------+------------------------------+ | client-2 | this msg from client-241 | | client-1 | this msg from client-241222 | | log-server | this msg from client-2411 | +------------+------------------------------+ 3 rows in set (0.00 sec)
在其他主机上配置rsyslog
- 编辑
/etc/rsyslog.conf*.* @@<集中主机IP>:514 - 重启
rsyslog服务sudo systemctl restart rsyslog
9. 尝试使用logrotate服务切割message日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩
配置logrotate
- 编辑
/etc/logrotate.d/syslog/var/log/messages { daily size 3M rotate 90 compress delaycompress missingok notifempty create 640 root adm postrotate /usr/lib/rsyslog/rsyslog-rotate endscript } - 重启
logrotate服务sudo systemctl restart logrotate
12. 总结NAS的部署和安装过程
NAS(Network Attached Storage)是一种网络附加存储设备,用于提供集中存储服务。
部署和安装过程
- 选择NAS设备:根据需求选择合适的NAS设备。
- 连接网络:将NAS设备连接到网络。
- 配置IP地址:通过Web界面或管理工具配置NAS的IP地址。
- 设置存储池:创建存储池和共享文件夹。
- 配置用户权限:设置用户访问权限。
- 备份和同步:配置备份任务和文件同步功能。
13. 使用inotify + rsync和serSync实现文件同步,并且总结两种方式的优缺点
使用inotify + rsync实现文件同步
- 安装
inotify-toolssudo apt-get install inotify-tools - 编写同步脚本
#!/bin/bash inotifywait -m /path/to/source -e close_write | while read path action file; do rsync -av --delete /path/to/source/ /path/to/destination/ done - 运行脚本
nohup ./sync.sh &
使用serSync实现文件同步
- 安装
serSyncwget https://github.com/serSync/serSync/releases/download/v1.0/serSync-1.0.tar.gz tar -xzvf serSync-1.0.tar.gz cd serSync-1.0 ./install.sh - 配置
serSync
编辑/etc/serSync/serSync.conf,配置同步路径和目标路径。 - 启动
serSync/etc/init.d/serSync start
优缺点总结
inotify + rsync- 优点:简单易用,灵活性高。
- 缺点:需要手动编写脚本,实时性较差。
serSync- 优点:实时性高,支持多种同步策略。
- 缺点:配置复杂,需要安装额外的软件包。

浙公网安备 33010602011771号