如何使用系統自帶的日志轉儲功能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.pswp.cn/news/279137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279137.shtml
英文地址,請注明出處:http://en.pswp.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將顯示信…