EDA365电子论坛网

标题: Linux系统日志管理 [打印本页]

作者: dapmood    时间: 2021-4-25 18:04
标题: Linux系统日志管理

4 q/ p. T+ R& \! @& a1、系统常用的日志(日志是用来记录重大事件的工具) 4 ^. q9 L( F- @+ K/ |

( V& a1 @# W) f    /var/log/message      系统信息日志,包含错误信息等( o  l8 S  ]9 \1 |3 S# R
  [6 \4 q; H8 r* }. @; q# o0 X. w
    /var/log/secure         系统登录日志6 p: N0 m- h& T$ W

  E" u# _; U# Q( K- p5 O* z    /var/log/cron            定时任务日志. M' I' d# f3 x& n) J
+ m4 J) Z% J9 P7 b
    /var/log/maillog         邮件日志
9 E5 H4 T. R& H( R+ V! W2 B
4 m/ z  G# x6 {' A: C& o    /var/log/boot.log       系统启动日志
! J2 L& u% [4 b) B- t% z4 I5 M% H# r, y2 Y
2、日志管理服务 rsyslog
  h3 ^2 \1 w1 {' P4 h, ]! E/ N) O3 c& X8 N  D6 ]
    【1】作用:主要用来采集日志,不产生日志
; ~& u% k3 |0 t' u1 B: w7 D4 [* n  H! T7 ~9 D9 C. j& h# }8 n8 P
    【2】配置文件:/etc/rsyslog.conf* e, Q, n$ q  J! u6 `

  J) E2 U' S5 J$ h- E* z2 C) n+ z   编辑文件时的格式为:  ------  *.*           存放日志文件 ------
) b5 M( E9 d# W! h) X9 Z/ v( t/ }) y7 L7 @/ T
          其中第一个*代表日志类型,第二个*代表日志级别* x7 R" j5 J* o7 Z- E" U* w

  ?8 p/ d4 l$ L0 B% V* J    1.日志类型分为:
9 @- X$ m8 ?' z: ~% K( C; m
+ p$ r6 h% v: D3 @. v% T     auth              ##pam产生的日志
4 o7 C3 I1 x7 c, Z
, ?7 y! s1 X+ K# N! d& b( d     authpriv             ##ssh、ftp等登录信息的验证信息: u9 U+ W7 d3 u/ F3 H

$ y3 s2 u$ W  [  p2 j2 z4 U     corn                ##时间任务相关
9 U2 U6 T& A4 g. n3 F; u* A4 H
! ?; d- T: S, J+ R: A7 w7 ~     kern              ##内核
4 ~" U9 e. j6 ~; i+ G
$ A; ^* \. W9 D8 X0 q. G5 X     lpr                 ##打印
7 K4 H1 |4 [6 o
4 g" ^- J& W! A$ ]2 @# g     mail                    ##邮件
1 C# U3 p5 L1 ^1 c! \/ e* n) d. j) q  d4 I& s& c0 n
     mark(syslog)-rsyslog##服务内部的信息,时间标识
) ?9 I4 @0 f" M+ b& Z( a
5 B. G; S0 z! u/ Z6 O% U     news  ##新闻组, G2 Z7 q( [  E1 d: N$ }
+ f- ?; w4 R7 c
     user  ##用户程序产生的相关信息
' u: [' {8 b3 Z. t3 _! p! l/ X! f$ i# M2 g% K" ^) P# ?
     uucp  ##unix  to  nuix  copy主机之间相关的通信
; Y3 V6 P$ G5 [, A: K% r9 A2 }3 h+ ~
     local  1-7  ##自定义的日志设备5 [  Z, S' J: L

( v) F3 k2 h2 T0 }3 J2 s     2. 日志级别分为:% j' t  c( l. x4 s
, ^2 @3 e: j7 n1 D6 K
     debug  ##有调试信息的,日志通信最多
! [! |" m- c& [0 |# ~: ]2 e  @& \3 h0 k% X6 I& p( C
     info    ##一般信息日志,最常用
5 ]+ {9 o' [% S; W
( f2 ~" M' @, T4 c) L7 }  notice   ##最具有重要性的普通条件的信息
: s( u, ^' o7 y% l8 i3 j2 l2 p' d1 ^) q: D3 @% d( y- x
  warning   ##警告级别
; W2 z3 a4 ^. j8 {0 \/ S# \% _( M7 U( A" |1 |) X
  err     ##错误级别,阻止某个功能或者模块不能正常工作的信息. _$ E, s3 Q+ `" Q
8 L; b' Z$ z9 p- h
    crit     ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
0 |* X- _, V  Y- Y$ P
; g! v. {& x8 U' w2 i, L    alert     ##需要立刻修改的信息
  o. y" r+ A8 t5 z
0 R# I) j$ `5 ?" ~" H$ i    emerg   ##内核崩溃等重要信息
1 g5 r2 O2 V! x4 A3 F, Y
  G3 x1 e& X& @1 I    none     ##什么都不记录
' ~9 R6 p* M  _8 ~
! J; B' ^! F5 w6 E     注意:从上到下,级别从低到高,记录信息越来越少
& K$ s: U6 U+ H$ z8 z8 }  U3 \  u. s9 Y' m
               详细信息可查手册:man   5   syslog   @. ?5 b% L7 D1 S- ~

3 ~8 J, P/ B3 F* T     3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误
% y5 Y% o$ S7 D$ O) b. p9 C% N7 H2 W* J+ I
     [root@client ~]# vim /etc/rsyslog.conf( Q0 j) g! t2 c
/ `; c8 D+ D% J5 W
     
. X9 g3 ^+ k; T5 ]- s; _
$ ^6 M! b4 Y! o# V5 f
3 U+ G+ f9 M% [) ]8 {7 X ! x4 s7 [& \/ G) W3 \! U
7 }* ?7 c9 ]# ~- ]
      
! f% B2 I+ A' `     
! f/ M1 E5 r) G% g     注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。   
6 _( h, D5 G3 B4 b5 q/ S" |% E& F" v7 C6 y- A0 Y7 k4 w
3.日志的远程同步
: P6 a! {/ k, w+ X( X7 }( k, l
. o# @6 ]4 A1 V, u9 @" C3 K" Z        【1】 作用:便于管理多台主机
0 i$ L. Q* R2 \$ p0 U, V0 U% Y. E& l
$ b0 l7 e- ?& i; @        【2】步骤:  4 }- T# ?# A. H& m7 M: V# w
2 e' Z) v$ U- K/ k& @
    (1)在日志发送方:vim  /etc/rsyslog.conf  ----->文件里添加内容: *.*@172.25.254.97            ------>  systemctl  restart  rsyslog
& U& y+ @9 U( q+ i$ E7 r0 p8 E/ j, H4 d  v
      注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送 7 R% C/ f! L7 f- n7 ]& P
/ M# B+ S' G% f% e
    (2)在日志接收方:vim  /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld/ U2 d6 O, R# l" L8 M  J
. K0 [$ d+ m/ ]& L, F  n
              ------>systemctl   disable firewalld
0 b5 N3 R( J: U' P$ Q  b) M- x
/ K5 f4 |0 q3 W            注释: 配置文件里面,15行:$ModLoad  imudp ##表示日志接受模块;
7 h6 L$ U2 L8 k& q2 i6 h
5 [* H7 r6 p5 M1 B                     16行:$UDPServerRun 514##表示开启接受模块
) w) y2 s9 O+ h$ H5 g3 S
, M0 w* l/ |! x' {+ H; q                     systemctl   stopfirawalld##关闭接受方防火墙
$ z! D. u0 U8 n! c7 I& e+ K/ v. T" M, ^2 ^
                     systemctl    disable  firewalld   ##使防火墙开机不自启动
' h) g1 \8 o/ i$ X: Z! R" J- i9 l8 d* Z7 v1 J, a/ L
    (3)发送方和接收方均清空日志文件,使用命令: > /var/log/message $ A3 g) L4 ]: j1 Y9 b; }. n: ~
) _4 u: l' O% \- p
    (4)测试:在日志的发送方运行:logger   test  ------> cat /var/log/message   ;完成之后,会产生日志信息4 ?. H) }# A$ [  k8 e4 R! G
