找回密码
 注册
关于网站域名变更的通知
查看: 561|回复: 1
打印 上一主题 下一主题

Linux系统日志管理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-25 18:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
0 W+ q& A- K; P% Z+ j( c7 N
1、系统常用的日志(日志是用来记录重大事件的工具) $ g6 X/ m3 g8 ^5 ~" @
# P3 d" j+ }0 S! ^
    /var/log/message      系统信息日志,包含错误信息等$ u& W( g/ ~, B8 @7 m# ?

. C& |# c' R  W    /var/log/secure         系统登录日志
! O% F9 @6 |2 r% p- f; y
6 ]4 Y# k! f* Q1 W0 K    /var/log/cron            定时任务日志
* y* N! U3 O- M( t) z+ t; Z( Y9 V0 J9 c( }$ F
    /var/log/maillog         邮件日志
! w9 q( f9 \* s& F; C( U) q7 `8 ?1 X  w: L6 L' N, b
    /var/log/boot.log       系统启动日志* z. x* D' z" _% Y- Q! C7 Y

/ k  X: Y- Y! S2、日志管理服务 rsyslog7 f0 p! \4 J; J, _& b/ Q

/ m0 X5 b2 c3 e- D9 k    【1】作用:主要用来采集日志,不产生日志
$ q7 g) K" p- K# c% o; q" H* c2 K- v5 Q3 z
    【2】配置文件:/etc/rsyslog.conf9 s2 J5 t- x) a, l' o! b+ X0 w

; E+ u+ M* V( E+ R. r9 G6 ~   编辑文件时的格式为:  ------  *.*           存放日志文件 ------/ o( m- e! g. v

! E2 E2 K) g- R" Q4 n  `          其中第一个*代表日志类型,第二个*代表日志级别
' {& F- {; }) {' h. u4 R' T
3 V! S1 K  f' r' y. F  v2 [    1.日志类型分为:6 D4 `/ {% W3 q0 X" T( w! \' B( a

6 b! b2 u! o" v$ L$ h) M/ w     auth              ##pam产生的日志3 C6 a) r- W% x, j+ [9 b

: z9 e$ ~0 f2 }* g( u$ }     authpriv             ##ssh、ftp等登录信息的验证信息. W  G* N, ?+ z; i

/ V8 j$ Z& G* K. w9 |7 L# z7 a     corn                ##时间任务相关5 l0 x$ v: Y& [7 `

+ [0 z0 \+ t1 V1 c1 ]     kern              ##内核' a: \" z- E, r- s+ ~! j5 T
$ y4 H+ B3 {$ @# w( Q$ Q7 j
     lpr                 ##打印% Q! z1 ^; E% ~7 v
- Y" s% ~7 }0 ]4 ~- a$ T- D1 i
     mail                    ##邮件6 o; g) O" q" j6 |7 i
# l! ^9 g! e/ A9 Q% o
     mark(syslog)-rsyslog##服务内部的信息,时间标识
8 y4 L' B& v' Z! s3 d6 ^. ?1 F
7 L5 |7 W. r2 B+ s9 c" j# n- m" G     news  ##新闻组" j% {9 R% R5 f+ x
* c& m& o* g& c5 a- b7 ?: v7 f0 ]
     user  ##用户程序产生的相关信息" a! l: u: l: p7 H4 ]3 t+ U
1 O3 H' P! o9 |: h$ A1 ]
     uucp  ##unix  to  nuix  copy主机之间相关的通信; o9 a7 K) ^% E$ u2 N

' Y2 u& c" o) C: t+ \/ j' ?' {' i     local  1-7  ##自定义的日志设备- m) E4 ]$ i4 O

4 Q+ I8 l) `6 X     2. 日志级别分为:
& c, f3 ?$ n; |- c
9 a/ U  _% B0 k4 C& b. k1 j1 S     debug  ##有调试信息的,日志通信最多$ B5 k' q# v! `3 D' E

( z9 x; m2 y6 L9 K2 ~; `; d3 |1 p/ N, o     info    ##一般信息日志,最常用
6 b, j2 I1 a& S: m" a% j- {
: g5 R7 `$ D' S  R  notice   ##最具有重要性的普通条件的信息
( H! b7 l2 x/ B* ~/ m  u
  I2 n- h6 j$ V) P/ g' F- ^  warning   ##警告级别) b9 e! k: b) U" H  Z" L. u$ ~0 Z
9 M; X2 x' d6 L  F
  err     ##错误级别,阻止某个功能或者模块不能正常工作的信息, o+ j& k: R7 r; k! H2 d

/ S+ K0 J: j, f+ f    crit     ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
" w0 ~8 C" ^. ?  R
1 I* F2 Z* ~6 ~* ~6 [    alert     ##需要立刻修改的信息
; v1 h( V7 I4 c9 v$ ~* W
$ r4 f( N/ b: O* s6 ^* r' `    emerg   ##内核崩溃等重要信息: V8 M3 [8 x0 m, [
2 T) Z. n, j/ T8 v
    none     ##什么都不记录 + G$ {8 Y! W" ~: k) I  ~, [

7 I2 S- a, F  g- }8 I& ~     注意:从上到下,级别从低到高,记录信息越来越少
) e) G6 k6 {8 P- e" l$ Z7 x0 p1 s) f5 \4 G+ n+ X3 y
               详细信息可查手册:man   5   syslog
1 m& \$ f; k3 f- E. L1 U6 B, ^! {2 y! L7 H8 b
     3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误7 i& m* c! O& X6 t: T! ?1 V
1 v+ I- S' K8 D  n
     [root@client ~]# vim /etc/rsyslog.conf7 \3 H. S& z4 m$ c: b) ^: B7 l; I
2 X0 i$ c+ t6 x" f( @
      9 J% r- j  y. a  i
, p1 G4 K% T/ K: X" }; s

" h+ Q6 X& x+ \1 |
1 r6 t6 s; X6 n% D, \8 j& [1 m5 n& x6 z( s
      
) V9 F2 `6 b4 M: s  K& o: i     & U( M# u& q+ M8 E9 ^
     注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。   
: U' q6 T4 `7 b2 s) A$ d7 I
+ J$ W+ r. ~7 M' z/ _+ h# R3 _3.日志的远程同步
) p& V  a/ R% Y/ i# D* o. g  W: U5 t' e6 D( c* v7 y
        【1】 作用:便于管理多台主机
7 C1 ]! R5 S+ f& i5 `% y7 Y  S; \
4 S2 {$ P) d/ }6 g6 b7 T3 T        【2】步骤:  
, b$ q1 E8 \, K- b
% [; p8 o2 V  |* _1 A    (1)在日志发送方:vim  /etc/rsyslog.conf  ----->文件里添加内容: *.*@172.25.254.97            ------>  systEMCtl  restart  rsyslog. c. \" C, G  h- `
& H% [8 Z- ?0 a/ d  d+ ~4 E
      注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送
1 H5 F8 v* l% G( W' D: _
. B1 M0 W% i  G9 H% w7 S    (2)在日志接收方:vim  /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld
8 v: {- I2 b7 G) Y
  Z* l0 t, H2 Y* Q" S$ W9 y              ------>systemctl   disable firewalld5 F  c+ {5 v, M7 `% F* G% ]

9 w& S! f: ?6 m, y" [            注释: 配置文件里面,15行:$ModLoad  imudp ##表示日志接受模块;
2 J" z7 {# Z" ?# ^! P, w- Q- {) K, X
                     16行:$UDPServerRun 514##表示开启接受模块2 Y+ t# O- S4 `7 S

0 E! j& j% G- s8 X: J" d                     systemctl   stopfirawalld##关闭接受方防火墙
! s% e$ ~6 t# y: B" y/ C; v( `4 L. e) i9 W
                     systemctl    disable  firewalld   ##使防火墙开机不自启动
. f$ Y) ~8 C- R; j1 o/ K
. ?+ }0 {/ D& M# ]2 G1 S    (3)发送方和接收方均清空日志文件,使用命令: > /var/log/message ' \3 r  |/ Z4 e; E4 |: X2 Y6 @* I

+ ]# q: j" B: l9 @& V) Q! `    (4)测试:在日志的发送方运行:logger   test  ------> cat /var/log/message   ;完成之后,会产生日志信息
$ d$ A2 z4 S; j* ~
$ j/ i& z& }# y& n' v           在接受方运行:cat    /var/log/message ;
8 {* G* b# f% q. H$ ]9 }% y, w
, D. W2 L- L3 r1 j3 E1 G+ f5 a        【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步2 f+ X- k) M/ n* c$ f9 t7 T' k# O/ j

0 b9 ~2 I0 M: C" n7 b4 h; L% i         [root@client ~]# vim /etc/rsyslog.conf
0 O  s5 c( I- x- O  M/ V% r$ d% T% `: H! ~; }1 W' o
         
( `/ W, a2 S# n8 ~" I
2 v2 C( o% ?7 n9 r9 R: E6 e  f 9 }$ Q) l- h, ~
: E% A% t' _; H5 T/ N  }! S

; f) e+ C( ]8 ^* E" s0 Z+ K         
. E' D; W" ~; r1 ~5 F
! \% r% J& j  i& W+ z- Q
/ D& A; I. s! r         ) U& X! s$ a& j  H" [
          在服务端进行操作: * ?& \6 L* S8 o4 C% F* |0 T' g+ A

