如何使用系统自带的日志转储功能logroate.存放应用日志

Linux日志服务介绍

1. 在Linux系统,大部分日志都是由syslog日志服务驱动和管理的
syslog服务由两个重要的配置文件控制管理,分别是/etc/syslog.conf主配置文件和/etc/sysconfig/syslog辅助

  配置文件, /etc/init.d/syslog是启动脚本,这里主讲主配置文件/etc/syslog.conf:

  /etc/syslog.conf 语句结构:

  [root@xhot ~]# grep -v "#" /etc/syslog.conf //列出非#打头的每一行

  *.info;mail.none;authpriv.none;cron.none /var/log/messages

  authpriv.* /var/log/secure

  mail.* -/var/log/maillog

  cron.* /var/log/cron

  .emerg

  uucp,news.crit /var/log/spooler

  local7.* /var/log/boot.log

  选择域(消息类型.错误级别) 动作域

2. 消息类型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7.

  错误级别:(8级)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic

  动作域:file,user,console,@remote_ip

  举如上的/etc/syslog.conf文件三个例子:

  *.info;mail.none;authpriv.none;cron.none /var/log/messages

  表示info级别的任何消息都发送到/var/log/messages日志文件,但邮件系统、验证系统

  和计划任务的错误级别信息就除外,不发送(none表示禁止)

  cron.* /var/log/cron 表示所有级别的cron信息发到/var/log/cron文件

  .emerg 表示emerg错误级别(危险状态)的所有消息类型发给所有用户

Linux日志服务器配置

  此服务器的配置非常简单,只是修改一个文件的一个地方,然后重启服务即可:

  [root@xhot ~]# grep -v "#" /etc/sysconfig/syslog

  SYSLOGD_OPTIONS="-m 0 -r" //只要在这里添加“-r”就行咯

  KLOGD_OPTIONS="-x"

  SYSLOG_UMASK=077

  [root@xhot ~]# service syslog restart

  关闭内核日志记录器: [确定]

  关闭系统日志记录器: [确定]

  启动系统日志记录器: [确定]

  启动内核日志记录器: [确定]

对于发送消息到服务器的OS,只要在写/etc/syslog.conf主配置文件的时候,作用域

  为@server-ip就行了,比如针对218.192.87.24这台日志服务器,把一台ubuntu系统的所有

  info级别的auth信息发给日志服务器,那么对于ubuntu系统的/etc/syslog.conf文件最后一

  行添加 auth.info @218.192.87.24 就OK了

日志转储服务

  系统工作到了一定时间后,日志文件的内容随着时间和访问量的增加而越来越多,

  日志文件也越来越大。而且当日志文件超过系统控制范围时候,还会对系统性能

  造成影响。转储方式可以设为每年转储、每月转储、每周转储、达到一定大小转储。

  在Linux系统,经常使用“logrotate”工具进行日志转储,结合cron计划任务,可以轻松

  实现日志文件的转储。转储方式的设置由“/etc/logrotate.conf”配置文件控制:

  [root@xhot ~]# cat /etc/logrotate.conf

  # see "man logrotate" for details //可以查看帮助文档

  # rotate log files weekly

  weekly //设置每周转储

  # keep 4 weeks worth of backlogs

  rotate 4 //最多转储4次

  # create new (empty) log files after rotating old ones

  create //当转储后文件不存储时创建它

  # uncomment this if you want your log files compressed

  #compress //以压缩方式转储

  # RPM packages drop log rotation information into this directory

  include /etc/logrotate.d //其他日志文件的转储方式,包含在该目录下

  # no packages own wtmp -- we'll rotate them here

  /var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数

  monthly //每月转储

  create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,

  所属组为utmp,对应的权限为0664

  rotate 1 //转储一次

  }

  # system-specific logs may be also be configured here.

举两个例子: 
为/var/log/news/目录下的所有文件设置转储参数,每周转储,转储2次,转储

时将老的日志文件放到/var/log/news/old目录下,若日志文件不存在,则跳过。完成后重启

