在linux下日志管理工作十分的重要他能解决无码在工作中对日志的分类使以后在有需要的时候能一目了然的茶道自己需要的日志。
1、日志告警级别
内容及格式(*.) 中文含义 等级
*.debug 不包含函数条件或问题的其他信息 7
*.info 提供信息的消息 6 *.none 没有重要级,通常用于排错 *.notice 具有重要性的普通条件 5 *.warning 预警信息 4 *.err 阻止工具或某些子系统部分功能实现的错误条件 3 *.crit 阻止某些工具或子系统功能实现的错误条件 2 *.alert 需要立即被修改的条件 1 *.emerg* 该系统不可用 02.日志类型(及格式) 中文含义
mail.* 电子邮件相关信息 cron.* 计划任务信息; user.* 用户进程信息 .* 包括特权信息如用户名在内的认证活动 news.* 新闻组服务器信息 kern.* 内核信息 daemon.* 后台进程相关信息3.自定义日志
3.1告警级别自定义
*.info /var/log/my_info
3.2日志类型自定义
mail.* /var/log/my_mail
3.总结:自定义信息需要在 /etc/rsyslog.conf 下进行编辑(此操作在客户端服务器上)。
例[root ~]# vim /etc/rsyslog.conf
用vim编辑器打开后在 *.info;mail.none;authpriv.none;cron.none /var/log/messages下面编辑自定义告警和日志类型的目录
mail.* /var/log/my_mail
cron.* /var/log/my_cron user.* /var/log/my_user authpriv.* /var/log/my_authpriv news.* /var/log/my_news kern.* /var/log/my_kern daemon.* /var/log/my_daemon*.debug /var/log/my_debug
*.info /var/log/my_info *.notice /var/log/my_notice *.warning /var/log/my_warning *.err /var/log/my_err *.crit /var/log/my_crit *.alert /var/log/my_alert *.emerg /var/log/my_emerg# ### end of the forwarding rule ###(此栏在编辑器最下面)加上如下ip
*.* @@192.168.29.129 (表示所有设置的告警信息都向中这个ip发送信息)保存后 重启/etc/init.d/rsyslog restart
验证:3.1.1查看/var/log/文件夹里面是否存在上述文件夹
[root log]# ll /var/log/
3.1.2发出一条消息到ip为192.168.29.129的主机上检查是否设置成功
[root yum.repos.d]# logger -p mail.info ok
[root yum.repos.d]# cat /var/log/maillog Sep 28 03:59:17 localhost postfix/postfix-script[1751]: starting the Postfix mail system Sep 28 03:59:17 localhost postfix/master[1752]: daemon started -- version 2.6.6, configuration /etc/postfix Sep 27 22:14:26 localhost root: ok以上表示设置成功
3.2.在服务端进行设置
3.2.1 在/etc/rsyslog.conf 进行设置 目的是为了打开 里面的UDP|TCP协议 使客户端的日志信息能自动收集到服务端主机里面
例 [root@localhost ~]# vim /etc/rsyslog.conf 打开后找到下面内容:
# Provides UDP syslog reception
#$ModLoad imudp #$UDPServerRun 514# Provides TCP syslog reception
#$ModLoad imtcp #$InputTCPServerRun 514将“514” 这一行和上一行的“#”进行删除表示打开UDP|TCP 保存并重启 。
3.2.2验证客户机与服务端机器是否建立日志收集。在客户机上编辑命令:logger -p mail.info ok 然后查看服务端机器是否有客户机日志 :cat /var/log/maillog
例:[root@localhost ~]# logger -p mail.info ok (在客户机上输入)
查看服务端机器:
[root@localhost ~]# cat /var/log/maillog
Sep 28 09:12:00 localhost root: ok 说明客户机的日志能在服务端机器上生成。
4.日志的优化
上述日志收集设置 不能很容易的区分读物端还是客户端机器的日志所有必须对建立的日志进行优化具体做法如下:
在服务端用vim编辑/etc/rsyslog.conf 在文本最后一行加入
$template Remote,"/var/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log":fromhost-ip, !isequal, "127.0.0.1" ?Remote
重启文本:/etc/init.d/rsyslog resatart | service rsyslog restart
验证: 在客户机上输入logger -p mail.info ok 在服务端机器进行查看 ls /var/log
例:
[root@localhost ~]# logger -p mail.info ok (客户机输入)
[root@localhost ~]# ls /var/log/ (服务端查看)
172.16.10.14验证成功!
5.日志的切割/轮回(优化)
日志的切割有利于我们服务器端在收集其他客户机日志的时候将他们分割成每天或每小时或每周,方便我们在日后的日志查询中准确的找到自己想要的日志和备份。
5.1.1编辑 在/etc/logrotate.conf 或者/etc/logrotate.d/()在logrotate.d文件夹中随便建
例:[root@localhost ~]# vim /etc/logrotate.conf
/var/log/log-file { daily rotate 5 compress delaycompress missingok notifempty create 644 root root postrotate /usr/bin/killall -HUP rsyslogd endscript } monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。 rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。 compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。 delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。 missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。 notifempty: 如果日志文件为空,轮循不会进行。 create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。 postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。 } /var/log/log-file { size=50M rotate 5 create 644 root root postrotate /usr/bin/killall -HUP rsyslogd endscript }
5.1.2在/var/log/ 建立一个log-file文件夹 并随机输入一点内容(无内容在进行强制切割下不会成功)
5.1.3 强制轮循/切割:
logrotate -vf /etc/logrotate.conf
5.1.4验证
例:
[root@localhost log]# ll /var/log/|grep 'log-*'
。 -rw-r--r-- 1 root root 0 Sep 28 16:52 log-file
-rw-r--r-- 1 root root 1009 Sep 28 16:52 log-file.1