logrotate与rsyslog基本使用

本文介绍CentOS系统中logrotate的日志切割方法及rsyslog的日志收集配置。logrotate通过设置不同的规则实现自动化的日志文件管理,而rsyslog能够跨服务器收集并集中存储日志文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos 默认都有这两个服务
logrotate 日志切割
rsyslog 日志管理(可进行日志收集(转存储))

logrotate:
logrotate 默认配置在/etc/logrotate.conf 在这里会配置有相关默认配置,
其中 include 包含子配置项(可以在include包含的目录中配置不同服务日志文件的不同logrotate规则)
如果配置的是daily 则将会启动/etc/cron.daily/logrotate 脚本(自动执行) (执行的时间是在/etc/anacrontab 中 一般不修改该文件)
linux 定时任务将会执行 但是由于不清楚logrotate 每天切割日志的具体时间,因此可以
自己配置,比如复制一份/etc/logrotate.conf 并修改include 参数目录下的配置
最后通过logrotated -dvf copylogrotate.conf 切割日志 (或者自己配置crontab 定时切割 )
在配置项中记得加 copytruncate 意思是先copy一份原始日志并重命名,然后清空原始日志

如果要切割uwsgi 的日志
因为不希望切割日志的时候重启uwsgi 服务(日志不会重启),因此在uwsgi配置项中添加
touch-logreopen = /root/logrr/toucforlogrotate
当touch-logreopen 指定的文件被touch 之后 时间戳发生变化 会让uwsgi 服务重新打开日志 并且不会重启服务

rsyslog:
使用rsyslog 进行日志收集
默认的配置在/etc/rsyslog.conf
例如:要将A 服务器 192.168.1.1 中uwsgi 服务的日志转存储到 B服务器 192.168.1.2的/root/log/from_a.log 中
在A中安装uwsgi-rsyslog 插件(uwsgi-syslog一起)
uwsgi 的配置项中添加:
plugins = python,rsyslog,syslog
req-logger = rsyslog:192.168.1.2:514,req-uwsgilog_from_a
logger = rsyslog:192.168.1.2:514,uwsgilog_from_a

在B服务器中的/etc/rsyslog.conf 添加一下(当然还有别的配置项要开启):
:programname,isequal,"req-uwsgilog_from_a" /root/log/from_a.log
:programname,isequal,"uwsgilog_from_a" /root/log/from_a.log #将req-uwsgilog_from_a和uwsgilog_from_a 都收集到from_a.log 文件中

重启B服务器 rsyslog: service rsyslog restart
重启A服务器的uwsgi
完成!

<think>我们正在解决Kali Linux中rsyslog.service not found的问题。根据用户提供的引用和之前的对话,我们知道Kali Linux默认可能没有安装rsyslog,或者服务被禁用。以下是解决步骤: 1. **检查rsyslog是否安装**: 在Kali Linux中,rsyslog可能不是默认安装的。使用以下命令检查: ```bash dpkg -l | grep rsyslog ``` 2. **安装rsyslog**: 如果没有安装,使用apt安装: ```bash sudo apt update sudo apt install rsyslog ``` 3. **启动并启用rsyslog服务**: 安装后,启动服务并设置为开机自启: ```bash sudo systemctl start rsyslog sudo systemctl enable rsyslog ``` 4. **检查服务状态**: ```bash sudo systemctl status rsyslog ``` 5. **配置rsyslog(如果需要)**: 默认配置通常已经包含auth.log的配置。检查配置文件`/etc/rsyslog.conf`,确保有如下行(通常默认已存在): ``` auth,authpriv.* /var/log/auth.log ``` 6. **重启服务并测试**: 修改配置后重启服务: ```bash sudo systemctl restart rsyslog ``` 然后测试生成认证日志,例如使用`sudo su`或`ssh localhost`,再查看`/var/log/auth.log`。 7. **如果问题依旧**: - 检查是否有其他日志服务(如systemd-journald)冲突,但通常可以共存。 - 查看系统日志:`journalctl -xe`,可能会发现rsyslog启动失败的原因。 8. **引用说明**: 用户提供的引用中,引用[1]提到了SSH配置(限制root登录)和关闭不必要的服务,这可能日志服务无关,但可以确保SSH服务正常以测试认证日志。引用[2]是重置root密码的方法,当前问题无关。引用[3]提到了运行级别(runlevel)或目标(target)的概念,在systemd系统中,rsyslog服务应该在多用户目标(multi-user.target)中启用。 因此,按照上述步骤安装和配置rsyslog即可解决问题。 生成相关问题:</think>### Kali Linux 中 `rsyslog.service not found` 解决方法 在 Kali Linux 中遇到 `rsyslog.service not found` 错误,通常是由于 **rsyslog 未安装** 或 **服务被禁用** 所致。以下是完整的解决步骤: --- #### 1. **检查 rsyslog 安装状态** ```bash # 检查是否安装 dpkg -l | grep rsyslog # 若无输出或显示 "no packages found",则需要安装 sudo apt update && sudo apt install rsyslog -y ``` --- #### 2. **启动并启用服务** ```bash # 启动服务 sudo systemctl start rsyslog # 设置开机自启 sudo systemctl enable rsyslog # 验证状态 sudo systemctl status rsyslog ``` > ✅ 正常状态应显示 `active (running)` --- #### 3. **检查服务依赖关系** Kali 默认使用 `systemd-journald`,需确认 rsyslog 是否被正确集成: ```bash # 检查 systemd 日志服务 sudo journalctl -u rsyslog --no-pager ``` 若输出包含 `Cannot find service file`,需重建服务链接: ```bash sudo systemctl daemon-reload ``` --- #### 4. **验证日志生成** ```bash # 触发认证事件(如 SSH 登录) ssh localhost # 检查日志文件 sudo tail -f /var/log/auth.log ``` > 成功时应显示类似: > `sshd[pid]: Accepted password for user...` --- #### 5. **配置加固(可选)** 参考引用[1]的安全建议: ```bash # 编辑配置文件 sudo vi /etc/rsyslog.conf # 添加安全限制(示例): module(load="imtcp") input(type="imtcp" port="514" ruleset="remote") $AllowedSender TCP, 192.168.1.0/24 # 仅允许指定网段[^1] ``` --- ### 常见问题排查 | 现象 | 解决方法 | |------|----------| | `Failed to start rsyslog.service: Unit not found` | 执行 `sudo apt install --reinstall rsyslog` | | 日志文件权限错误 | `sudo chown syslog:adm /var/log/auth.log` | | 磁盘空间不足 | `df -h` → 清理 `/var/log/` 旧文件 | | 服务冲突 | 禁用 `systemd-journald`:`sudo systemctl mask systemd-journald` | > 💡 **提示**:若需临时查看认证日志,可直接使用 `journalctl -u sshd`(依赖 `systemd-journald`)[^3]。 --- ### 预防措施 1. **定期备份配置**: ```bash sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak ``` 2. **启用日志监控**: ```bash sudo apt install logwatch && sudo logwatch --output mail ``` 3. **限制 root 访问**(参考引用[1]): ```bash sudo vi /etc/ssh/sshd_config # 修改 PermitRootLogin no → 重启 sshd ``` > ⚠️ **重要**:系统更新后建议验证服务状态 `systemctl status rsyslog`[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值