第六周

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搭建时间同步服务器

  1. ip地址

    10.0.0.210 server
    10.0.0.211 client
    10.0.0.212 client
    
  2. 配置chrony
    服务端:编辑/etc/chrony/chrony.conf文件,配置如下:

    server ntp.aliyun.com iburst
    allow 10.0.0.0/24
    local stratum 10
    
  3. 客户端

    server 10.0.0.210 iburst
    

    4.重启服务

    systemctl restart chrony.service
    

    5.查看情况

    客户端:

    image-20250326212918988

    image-20250326213000597

    服务端:

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

  1. 配置应用程序:应用程序需要配置为将日志发送到rsyslog服务,通常通过配置日志路径或使用syslog函数。
  2. 配置rsyslog:在/etc/rsyslog.conf/etc/rsyslog.d/目录下的配置文件中,定义日志的接收和存储规则。

图解

应用程序 --> syslog() --> rsyslog服务 --> 日志文件/远程服务器

5. 完成功能,将3个主机(要求主机名为IP)的SSH日志,通过rsyslog服务将SSH日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件

在集中主机上配置rsyslog

  1. 编辑/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")
    
  2. 添加日志规则

    :programname, isequal, "sshd" /var/log/all-ssh.log
    
  3. 重启rsyslog服务

    sudo systemctl restart rsyslog
    

在其他主机上配置rsyslog

  1. 编辑/etc/rsyslog.conf

    *.* @@<集中主机IP>:514
    
  2. 重启rsyslog服务

    sudo systemctl restart rsyslog
    

6. 总结/var/log/目录下常用日志文件作用

  • messages:系统消息日志,记录系统运行状态、错误信息等。
  • auth.log:记录用户认证相关的日志,如登录、权限变更等。
  • syslog:系统日志,记录系统运行的详细信息。
  • cron:记录定时任务的执行日志。
  • maillog:记录邮件系统的日志。
  • secure:记录安全相关的日志,如SSH登录等。

7. 总结journalctl命令的选项及示例

journalctlsystemd的日志工具,用于查看系统日志。

常用选项

  • -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

  1. #在 log-server 上安装 rsyslog 的 mysql 包

    apt install rsyslog-mysql
    
  2. #在数据库服务器上建表

    [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
    
    
  3. 在 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")
    
  4. 测试

    
    [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

  1. 编辑/etc/rsyslog.conf
    *.* @@<集中主机IP>:514
    
  2. 重启rsyslog服务
    sudo systemctl restart rsyslog
    

9. 尝试使用logrotate服务切割message日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩

配置logrotate

  1. 编辑/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
    }
    
  2. 重启logrotate服务
    sudo systemctl restart logrotate
    

12. 总结NAS的部署和安装过程

NAS(Network Attached Storage)是一种网络附加存储设备,用于提供集中存储服务。

部署和安装过程

  1. 选择NAS设备:根据需求选择合适的NAS设备。
  2. 连接网络:将NAS设备连接到网络。
  3. 配置IP地址:通过Web界面或管理工具配置NAS的IP地址。
  4. 设置存储池:创建存储池和共享文件夹。
  5. 配置用户权限:设置用户访问权限。
  6. 备份和同步:配置备份任务和文件同步功能。

13. 使用inotify + rsyncserSync实现文件同步,并且总结两种方式的优缺点

使用inotify + rsync实现文件同步

  1. 安装inotify-tools
    sudo apt-get install inotify-tools
    
  2. 编写同步脚本
    #!/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
    
  3. 运行脚本
    nohup ./sync.sh &
    

使用serSync实现文件同步

  1. 安装serSync
    wget 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
    
  2. 配置serSync
    编辑/etc/serSync/serSync.conf,配置同步路径和目标路径。
  3. 启动serSync
    /etc/init.d/serSync start
    

优缺点总结

  • inotify + rsync
    • 优点:简单易用,灵活性高。
    • 缺点:需要手动编写脚本,实时性较差。
  • serSync
    • 优点:实时性高,支持多种同步策略。
    • 缺点:配置复杂,需要安装额外的软件包。
posted @ 2025-03-30 20:12  你好,运维人  阅读(21)  评论(0)    收藏  举报