news新闻组服务,转储时不压缩。那么可以在/etc/logrotate.conf文件的最后添加如下:

  /var/log/news/*{

  monthly

  rotate 2

  olddir /var/log/news/old

  missingok

  postrotate

  kill -HUP cat /var/run/inn.pid

  endscript

  nocompress

  }

另一个例子:为/var/log/httpd/access.log和/var/log/httpd/error.log日志设置转储参数。转储

  5次,转储时发送邮件给root@localhost用户,当日志文件达到100KB时才转储,转储后重启

  httpd服务,那么可以直接在/etc/logrotate.conf文件的最后添加如下:

  /var/log/httpd/access.log /var/log/http/error.log{

  rotate 5

  mail root@localhost

  size=100k

  sharedscripts

  /sbin/killall -HUP httpd

  endscript

  }

自定义日志转储(/etc/logrotate.d/*)

  通过下面一个例子将所有类型错误级别为info的日志转储到/var/log/test.log日志文件中,并设置

  /var/log/test.log达到50KB后进行转储,转储10次,转储时压缩,转储后重启syslog服务:

  1、修改/etc/syslog.conf文件使得如下:

  [root@xhot ~]# tail -1 /etc/syslog.conf //查看该文件的最后一行

  *.info /var/log/test.log

  2、重启syslog服务:

[root@xhot ~]# /sbin/service syslog restart

  关闭内核日志记录器: [确定]

  关闭系统日志记录器: [确定]

  启动系统日志记录器: [确定]

  启动内核日志记录器: [确定]

  3、创建/etc/logrotate.d/test.log日志转储参数配置文件,添加如下:

[root@xhot ~]# vim /etc/logrotate.d/test.log

  [root@xhot ~]# cat /etc/logrotate.d/test.log

  /var/log/test.log{

  rotate 10

  size = 50k

  compress

  postrotate

  killall -HUP syslog

  endscript

  }

  4、查看文件/etc/cron.daily/logrotate确保如下:

  [root@xhot ~]# cat /etc/cron.daily/logrotate

  #!/bin/sh

  /usr/sbin/logrotate /etc/logrotate.conf

  EXITVALUE=$?

  if [ $EXITVALUE != 0 ]; then

  /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

  fi

  exit 0

  5、查看转储后的文件

[root@xhot log]# pwd

  /var/log

  [root@xhot log]# ls test.log*

  …… //结果等要转储的时候会发现压缩文件和原本的test.log文件

syslog是一个被UNIX和Linux广泛使用的日志系统,Linux系统中大部分的日志文件都是通过它进行管理的。本节将对syslog的功能及配置、日志文件的查看和管理,以及syslog中默认配置的日志文件进行介绍。

12.2.1 syslog简介

syslog是一个历史悠久的日志系统,几乎所有的UNIX和Linux操作系统都是采用syslog进行系统日志的管理和配置。Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息。这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。而执行这个过程的程序就是syslog。syslog可以根据信息的来源以及信息的重要程度将信息保存到不同的日志文件中,例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。在默认的syslog配置下,日志文件通常都保存在“/var/log”目录下。syslog的守护进程为syslogd,系统启动时,默认会自动运行syslogd守护进程。

如果要手工启动,可以使用如下命令:

/sbin/syslogd

在修改syslog配置后,需要重新启动syslogd守护进程才能使新的配置生效。其命令如下所示。

killall -HUP syslogd

Red Hat Enterprise Linux 5.2安装后默认就已经在syslog中定义了一些日志文件,这些日志的位置以及它们的说明如表12.2所示。

日 志 文 件

说明

/var/log/message

系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一

/var/log/secure

与安全相关的日志信息

/var/log/maillog

与邮件相关的日志信息

/var/log/cron

与定时任务相关的日志信息

/var/log/spooler

与UUCP和news设备相关的日志信息

/var/log/boot.log

守护进程启动和停止相关的日志消息




本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/2052127,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell 多行注释

:<<BLOCK 中间为要注释的内容 BLOCK转载于:https://www.cnblogs.com/S--S/p/9817660.html

natcat for mysql_用Navicat for mysql连接mysql报错1251-解决办法

TP框架连接mongodb报错及解决办法mongodb版本3.4.7 1.认证错误:Failed to connect to: localhost:27017: Authentication failed on database test ...Loadrunner参数化连接oracle、mysql数据源报错及解决办法Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是…

如何在Mac上设置FaceTime

FaceTime is Apple’s built-in video and audio calling app. It pairs with your iPhone and allows you to make phone calls on macOS. FaceTime是Apple的内置视频和音频通话应用程序。 它可以与iPhone配对使用&#xff0c;并允许您在macOS上拨打电话。 You don’t need an…

移动视频技术

在语音通信已得到教育、医疗、社交、电子商务等多个领域的移动应用和充分发展的今天&#xff0c;人们已不满足于仅依靠语音电话来传达信息。开发者都需要结合自身业务场景在其产品中嵌入语音聊天、视频通话、语音对讲等实时通话功能。但较高的技术门槛和开发成本成为普通开发者…

hashlib 模块用来进行hash

hashlib的基本概述&#xff1a; python中的 hashlib 模块用来进行hash 或者md5加密&#xff0c;而且这种加密是不可逆的&#xff0c;所以这种算法又被称为摘要算法&#xff0c; 其支持Opennssl库提供的所有算法&#xff0c;包括 md5、sha1、sha224、sha256、sha512 等。 hash是…

在Ubuntu 11.10中将窗口按钮移回右侧

As of Ubuntu 10.04, the minimize, maximize, and close buttons on all windows were moved to the left side and the system menu was removed. Prior to version 11.10, you could use several methods to restore the original button arrangement. 从Ubuntu 10.04开始&a…

java测试开发_测试开发系类之Java常用知识点

测试需要的两门语言&#xff1a;Java&#xff0c;Python测试开发&#xff1a;开发测试脚本->开发测试框架Java需要掌握内容&#xff1a;基础语法、Java面向对象相关概念、Java常用类、基础测试框架Java常用类&#xff1a;IO相关类&#xff0c;包括&#xff1a;字节流InputSt…

kafka 服务端消费者和生产者的配置

在kafka的安装目录下&#xff0c;config目录下有个名字叫做producer.properties的配置文件 #指定kafka节点列表&#xff0c;用于获取metadata&#xff0c;不必全部指定 #需要kafka的服务器地址&#xff0c;来获取每一个topic的分片数等元数据信息。 metadata.broker.listkafka0…

如何在Windows 10上使用触摸板手势

If you’ve used a touchpad in Windows 10, you’re no doubt aware of the basic single-finger tapping and two-finger scrolling gestures. Windows 10 also packs in some additional gestures you might not have tried. 如果您在Windows 10中使用了触摸板&#xff0c;那…

java全栈开发工程师_谈谈我对Java(J2EE)全栈工程师的理解

很多刚从事Java开发的同学都有一个疑问&#xff0c;到底是向全栈式程序员方向发展还是做精通某种技术的专才&#xff1f;对于这个问题也是见仁见智。 在给出我的观点之前&#xff0c;我们先来分析一下全栈工程师的种类和专才的种类 &#xff0c;之后关于这个问题的答案就很清楚…

多网卡命名规则

使用iptables做nat路由&#xff0c;需要几张网卡&#xff0c;以下命令很有用 1.首先你要先确认你系统加载的网卡&#xff0c;lspci|grep -i eth,如果出现unknow情况或者未识别&#xff0c;最好换网卡&#xff0c;或者是驱动没有加载&#xff0c;需要到/lib/modules的子目录driv…

相机模拟光圈_我的相机应该使用什么光圈?

相机模拟光圈Aperture, along with shutter speed and ISO, is one of the three most important settings you control when you take a photo. It affects both the amount of light that hits your camera sensor and the depth of field of your images. Let’s look at ho…

2018-2019-1 20165234 《信息安全系统设计基础》第四周学习总结

一、学习目标 了解ISA抽象的作用 掌握ISA&#xff0c;并能举一反三学习其他体系结构 了解流水线和实现方式二、学习内容 Y86-64指令 movq指令 irmovq rrmovq mrmovq rmmovq四个整数操指令 addq,subq,andq,xorq只对寄存器数据进行操作7个跳转指令 cmovle cmovl cmove cmovne cmo…

python数据库实例_Python3.6简单的操作Mysql数据库的三个实例

安装pymysql参考&#xff1a;https://github.com/PyMySQL/PyMySQL/pip install pymsql实例一import pymysql# 创建连接# 参数依次对应服务器地址&#xff0c;用户名&#xff0c;密码&#xff0c;数据库conn pymysql.connect(host127.0.0.1, userroot, passwd123456, dbdemo)# …

Python之钉钉机器人推送天气预报

通过Python脚本结合钉钉机器人&#xff0c;定时向钉钉群推送天气预报 #!/usr/bin/python # -*- coding: utf-8 -*- # Author: aikergdedu.ml # My blog http://m51cto.51cto.blog.com import requests import re import urllib2 import json import sys import osheaders {Co…

google +按钮_如何禁用或改善Google的Google+集成

google 按钮If you’ve used Google lately, you’ve probably seen Google taking over Google’s search results. You don’t have to put up with it — you can disable the integration, show better social-networking pages or hide those pesky Google notifications.…

P2680 运输计划

传送门 十分显然完成工作的时间和航耗时最长的运输计划有关 所以题目意思就是要求最大值最小 所以可以想到二分 把所有大于mid时间的航线打上标记&#xff0c;显然删边只能在所有这些航线的公共路径上 要如何快速打标记是个问题 二分已经有一个log&#xff0c;所以只能承受O(n)…

java 集合读写同步_JAVA多线程学习十六 - 同步集合类的应用

1.引言在多线程的环境中&#xff0c;如果想要使用容器类&#xff0c;就需要注意所使用的容器类是否是线程安全的。在最早开始&#xff0c;人们一般都在使用同步容器(Vector,HashTable),其基本的原理&#xff0c;就是针对容器的每一个操作&#xff0c;都添加synchronized来进行同…

Linux下的parted工具的使用 GPT分区安装系统

安装系统是安装前时候ctrlatlF2 fdisk -l parted select /dev/sdb mklabel msdos # 将GPT磁盘格式化为MBR磁盘 对大硬盘进行分区 xfs 和 ntfs Linux下的parted工具的使用也很简单&#xff0c;具体操作如下&#xff1a; rootme:/mnt# parted /dev/sda Using /dev/sda Welcome to…

ubuntu自定义菜单_如何自定义Ubuntu的每日消息

ubuntu自定义菜单Ubuntu displays an informative message, known as the message of the day, when a user logs in at the terminal. The MOTD is fully customizable — you can add your own text and other dynamic data. 当用户在终端上登录时&#xff0c;Ubuntu将显示信…