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

Linux系统日志管理

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
5 [0 T* L+ \9 r
1、系统常用的日志(日志是用来记录重大事件的工具)
. `6 q7 N3 y, ^
8 M! T: y0 e7 L1 ~; K" I! I    /var/log/message      系统信息日志,包含错误信息等6 x7 w0 C7 q+ Z, {( ?4 U) Y9 P

7 f0 N9 d3 e( _1 p- j5 C1 O    /var/log/secure         系统登录日志
- _; q" W7 {1 E! _* G9 n
, j0 i1 {0 k+ w+ U% s# N0 n    /var/log/cron            定时任务日志$ i- G; {/ M; f* ^6 r$ r1 T& @5 Z

& T1 [- _+ ]7 m* V    /var/log/maillog         邮件日志
) i+ ]" R" M8 k7 t' ]
7 U% r- V$ m+ B7 E7 K9 Y    /var/log/boot.log       系统启动日志
! l, A, F' ]: V. ?) V& M" m% g* }2 B
2、日志管理服务 rsyslog
- V* h3 g; s$ l/ a  @" u% C% |! Y9 D/ a1 B/ x
    【1】作用:主要用来采集日志,不产生日志" N2 P- ~# T! k

- i# f& g" a! S. h6 \    【2】配置文件:/etc/rsyslog.conf
, |6 I; M+ g0 B# H+ N% I6 L; u
5 p2 {+ C8 b' I% D" f   编辑文件时的格式为:  ------  *.*           存放日志文件 ------
4 b! y, f% @- E( {. s6 `2 k/ I: `9 ]4 H
          其中第一个*代表日志类型,第二个*代表日志级别& x4 D; z; r# f5 E& A- V. a) ]% Y
) G" n0 S8 }7 m9 m- x+ n9 D+ S
    1.日志类型分为:
+ ^! Y  ^& T/ }7 P" e. y% m/ Z6 [# a, v2 o$ u- u
     auth              ##pam产生的日志6 w5 F2 y# Q9 u' R

9 O! O2 X( i4 m( [; v     authpriv             ##ssh、ftp等登录信息的验证信息
' |* m: o. j2 b/ E) ^; B& }9 p3 {  i0 _, C6 F
     corn                ##时间任务相关
& k4 Z+ Q# ?7 z1 }5 D7 \) ]
; s& L& L6 f& X; V: P0 c, L2 z' T' z     kern              ##内核
; G8 U* a) t/ S7 l; H* F6 ?+ o3 d# o4 S" Y3 ?9 ?  H* r
     lpr                 ##打印
/ ?0 @& m! z( x6 s; N5 {' M8 N) v6 {8 r# M2 D
     mail                    ##邮件
, M; q4 W# l' y, G0 f5 {" \$ _
' Y. b. J5 n; Y! h7 @$ C' W  _6 U     mark(syslog)-rsyslog##服务内部的信息,时间标识
# k* c- P) Y: c4 l
* ~& k9 |6 a: R1 }& d; E/ Y     news  ##新闻组
# u6 ]% |) s3 b. _% O2 ^2 Z
9 S& {" M/ O; M& C, E. M6 U     user  ##用户程序产生的相关信息
  c' q" I2 ]6 s; R9 P" }$ Q% T/ ?
     uucp  ##unix  to  nuix  copy主机之间相关的通信
, O! ]/ y, N! x8 s' {1 d' |! L! C9 Q3 R& C
     local  1-7  ##自定义的日志设备, u  [; a  ]8 r& |7 g
  `1 r8 o8 E: h7 j+ Y" o
     2. 日志级别分为:
3 w4 i: g  E! v. a% R
$ D: `* H* Y  P9 e0 d. b0 s( _     debug  ##有调试信息的,日志通信最多+ t, i1 o1 ]  l: r
: C+ o  w. `/ o0 ], l# Q
     info    ##一般信息日志,最常用