! z6 w$ I+ y; f
           在接受方运行:cat    /var/log/message ; 7 A' p1 n( G' S) j* n: k4 h
& H9 R) K3 H" ?( O
        【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步
1 d4 h+ @# c/ H$ \# C- i$ C- s4 G, r/ }) m5 X) X+ v6 C
         [root@client ~]# vim /etc/rsyslog.conf* E! C5 T5 n" `0 a( Z
2 k; {% _$ K3 F+ [) j$ O
         
) u7 |, M* l$ m. P2 p. N; q: J. S1 @/ b3 n% c4 ^
9 |. n9 C" M7 a, I; K# d
) t# ~6 ^5 C( r* E
# C' s! n" ?$ k5 e; F7 F: |. w9 p
         4 x. m( Z3 {! K5 [& n
- l9 \5 ]4 \& n  E* i

+ p7 J4 M2 R  V  z4 F         
  e& \$ F' g3 b6 o+ ]! c# n          在服务端进行操作:
, m# e( C6 j2 c: }- ^
- k; o: U6 l+ n. B* [. g         [root@server ~]# vim /etc/rsyslog.conf           
" o' \+ l1 ^, ]2 ^+ ^+ _4 a0 B  C0 u. D# |& R. K
                9 L& O6 S& S1 T  |  U, R, K/ S! d
+ e: m+ }8 P+ m. [

- z; a2 n! `$ w) r# E5 a         1 ?9 n" H0 ^+ J
         注意:清空日志文件的先后顺序。
7 k; v) v0 e; G, G: ?" z3 c' C) m# G4 [
4.日志采集格式的设定
. X+ D1 r; F/ \9 v" h5 h" S* d/ a) D+ O  e/ J- g
  【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示
+ j' v$ @4 H! t! t& E, G
4 |8 t' R0 c- i+ B* V7 k2 z& C  【2】设定步骤:vim   /etc/rsyslog.conf ------>  $template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"' w9 z! \& e( @

, \- m* h5 k7 S+ T             ------>  在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT
; y* |; z5 f1 }& j4 m6 ~* [: T: ]% l1 ?1 v6 O0 p; G* o( i
    注释: %timegenerated%   ##显示日志时间
  f: x9 e! k  D% A* E- d
0 P! y# d/ w5 j$ L5 ?, _, e          %FROMHOST-IP%  ##显示主机IP$ a2 f  P' t" q* i
8 }. e4 E; S! h' X" _1 A
         %syslogtag%      ##日志记录目标6 w% a5 R0 |/ y

0 S) q+ d. y: V* y7 h          %msg%         ##日志内容
  S8 N# |6 Q1 M
/ h' U9 V* g  n1 W5 @3 z. Z; p          \n           ##换行* ], z: [1 y3 u! B. z# ?8 _
' q: t) Q, t% h8 w6 N
  【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息5 @# }/ X/ t4 I8 l. V! b7 j
4 u& q$ @; K5 O" f+ ?* H! {3 c
         [root@server ~]# vim /etc/rsyslog.conf3 y* @- M( y* U: [% Y8 }

3 u7 ^1 u- X2 e+ L$ G4 T 5 u' \( f3 Y$ u( t
         ! \) D  U% [9 i* v% C& [, A% o
         在server主机测试结果:
, k7 F* T6 D: D& x5 Q  H2 u5 L' ]) A4 f; C

; Q& I, T( J' b( f$ E8 i$ `! z" i6 W2 j3 h( ^, X8 Y, T
         7 O* X! f' O. G" e0 x: T
5.日志分析和采集工具 - [- D# q, Z5 b$ u8 g8 e5 ?

: ~3 r0 a. }! T& s3 @/ v# y  【1】命令:journalctl##直接执行,进行日志的查看3 _" @0 u/ i) z  X) @6 h

8 x% w; U) h# \+ N. J# q  【2】参数:-n    3    ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数2 D( y4 m* t) U7 r: _) |. _2 C

" ]" s/ R! e. M# p% j5 r         --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志
: }. e" t+ K, G6 ?( M* S0 v4 k2 Q3 y( p! O/ w. F3 G) b
  【3】如何使用--- systemd-journald ---保存系统日志信息# n7 w0 Z. N# D9 k
' O( z5 h: f, [# }; v
  【4】示例: 使用-n命令来显示最近3条命令
+ g* [, w) e7 T1 U7 r; R3 s$ S9 \( ^4 x% \' E
" s/ k' B" p0 ]8 i2 G+ B% u

0 x0 Q2 X/ L3 p8 G) M                    
5 \7 R' |1 D/ s5 R& c: P2 G          使用-p命令显示错误日志:( B/ ]; y* J$ B; ^6 q