0 x2 a- W: W, r7 I" [. k         [root@server ~]# vim /etc/rsyslog.conf           
3 M& b4 l0 T: o; W" U' c" Y. O
% _) |" ^6 x7 o- P4 _( u9 D. p                + ?- `+ R' o) T2 c

; g9 h% L- J3 h, x/ [! r 5 Q- o9 g( J4 G4 a
         
4 f$ @' T- l  v1 w# Z3 |# ~+ ?         注意:清空日志文件的先后顺序。
4 b- H* w$ T3 r4 J; O! B. A. w
4.日志采集格式的设定
: W2 O* k7 f' b4 `5 S- W6 j! ]7 Q3 P# Y. |# h
  【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示
4 }* ~1 z) T2 u$ Y$ g, d# C# q: @: C8 S# A7 c
  【2】设定步骤:vim   /etc/rsyslog.conf ------>  $template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"3 Q' v- W, N0 t, C! x) b# f
  ^5 m& U5 {7 \) k
             ------>  在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT
- }3 k& {2 a( s# U* i6 l) F2 |" L6 X- A& o% I  b
    注释: %timegenerated%   ##显示日志时间0 V4 |2 Z7 u, P5 S8 E
$ j8 N6 e, d: y" p4 v0 C
          %FROMHOST-IP%  ##显示主机IP
5 j, A9 i. ?0 C3 Z2 l  c$ O1 l
; ~( s4 Q" h5 _; Q, S! A4 Z          %syslogtag%      ##日志记录目标. E; Q& T9 [* _9 Z7 Y: H
- M+ |- g- E, B% K9 d$ `0 L9 G
          %msg%         ##日志内容2 n2 r" e$ K6 L$ A  w

" M2 P/ e6 z, ]( V+ [5 Q* n8 `          \n           ##换行. R/ R$ L, U" J6 x" x2 ~
  E. T7 _! T% q3 f' W) }% t
  【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息# p1 u6 P! R1 K' Z

" c9 d& \' @- G         [root@server ~]# vim /etc/rsyslog.conf
3 j: ~' g) k* z5 m9 w, U; f* c: U) O3 h1 @- {4 L& U) T
& q1 p; ~" e4 w3 s& @* }
         
: `$ x4 y. e4 o9 w( T) j         在server主机测试结果:' ^# W  B- ~, I2 X* l& V" R

9 X) n1 v" a" V# R* b   r8 ?$ ^# J8 l! Q
- j% m% W  u# o/ o1 j  Y7 [
         
8 |* n8 z+ h* O: M7 r4 x5.日志分析和采集工具
6 O8 d% n3 ]( O4 {& u- f, {
, f) C8 i/ O. [" X  【1】命令:journalctl##直接执行,进行日志的查看2 j+ x& x; h  A! f2 @
( P) P# I5 K! v) i
  【2】参数:-n    3    ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数
7 }- K/ h! K; W  u# [% V" i5 r4 G8 C0 n  t& w, ~! @
         --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志) b: e9 _7 O: a- ^

2 t1 R- G) ^# r, u/ k  【3】如何使用--- systemd-journald ---保存系统日志信息' W+ a7 Q5 Z  Q7 b0 o$ t
+ C7 S$ z( O) F, b  |
  【4】示例: 使用-n命令来显示最近3条命令 4 I* W: a/ q7 p  f4 i+ w
! r9 I1 i; t8 j; N
% k0 _" n& D' x5 k% l

+ z$ G$ v7 U8 S% H/ N                    
7 @2 d0 R# ?, }) Q          使用-p命令显示错误日志:, l% V+ _2 x% M) _1 K
4 H. C2 b9 P3 C, W& }5 h* l7 K
        
  {# Y' M* g) i! v
8 p7 V/ W( i/ m! c. n: k" N
* e8 F* j+ H( ^" N4 b        使用-o  verbose查看详细参数:
9 i3 C& u- p3 a1 z; A* e/ R4 @- J8 o
7 p3 d: V% x0 S# L5 m0 X& d 8 g$ A. h- N" _2 ~
4 e6 j2 y; R1 J
            
; N% L# P4 Q7 f; B  P! p$ _       也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:
* k' }' k# o8 |5 `
* t' q9 L8 H. @. [
) _, w, x  t+ [3 _1 ~7 e8 ~) ]  e! S7 R6 s
           - _% E" X: P3 M& \* i
       使用命令:journalctl --since "2018-07-27 12:00" --until  "2018-07-19 00:00" 时间段的日志9 \. |' q0 @0 o# O

9 R1 t3 M5 B8 T: h5 ]. g$ ^4 L 0 t, ~/ Q$ U- `( H
5 Z" X& ^% A0 n  ]* ~. J
      
! N1 I7 E: R) a) O; t6 {
4 L. b: _% n8 V4 Q5 Y. @% J
' X+ a* M/ Y$ S3 d: N     补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)   
$ a/ C6 T+ [9 c8 a2 C: a% z) f! y! Z% F0 @
     [root@client ~]# mkdir /var/log/journal
8 u: d% b% u! A) y$ {+ c; k4 q5 w     [root@client ~]# chgrp systemd-journal /var/log/journal/   
$ A3 x3 C* ]! U1 r  r4 R6 D     [root@client ~]# chmod g+s /var/log/journal/        ## 把该文件的使用均指定为组信息
7 D' z3 G  T3 q* A  q  q' i     [root@client ~]# ps aux | grep systemd-journal
/ o& |3 v" ]+ ^4 U     root       364  0.0  0.2  40864  2428 ?        Ss   06:05   0:00 /usr/lib/systemd/systemd-journald  Q7 c4 e/ R8 V: q% {7 ?
     root      5298  0.0  0.0 112644   936 pts/0    R+   12:08   0:00 grep --color=auto systemd-journal3 y. l" \& R0 U, G$ U! b
     [root@client ~]# killall -1 systemd-journald        ##重新开启日志进程# L3 h6 M4 |' E1 Z
     [root@client ~]# cd /var/log/journal/! {( _: o% Q1 _3 A
     [root@client journal]# ls( [7 d: D/ [/ d+ [8 u( F* \
     946cb0e817ea4adb916183df8c4fc817            ##记录日志信息的id
+ f/ \/ ~. _, E/ H, n" W- a4 \' z' C5 V     [root@client journal]# ll                   ##该日志会记录7-20 12:09以后的记录5 p0 ?1 w, \6 F
     total 0
2 u/ _  c5 [' x. Z0 N     drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817% g3 S  \2 ?! g) F2 c4 _( ?
     [root@client journal]# date' r3 s5 E0 U. h: M
      Fri Jul 20 12:10:17 CST 2018
& ^  t" T0 Z. D6.日志时间同步
3 X  k3 g2 N. r' }5 X$ K" o) @; v6 ?* v
  【1】作用:让多台虚拟机保持时间的一致。# U1 B; Q# E, \( G! h( T

2 `, h' h7 r1 W' `0 Z8 \  【2】服务名称:chronyd
: [, i/ F6 L" X9 \
8 Z! v8 P4 ^; q1 p  【3】步骤:(在两台虚拟机下进行)/ |  O- K7 O7 G3 c3 l0 `