( s! b1 _+ {; Z/ y' {0 k2 K, G
, s% a7 o9 {1 C" K0 |5 w" U  notice   ##最具有重要性的普通条件的信息  M" k' ~; W& S( K: O
+ q1 d- P! k. ^8 T  E1 M
  warning   ##警告级别0 y2 V7 k+ e/ \: }4 ^7 @' e+ ?  O

9 H- L# H' F$ E, H  err     ##错误级别,阻止某个功能或者模块不能正常工作的信息
! |* x3 F  h/ O) o
# c3 {3 b$ ?5 n& u; J9 q, D' L    crit     ##严重级别,阻止整个系统或者整个软件不能正常工作的信息/ j! ~2 D0 [4 p/ j2 C

) A5 @! {% Z+ C" Z    alert     ##需要立刻修改的信息
- S8 z- q, n8 K, K' B7 S; h# [5 N4 E8 S0 T
    emerg   ##内核崩溃等重要信息$ e1 |% Z# G  U3 R: _9 ~7 a0 p
- B4 b2 O" j2 c* Y
    none     ##什么都不记录 . L, x" o- F3 Q. K3 p# T" ?% w

% J2 H5 N! ?0 N0 A     注意:从上到下,级别从低到高,记录信息越来越少
3 w" s: L, Y6 p* H4 E1 b5 D/ H$ d9 g6 P( g# ]
               详细信息可查手册:man   5   syslog
1 {/ R$ f3 _" N+ n2 S$ \
7 d. U: s# q* V- z* N     3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误
) u: A* F; c. F- o1 E2 E. g5 M$ m: l8 {2 e0 `, z
     [root@client ~]# vim /etc/rsyslog.conf' }2 Y; r# c1 \2 [4 }
" y; z- k7 l9 c5 P
      ' X2 l& [3 Q! s8 {: |$ {1 `. x6 P
( f/ ~+ b# C) m, m6 {& R

* m9 C0 G' @' _- n# @ 6 U3 ~3 D% T( h5 ^

( s1 ]2 W7 O5 y8 Q6 z      
; }9 e' t( W! Y1 l6 y5 q& o( _% ?8 ]     5 o% Y/ n/ |+ z9 R
     注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。   
9 n5 j$ Y0 A* @% |; }- p, Y" [' n: s1 H' _! x' h
3.日志的远程同步
, v) e' X; K, o* L6 ~2 i  D5 U, l0 a) K+ |9 Q. O: C
        【1】 作用:便于管理多台主机
7 P- X* d, J3 z3 i9 y' h  @0 F! G: R7 q; [4 f# |8 L: }
        【2】步骤:  
8 s9 d3 W( z6 H2 l: ]: V9 r2 V) w  ?4 y$ q
    (1)在日志发送方:vim  /etc/rsyslog.conf  ----->文件里添加内容: *.*@172.25.254.97            ------>  systEMCtl  restart  rsyslog8 n! Y  f# j8 @5 R/ ?$ c

8 T4 Z9 S# K. l$ H) ~# W0 `      注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送 ) S- x, y) u" d  Q* m
" r% Q$ Z7 u- ^. X8 O* A
    (2)在日志接收方:vim  /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld" t+ e+ w6 t2 |9 B0 x. E. \% u

6 d) p9 O2 p1 {' \6 y( v' q+ _              ------>systemctl   disable firewalld+ [1 x( T" b* U
6 p6 e" x# w& v+ N. v$ [6 H  W: w
            注释: 配置文件里面,15行:$ModLoad  imudp ##表示日志接受模块;
1 S. d8 `1 Z. R2 ]4 o' |# {6 z( ?* r9 B& q, J4 ~" ~% X
                     16行:$UDPServerRun 514##表示开启接受模块
5 x; Q; a, j+ O7 C9 ^5 j+ D. T' O+ v7 r' V
                     systemctl   stopfirawalld##关闭接受方防火墙
2 k3 ~( l9 w( B, z0 b3 @7 y4 c7 {5 C7 d! H" c" y( f* m
                     systemctl    disable  firewalld   ##使防火墙开机不自启动 : ]7 R% Z) x0 N( Y3 Q
! [$ r9 a# d/ f' k, b
    (3)发送方和接收方均清空日志文件,使用命令: > /var/log/message . _& Z1 J+ u/ F7 ~/ b* h

0 f& {$ f. C0 M+ j    (4)测试:在日志的发送方运行:logger   test  ------> cat /var/log/message   ;完成之后,会产生日志信息
) I; N7 [5 ~; \7 C( g% V% f' y$ A8 C5 r- s( s
           在接受方运行:cat    /var/log/message ; ! J" x) i, z0 J+ O9 B; m3 z

$ V# A8 j  r  t( O' }& [        【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步- i' i  O/ G: g+ l! F

  d8 Q1 d+ X$ m4 \# `2 m5 n         [root@client ~]# vim /etc/rsyslog.conf/ l  n: j6 Y6 h2 ]
1 }1 H( h& M, Z7 f) Y
         
) l% q" K9 J9 w1 N% M4 X" c( y5 K0 O8 B. |) a+ @" n

6 @- s# L" R+ s8 l; Y
/ F3 z' e  l3 l. Q9 ]+ P ) P4 d5 Q4 x/ M8 k% o& E- t/ z
         3 G" J5 F/ ]9 @" I; i) Z; |