4 A; B1 d6 _1 X* L/ B5 p        
  Z! w6 x0 Q' N1 j$ o& t
2 c' g: E% U- g6 W' K& Z# P; x6 T6 I; x- w2 D
        使用-o  verbose查看详细参数:# O7 t) n  v1 k5 x1 k& n2 N

5 z" S4 k3 B1 D( R1 }9 p# U
/ D" i7 M1 B0 K2 ^- C5 n% V1 D5 z# w, r) B
            
( g" Q- u0 `; s! ^+ @  }2 |       也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:  M; h) E+ `& [. H  r

" a, S# j; `3 z& x: [ + R* _$ R9 I5 K, k" J9 m9 p

9 ?1 a; B! u2 l. h: x* y) W           1 q  g* H3 H% N! H
       使用命令:journalctl --since "2018-07-27 12:00" --until  "2018-07-19 00:00" 时间段的日志# M- |2 ^- a  y4 D6 `" s' @

) ~) K+ {+ T# L# b( d- s( u) L
: i5 g2 b2 _" K9 P( ?4 z* E- V! ^
       6 ~1 E. G3 Z" Z7 y0 S! j6 Y( D
* }) I" w5 y; \  k

& R& e" T7 m+ b9 Q# c4 Q     补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)   6 d, a: @8 k( J
& N4 ^; q- t" p6 z" [
     [root@client ~]# mkdir /var/log/journal. d5 ~" L  k! [# t4 r" P& D, A
     [root@client ~]# chgrp systemd-journal /var/log/journal/   , v$ H: J% C( {: A& q# S9 C; [4 k
     [root@client ~]# chmod g+s /var/log/journal/        ## 把该文件的使用均指定为组信息! G4 v  M( y) A! B
     [root@client ~]# ps aux | grep systemd-journal
- b5 A% d" J( L+ g/ f4 |     root       364  0.0  0.2  40864  2428 ?        Ss   06:05   0:00 /usr/lib/systemd/systemd-journald
2 H7 [4 ?1 R% b: M! f     root      5298  0.0  0.0 112644   936 pts/0    R+   12:08   0:00 grep --color=auto systemd-journal
$ k  I, v1 Z# v     [root@client ~]# killall -1 systemd-journald        ##重新开启日志进程
' A; v; d! J* N+ n# X8 _3 i8 }     [root@client ~]# cd /var/log/journal/
5 U# @; }$ ]8 ]. F     [root@client journal]# ls2 M, y  P) X5 ]; Y1 V! j/ k2 K
     946cb0e817ea4adb916183df8c4fc817            ##记录日志信息的id: `' Q" \" c4 O3 q0 V' K; r
     [root@client journal]# ll                   ##该日志会记录7-20 12:09以后的记录2 ~6 I: n7 z. C+ `* J
     total 0
2 [& w2 Y$ V$ r  D  b7 F$ C" v     drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
7 l& ]+ H8 e2 H) `; e# B     [root@client journal]# date' ~0 L5 t8 k  z+ S, C
      Fri Jul 20 12:10:17 CST 2018
, ]. M8 k- s0 ^2 \8 X8 f6 ]* [  A, P6.日志时间同步+ S5 F0 z0 y! B" z. q$ Q! \$ e0 g/ j

2 _5 E: H: R, ?/ C% O  【1】作用:让多台虚拟机保持时间的一致。
, j6 m2 f; t" |, r$ F% p& @
$ e9 m' a; a0 P: [9 P0 t' T  【2】服务名称:chronyd
( M6 O1 h* H! o2 F0 s
) {1 I0 K. _' d  【3】步骤:(在两台虚拟机下进行)! l' E  A9 ]1 F! D8 K/ Y: c. k) c3 ]
2 ]; H" R4 ?. z, h
           (1)在服务端配置:vim  /etc/chronyd% A! y/ J) C, k2 v8 O
/ n/ [# m( h! D# [- ?# M; \! R
                            22行 allow  172.25.254.0/24    ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间
- ~6 z0 K1 N" k% R7 U1 W6 g; }' m6 g, p+ x; v0 _- V
                            28行 local stratum 10     ##表示不同步其他时间
, ?& A; o5 Y# p! g$ u9 d% C  t' N1 c$ S& K, ~. N3 M
                            systemctl  restart  chronyd   * f7 h. z) h" c9 R

2 J% P( Z) l- @8 s: F            (2)在客户端配置:vim  /etc/chronyd
/ ?. [/ W2 O+ u- P( m, K& a" [/ L2 I8 ]" |  l1 |
                           2-5行留下一行:server  172.25.254.97    ##表示要同步的主机为172.25.254.97# e7 C, k7 N; u  ^. D/ R5 h

& B1 X% i& q2 z                           systemctl restart  chrond             ## 重启服务
7 j. C6 F, H' C2 `2 {; g4 G2 I2 }1 H0 X6 v" l1 J4 O
                           systemctl stop  firewalld             ## 关闭防火墙9 b8 [/ T4 D* b4 [; ?+ d

3 Q6 Y5 U8 l$ `+ a, s; b* J           (3)测试:在客户端输入:chronyc  sources -v
1 A" ^, [" [& n% a  n$ V; X5 X& @1 |) g* i- v6 Y+ O4 T9 B- J
                若结果为如下,则表示同步成功:' t0 i' Y/ A- }

6 d) e7 @2 T3 K 2 \. {- p" `. |9 J* |1 s( x7 `0 l/ |4 C
            
7 p, Z9 L6 E8 v$ M            注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;
' T% I1 B2 H, k, m0 O
3 R2 m' F( X' `( f+ d/ }* c: f: p+ V                      文件配置之后要重启。               
5 W/ x, f1 S" q; C3 J( S8 ]$ w! ]$ ^  [3 N$ V
7.时间设置timedatectl , W8 V% K  D5 c  u8 D! l

" J: @( f- P2 [; t! w, n       使用timedatetcl查看系统时间! \: c5 S# S9 _5 Q

6 H6 B3 s- [* Z$ M6 r2 o# W9 A 4 e8 N  V8 H9 u, G/ y$ n

+ c1 A' y  o4 s       ( {. }: l9 K' _
       命令timedatectl list-timezones列出所有时区 4 e/ s2 d# G- }

# U% o. E/ y7 i! N  ~ 5 l2 l4 K* X/ X7 n' I
- J# U$ q: f) w# F
      8 w: r; O0 o: }8 v! s
       使用--- timedatectl set-timezone  时区名---来修改时区
" v: u1 x- K; ]5 `$ D* l$ X$ G& m: A$ _; [

4 Q5 B: Q9 [2 p' D& b- m$ w$ z. b" k& B" T3 F+ Y0 O0 N5 Y
      
+ M; d  g( y0 ?" R      使用---timedatectl  set-time  "2018-7-20 12:00:00" ---对时间设定: x4 g7 v$ W: S5 W- x; A( |
4 y# D9 L' P& @- m) d% Q

& R9 U- c! k" X
: }9 [  T1 }$ H9 `: n8 }5 V* J      
; {2 T. x# `- y0 C2 T9 G      注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);
* m3 |$ m5 E4 i1 E1 x$ t! a' X$ I, E$ Q
          ---timedatectl set-local-rtc 0---表示使用UTC时间
- W. E2 @, a7 R! K. i4 w- `/ @
9 [8 Q0 w3 k% T! b( S# |( W! D          ---timedatectl set-local-rtc 1---表示使用LOCAL时间
9 I4 d  G- s9 R% n         
/ x  z  M! d% s ; K2 o  ]6 w. J4 p- M4 Z4 k

作者: regngfpcb    时间: 2021-4-25 18:34
Linux系统日志管理




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2