利用 ubuntu 中 syslog 记录外部设备日志

本文档详细介绍了如何在Ubuntu 8.04服务器上配置syslog,以便记录Juniper ISG1000的日志,并保留3个月。内容包括修改syslog配置允许记录外部日志,定义日志类型,创建日志存储目录,解决重复记录和文件超大问题,以及通过logrotate进行日志轮转和压缩。最后,还针对日志文件提前轮转和文件命名不规范的问题提出了解决方案。
要求:
利用 ubuntu 8.04 服务器版的 syslog 记录 juniper isg1000 日志,保留3个月。

1、允许 syslog 记录外部日志
修改 /etc/default/syslogd,把其中的 SYSLOGD="" 改为 SYSLOGD="-r"

2、定义外部日志类型
修改 juniper isg1000 日志定义,让其生成的日志定义为 local7,并向 ubuntu 服务器发送日志。

3、定义日志文件
考虑到日志文件比较多,在 /var/log 下新建 firewall 目录,用于保存日志文件。目录属性 755。
修改 /etc/syslog.conf,在其中增加下面一行:
local7.* 
                       -/var/log/firewall/firewall.log

经过测试记录不成问题,但发现有下面几个严重问题。

4、重复记录问题
syslog 不光在 firewall.log 中记录,还在 /var/log 中的 syslog 和 messages 记录,由于日志很大,这下麻烦了。看看 syslog.conf 的 man,居然还有个 ! 功能,在 syslog.conf 文件中的 syslog 和 messages 定义前面加上了 !local7.*,感觉不错,syslog 不再向 syslog 和 messages 文件中记录设备日志了。

5、文件超大问题
syslog 记录的日志文件最大不超过2.5G,如果超过了,将停止记录。而 isg1000 4个小时左右的日志就达到这个数量了。必须设置日志轮转。在 /etc/logrotate.d 中新建 firewall 日志轮转控制文件,属性644,firewall 内如如下:

/var/log/firewall/firewall.log {
  start 1000
  rotate 512
  maxage 100
  size 1500M
  compress
  delaycompress
  missingok

  postrotate
    /usr/bin/killall -HUP syslogd
  endscript
}

以上内容简单解释:
由于日志文件需要保存3个月,且平均每天生成5个日志文件,设置最多保留512个,保留时间100天。
文件后缀编号从1000开始,比从1开始在排序上要好看。
文件超过1500M的时候轮转。
为了减少存储空间占用,轮转后的日志文件需要压缩,但不是轮转后马上压缩,而是轮转下一个的时候,再压缩,以防 syslog 继续写入当前文件时候丢失数据。

经过以上设置,感觉可以,谁知道使用几天,发现还有问题。

6、再次解决文件超大问题
firewall.log 文件依然是2G多,没有按照设定达到1500M的时候轮转,究竟为什么?仔细看 man logrotate ,呵呵,原来如此,logrotate 每天运行一次,等它运行的时候,firewall.log 早就达到2G了。怎么办,让它每小时运行一次试试看,把 /etc/cron.daily/logtotate 文件拷贝到 /etc/cron.hourly 中一份。效果不错,看来问题解决了。

7、解决日志文件不到1500M就轮转、且日志文件名没有按定义规则生成问题
经过若干天运行,发现个小小问题。若干文件不到设置的1500M就轮转了,而且文件名没有按定义方式生成,而是原始的 firewall.log.0 方式,但是它们都有共性,都是早上 6:47 生成的。让我想想,肯定是 cron 中 sysklogd 脚本搞的鬼。进入 /etc 中的各个 cron 子目录中,把下面这句或者类似的
logs=$(syslogd-listfiles)
加上 -s firewall.log 参数,改为
logs=$(syslogd-listfiles -s firewall.log)
让日志服务不再处理 firewall.log 日志。

8、解决其它问题
暂时没有。
### 在 Ubuntu 系统中挂载设备的完整方法 在 Ubuntu 系统中挂载设备(如部硬盘、网络共享等)需要执行一系列操作,包括安装必要的工具、创建挂载点、配置挂载参数等。以下是关于如何在 Ubuntu 中挂载设备的详细说明。 #### 1. 安装必要工具 为了支持不同类型的设备挂载,首先需要确保系统已安装所需的工具包。例如,对于 CIFS/SMB 共享挂载,需要安装 `cifs-utils` 工具包: ```bash sudo apt-get update sudo apt-get install cifs-utils ``` 如果挂载的是本地磁盘或分区,则通常不需要额安装工具,但可能需要格式化磁盘为兼容的文件系统类型,例如 ext4[^3]。 #### 2. 查询设备信息 在挂载设备之前,需要确定设备的路径和分区信息。可以使用以下命令列出所有连接的磁盘和分区: ```bash sudo fdisk -l ``` 通过此命令可以找到目标设备的路径,例如 `/dev/sdb1` 或 `/dev/sdc1`。如果是网络共享,则需要知道共享的地址和凭据。 #### 3. 创建挂载点 挂载点是设备在文件系统中的挂载位置。可以选择一个现有的目录作为挂载点,或者创建一个新的目录。例如: ```bash sudo mkdir /mnt/external_drive ``` #### 4. 挂载设备 根据设备类型,选择合适的挂载命令。以下是几种常见场景的挂载方法: - **挂载本地磁盘或分区**: 使用 `mount` 命令将设备挂载到指定的挂载点: ```bash sudo mount /dev/sdb1 /mnt/external_drive ``` - **挂载 CIFS/SMB 共享**: 如果要挂载网络共享,可以使用以下命令,其中 `-o` 参数用于指定挂载选项(如用户名和密码): ```bash sudo mount -t cifs //server/share /mnt/external_drive -o username=user,password=pass ``` #### 5. 配置开机自动挂载 为了实现设备的开机自动挂载,需要编辑 `/etc/fstab` 文件并添加相应的挂载条目。以下是两种常见的配置示例: - **本地磁盘**: 在 `/etc/fstab` 文件中添加如下行: ``` /dev/sdb1 /mnt/external_drive ext4 defaults 0 2 ``` - **CIFS/SMB 共享**: 对于网络共享,可以添加如下条目: ``` //server/share /mnt/external_drive cifs username=user,password=pass,iocharset=utf8 0 0 ``` #### 6. 格式化新硬盘(如果需要) 如果设备尚未被格式化,可以使用 `mkfs` 命令将其格式化为适合的文件系统类型。例如,格式化为 ext4 文件系统: ```bash sudo mkfs -t ext4 /dev/sdb1 ``` 注意:格式化会清除设备上的所有数据,请确保备份重要信息后再执行此操作[^3]。 --- ### 注意事项 - 确保挂载点的权限设置正确,以避免访问问题。 - 对于网络共享,建议将凭据存储在安全的位置,并通过 `credentials` 文件引用,而不是直接写入 `/etc/fstab`[^1]。 - 如果遇到挂载失败的问题,可以检查日志文件 `/var/log/syslog` 或使用 `dmesg` 命令查看错误信息。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值