9 T. s; H' {, v! S5 r) u( B: |; r6 D

/ R2 J1 u' }0 p  D: [8 @9 y7 b         0 Y: r$ G! R. t  r1 C. R+ B! D
          在服务端进行操作: 0 t7 ]  j& B: b5 V+ b: \
4 O: u/ }  V2 E! R% |
         [root@server ~]# vim /etc/rsyslog.conf           
( w# i- d& E" Z% W0 }2 _2 U+ }* t2 |
9 g1 Y, |- s. e0 o0 I                8 |  M5 i8 A( `1 ~: L& G

  y) U+ f$ z3 y. V" V; m 8 p: V/ Z6 C9 d7 e* `  T
         
) q+ Q/ F3 g$ o         注意:清空日志文件的先后顺序。
$ B3 c$ _& U' R2 e+ I5 F! Q  A" Q/ @" S# _, e1 l0 ]0 W; Z( t
4.日志采集格式的设定  g' v% Q- k3 R& A9 b# P
4 \: h3 U) R/ x: J; {# y
  【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示
- x  m3 v. F; H' B- }- E) z& F. D, x" y
  【2】设定步骤:vim   /etc/rsyslog.conf ------>  $template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"2 {( ?! u8 ]) D% _

0 g- ^* w" u* y9 H" O             ------>  在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT 4 f$ @+ x3 m2 T. _* K

' [3 k1 \4 q& X* ~$ z; F    注释: %timegenerated%   ##显示日志时间
$ U$ X6 g9 m$ n1 C9 a% Z! M- }; @
- I3 ~. l9 n2 {& C          %FROMHOST-IP%  ##显示主机IP3 W  `8 t# C' K/ o& V
1 P$ v: p, I! {4 U" H- ?
         %syslogtag%      ##日志记录目标% Y; _# X# f  M$ b# l! x: J& |

  u& l, b, c1 }8 q! I" Q) }* `: r          %msg%         ##日志内容
3 N2 E$ \6 M9 a0 }# G' c! v5 b7 b" T* Q+ C
          \n           ##换行
- c2 x4 `" K' c$ Q4 Z  E- f
, ^( i4 t- j( ]  【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息/ N; L1 w8 U, C6 ]4 V# s& B4 F
5 p7 a# ]2 x$ d+ ?5 a3 R5 W
         [root@server ~]# vim /etc/rsyslog.conf8 R. m  J) p# I

$ a# s) J- W( [# n' H - p6 k; ^3 Z0 x1 n1 T- |
         - ]0 o2 g8 a, {" f: Y; A: D
         在server主机测试结果:
5 r; o( u# y/ n& m0 _  S( Z( H/ ~6 r( X( Q& W+ P

' W. n, J! L: u& I& N) O9 Z) u3 O4 R! b: ~
         
$ J) V0 p. Q; m1 x- U* K% E5.日志分析和采集工具 , j: t( r9 i3 K+ \% Y
+ Z) }- W- [7 w8 ^$ c
  【1】命令:journalctl##直接执行,进行日志的查看" G1 W+ E5 j5 n. p6 p8 k! d

$ X+ G! N3 ^& _  【2】参数:-n    3    ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数, a" q2 G% W/ M  f2 u
& C- ~' C7 u8 o" b6 r6 D
         --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志& k7 d3 J! G1 v2 i: Z* Z
. u: M7 `/ I' f. M( G1 G4 V& g
  【3】如何使用--- systemd-journald ---保存系统日志信息