# a' I, c5 T, ?           (1)在服务端配置:vim  /etc/chronyd
1 I5 h9 ?9 L. X! n9 S+ _% \* R* x% \- p
                            22行 allow  172.25.254.0/24    ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间
$ ?6 E0 W8 Q) F( G. P' O* e/ x: _. d( I- X$ {2 t9 D3 ~
                            28行 local stratum 10     ##表示不同步其他时间8 l' d" ^% e4 [  `) H. ~! y0 t

# A  b# Y4 f& c( F( R                            systemctl  restart  chronyd     F; G, d- Z2 Z. y1 E0 ^

+ H( u5 E- O+ b% Z2 e4 @8 e            (2)在客户端配置:vim  /etc/chronyd
5 \# ?7 J; V9 s( _' [7 ^
& |( b. Q/ v( t* g, h                           2-5行留下一行:server  172.25.254.97    ##表示要同步的主机为172.25.254.97. O) P+ X4 R( }7 ^! A: M
5 c1 L, Q; E: X! m9 i
                           systemctl restart  chrond             ## 重启服务
5 Z% Z5 Z) P1 f0 v; L
4 ?- |: e) s9 g' c0 d8 J                           systemctl stop  firewalld             ## 关闭防火墙
$ F# t5 V: N2 `1 v% A( i. F+ ]% s1 l7 X- ^" H
           (3)测试:在客户端输入:chronyc  sources -v, H8 f' y' L- Q" @

. k) k$ N; W; w0 k% D                若结果为如下,则表示同步成功:- f! b$ ~& @9 N" d
2 _- j9 s( f: I8 b3 ]: W7 W: {
& ^0 U3 V( }7 v8 L; p
             1 S, C% x/ h7 O5 y: ~' A; n4 f' W
            注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;# S3 a6 `3 ^  Z4 W. R

# |' U3 Q, Y2 n8 y' k; w: [                      文件配置之后要重启。               ) n& b( r* p( q, @8 a% p+ F8 T
" Y- d. W% D3 E8 N8 n6 P2 q
7.时间设置timedatectl
2 T- T# o0 b2 B! u2 i- D  k- K4 p5 D  L
       使用timedatetcl查看系统时间: t( O7 }# p) `
# W6 c" k5 K, M# a% ]! g' U
/ Q9 _7 L! J+ P0 J' C  X) Y

. z5 G9 @1 ~# ~      
/ V5 z6 M/ R- m% Y9 ~. {( I       命令timedatectl list-timezones列出所有时区
7 S) A/ M6 ?( K" [5 \2 f( B, F9 i" O7 _, W
2 P3 x) b8 x: S
  ?9 v3 N8 D+ d( V
      
6 U1 `- K' v  ~5 E       使用--- timedatectl set-timezone  时区名---来修改时区
/ {0 t% P0 y4 W/ w0 g$ h5 ~
+ C4 G0 g" ?  O5 A% c2 }: `
) N4 }& R& C, i/ V( E9 u+ q
. {5 I( S4 k0 v4 R6 b      
; U( e" ]8 m# D5 f$ S( w8 `+ X% K      使用---timedatectl  set-time  "2018-7-20 12:00:00" ---对时间设定+ [8 W8 t% t- s) x& H

3 h2 O  x6 e/ h. p# y, F/ o / o+ \/ m; i$ o. g! ~
8 b9 n& ~2 f6 ]2 [4 ?* h+ a
       : K) L* {* i& O. _- A
      注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);
- p# O2 e- W0 q) H; w/ `% q; D' A8 _, x4 I8 m; Q% J" C
          ---timedatectl set-local-rtc 0---表示使用UTC时间
3 J$ b6 _& ?/ ]6 R8 ^/ S, g4 U& w! M
          ---timedatectl set-local-rtc 1---表示使用LOCAL时间
4 ]$ \! ?: E& S) Y6 \0 P2 f* h6 w         
! g% c2 @9 t+ J3 r& @6 `2 C5 L ( I; c/ [/ w+ @- Q

该用户从未签到

2#
发表于 2021-4-25 18:34 | 只看该作者
Linux系统日志管理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 07:16 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表