6 b8 N6 K* ]5 Y& M( @1 t  ]2 q( B6 m: X  g
  【4】示例: 使用-n命令来显示最近3条命令
5 _& \* k- G8 e1 Z7 e% ]( K
$ i5 v: b. o8 \5 e / ]( Q3 A7 z! X1 e2 u

0 Y' i  r; z+ P! I                    
- }6 A6 Q0 U- g- _          使用-p命令显示错误日志:. n! |2 G' [# t# o+ g

$ C# c8 n" E8 S. P6 X  x8 k         ; K+ m, b; S7 W+ O. b  K# e
- S9 a3 _9 Q" m6 ~2 [  v

! X7 Q6 T& C) C; \1 J        使用-o  verbose查看详细参数:# U, Y' n* t1 p/ c( W5 o

, n# T0 o* c- j1 J
% w  |0 V. ^) R' }
0 k+ t9 N$ N2 k            
1 O9 H2 L# |3 p: @( l2 f       也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:
, V- Y& A3 `- v* A4 Z
$ u) J& p  N" Z( ]/ _& n. }) o
: K. Q- D" K) I/ n5 Z$ i: t, J2 `4 x: e0 C% k" s- C
           
: o3 v% U- i: z- p$ }       使用命令:journalctl --since "2018-07-27 12:00" --until  "2018-07-19 00:00" 时间段的日志+ ~9 K4 G2 ?6 K) {( J4 \
6 Z  B. D7 b& @' i

5 [6 O6 p7 w' A: w. D$ H5 p- {
9 h1 b$ O' H# F/ b8 a( H       + ]: \8 g/ \8 D4 C4 `
% Q1 h% g8 Z* n" T, z0 g
7 B  p# \" V0 Z1 f  \9 t
     补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)   ) @( x% M2 N# w- T

7 z% m' U- J) s+ c$ d     [root@client ~]# mkdir /var/log/journal
1 n& T4 o, D$ w     [root@client ~]# chgrp systemd-journal /var/log/journal/     x0 c' u/ q5 s5 F( C. A9 ^; f3 w3 V
     [root@client ~]# chmod g+s /var/log/journal/        ## 把该文件的使用均指定为组信息) j, W# ?5 p" s: U
     [root@client ~]# ps aux | grep systemd-journal
" x) b0 H% N2 ~# j- Y* ]! p     root       364  0.0  0.2  40864  2428 ?        Ss   06:05   0:00 /usr/lib/systemd/systemd-journald
, v7 L: B# N) C% N     root      5298  0.0  0.0 112644   936 pts/0    R+   12:08   0:00 grep --color=auto systemd-journal
$ O$ b6 A4 R4 R; Z& ~     [root@client ~]# killall -1 systemd-journald        ##重新开启日志进程' [8 f  w5 Y  P' t
     [root@client ~]# cd /var/log/journal/
3 l4 Z' G* D% f. y     [root@client journal]# ls
  F, c4 n0 V5 A6 t! d- C3 `6 b     946cb0e817ea4adb916183df8c4fc817            ##记录日志信息的id7 R1 g% P; \& B
     [root@client journal]# ll                   ##该日志会记录7-20 12:09以后的记录- n: N$ d& i7 k0 {) |- g
     total 0& j# z# n2 ~3 m% h
     drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc8176 e+ y; m4 c/ |! v  y& t! F# L
     [root@client journal]# date
1 I+ j) C: V2 m1 O) I      Fri Jul 20 12:10:17 CST 2018$ F; `% ]9 h' q. Y9 F& P5 y- t2 K
6.日志时间同步
# l1 C0 w3 D. T
$ A( m- H2 ~* ~% M- j# g( H  【1】作用:让多台虚拟机保持时间的一致。
/ W7 I7 _: V) ]& G; X7 C" k' w' u7 J  j9 j& ^+ F
  【2】服务名称:chronyd
/ w: A0 B# {) k
. k: n1 p4 i1 ?" Z1 W* c, y4 g  【3】步骤:(在两台虚拟机下进行)
$ V* @% ~3 I9 ?+ L* K# T/ E
" e/ |0 n1 [0 M) V' v. v           (1)在服务端配置:vim  /etc/chronyd
0 Q6 r4 @8 J6 o) {) A; r) Q1 o) c1 @! v& t/ N) U. {( J$ ?+ a' ?) W
                            22行 allow  172.25.254.0/24    ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间* Z1 {3 M# ?2 B0 D3 E, ~# ?
  l! Y: f% s9 ?6 t: X
                            28行 local stratum 10     ##表示不同步其他时间, R- A, }: A: r, u) A- z. H
& B- K, P: J) i
                            systemctl  restart  chronyd   
/ H6 {& t6 g2 A& t/ O; r9 B+ ]
+ X7 d. V- ]/ t# z4 \8 L4 v3 p            (2)在客户端配置:vim  /etc/chronyd8 a( i- _. m% Q. Q/ Y
, w) ~" X; v* c  P+ N# w
                           2-5行留下一行:server  172.25.254.97    ##表示要同步的主机为172.25.254.97+ {3 W! a. y, ]
. u2 {1 Z* O1 e% p) H$ h) ^! m
                           systemctl restart  chrond             ## 重启服务$ O" z/ N* X& D6 ?0 t

. T# ?- S) N3 h/ b3 h0 C& C                           systemctl stop  firewalld             ## 关闭防火墙) I/ B- P% u+ S& K# C- O

/ _8 {2 j6 P; a( X2 x           (3)测试:在客户端输入:chronyc  sources -v
1 n7 O8 ^) K- C" _; q% M
. \1 M) a* T+ N6 R3 l- x- ^! k1 r$ R                若结果为如下,则表示同步成功:
  h! i8 I! ^& Q, ]0 F; g; h% p% {/ t+ ^7 S+ X/ q# r; |2 I
" f$ p( o& h& F& ^
             3 k9 Z+ W1 B' j
            注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;1 e% B, P9 Q$ F0 R
- t% `' ^1 z* p0 }( G: r4 m8 P5 E
                      文件配置之后要重启。               , C( N% ~5 F. X+ f" _/ s# W

) u( b* W: w# i0 T: f8 b" B7.时间设置timedatectl
8 u: s+ R4 J/ c" z5 g9 a
! ]7 R1 b0 h& ]       使用timedatetcl查看系统时间3 R$ U( }  R9 G' w0 r( z7 X

; s. i% }, t) @4 ~
, R& s" N* s( J3 w5 [" Y2 p1 J" Z
1 f! }& W3 }! U4 R( F& e: |! P      
( \( T2 A' k" W$ V       命令timedatectl list-timezones列出所有时区 # f4 G  o' I. M
1 {8 x  B1 J( O3 w7 n
5 q% g- g0 t& w
! C, ^9 d5 ]- ~% X! r. I8 M( `7 F
      * b/ t7 ~) a6 T/ _
       使用--- timedatectl set-timezone  时区名---来修改时区 ( @/ A) L8 N$ Y' f+ N

$ m' V/ u2 J' T2 d2 u1 [ 6 f* a. _  f, Y; T9 d

* \7 h" Z, }5 \( G      9 ?5 B- o' x. E2 f' \
      使用---timedatectl  set-time  "2018-7-20 12:00:00" ---对时间设定- }) b; G+ X/ ?6 x

: C/ z+ P, C6 J+ e9 x, l& ? " p+ L! o* t4 \, Q% n! r4 \
6 q% m1 Q7 ~; M- `
       6 F, @) J! j1 Y4 M
      注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);9 F- I1 Y$ K7 u, W2 ^, x9 l

7 L3 h; e* I: U. P          ---timedatectl set-local-rtc 0---表示使用UTC时间
) b" \  n! ?  V
. W9 |+ ~5 d! a) L% i# @          ---timedatectl set-local-rtc 1---表示使用LOCAL时间
/ e5 s* Z- V% p2 n6 g         
8 U% P( Q* I! }% p0 a; W, c4 S
$ a9 O9 R3 }+ X! t$ q, h9 c6 |

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 09:02 , Processed in 0.203125 second(s), 26 queries , Gzip On.

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

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

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