|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
& |' z$ f' |2 ~! o# K( m
1、系统常用的日志(日志是用来记录重大事件的工具)
2 f' O" @, ?' @( `7 I) u7 m$ j6 k) s! R& T, M" u
/var/log/message 系统信息日志,包含错误信息等
& `. D! t |/ ~" a
2 b, p" V. ^2 L0 }; C /var/log/secure 系统登录日志
; B5 w' h/ _! C1 ^+ X* u. X: `( t4 r2 s( b- ]5 j/ B
/var/log/cron 定时任务日志* z9 ?; Q& F" e( A7 J6 c) a
, j+ r( O# N# W4 Y2 S3 }2 W; i /var/log/maillog 邮件日志
& N+ _& b2 N& q+ J: r3 p, v, G: f, V: W
/var/log/boot.log 系统启动日志
% y) V6 y. n) O9 Q, ~2 ?' w( T# N8 E7 Z2 W. q" ?) j2 v
2、日志管理服务 rsyslog1 [" Z) h5 o, y. _4 |& l6 }
/ v: E9 X! T [# K 【1】作用:主要用来采集日志,不产生日志
2 f8 _6 d; e# @
7 l6 l3 ?* j' k: J& o: e2 ^+ G 【2】配置文件:/etc/rsyslog.conf0 I6 G1 h# o% [2 |( d! W+ z- v& t* u% n
" ?. C9 a1 I2 ^5 l! F 编辑文件时的格式为: ------ *.* 存放日志文件 ------8 {# Y- @; ]* @; s/ n
0 [* P+ L$ \ K/ l
其中第一个*代表日志类型,第二个*代表日志级别3 R0 c+ ^. o5 r6 e4 K, }: g7 E
: i; J* q; B; [
1.日志类型分为:9 p# n/ K5 n! I$ @: v3 A
) m6 V G( s& O( z! }# l x& N auth ##pam产生的日志
1 s& e( z1 b- w) O$ @ {( e; G) a8 Q' V/ d5 l
authpriv ##ssh、ftp等登录信息的验证信息
( Z4 U" s# @7 o: ^ h/ f
+ j, \# n s$ v$ q" P8 s' s corn ##时间任务相关& |& a1 S+ S* _/ h8 B0 u+ f
$ G+ _: q r9 p4 l" P( @2 A kern ##内核# c# N- r- }% _* p( t# c. e8 y3 x
# ^- G5 z: @# ] lpr ##打印6 k7 P) I$ N- l
. N, P) W* e- ^- E1 d% U) a" { mail ##邮件
- ^1 p6 T+ l+ g! H
' P" s0 F1 D3 M* b9 B mark(syslog)-rsyslog##服务内部的信息,时间标识# P I: V+ x! S& G3 `1 G
2 |' D2 v, u6 J3 T; P. t; G, [1 j
news ##新闻组+ r% H7 X; y8 L
% ?0 Y* ^6 O3 t user ##用户程序产生的相关信息$ l8 b) S" X, P! k% r
# }* ?" H w8 }; p
uucp ##unix to nuix copy主机之间相关的通信1 O) _' L) C8 X0 ~, H
$ T j3 O8 ?! E& m: e local 1-7 ##自定义的日志设备5 C5 U. p5 u( {1 I7 Z/ Y
8 _* X8 {! `5 F7 ^4 P. W9 l 2. 日志级别分为:
; V6 g& z3 J% g! j- Z
# O9 @& A: }" R6 ?( F# o5 f1 } debug ##有调试信息的,日志通信最多' n; K0 W% S" [# X( |( M9 h
# y2 s$ [" l2 e& D- |7 k$ s* ~
info ##一般信息日志,最常用
& D" y. Q; @: Z& S1 ~* ~1 q( M9 i6 F H' A
notice ##最具有重要性的普通条件的信息$ a8 t% y' T6 o* c* _
4 O1 g+ ]0 v- d" I: W# c( V, ~, o warning ##警告级别0 x% F' A( y" T8 K; q% v+ G
9 k: x' `* O% e6 B- w& ^ err ##错误级别,阻止某个功能或者模块不能正常工作的信息
! ^; z! V7 d" W1 b5 f7 C
# t$ j: W+ {( D) n, v' s2 @& ?! g crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息% J( |0 u& t/ |- j' d: Y
; I( O" @: ?2 M* u+ t7 O! B
alert ##需要立刻修改的信息" _0 Y# e) g2 I' g1 x
: `5 B/ ], [. l; s8 |
emerg ##内核崩溃等重要信息) s1 b9 a: l4 Y) i2 \& v' `
% C# e/ [& {+ w; W& Y, f" \
none ##什么都不记录 % B5 B) w) h3 l# n
3 m, i, J9 Z7 k8 X7 }
注意:从上到下,级别从低到高,记录信息越来越少/ Y: m& C: s* l$ j+ U
" F* p. [) f+ j: S) o1 {3 g, _" D 详细信息可查手册:man 5 syslog
% F4 r4 G/ K! U# z" a! f
X; P- i% q2 l s 3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误
& y3 M5 L# m. W$ _, H+ s4 D' \+ Z. `$ ?3 l9 |0 B* t2 ~
[root@client ~]# vim /etc/rsyslog.conf
9 N3 N" Z% e% m$ |+ m( E ( y; p+ a5 I4 t
' m1 S7 y) H. F: I% K# ^6 G
7 I' Z: j* H/ M* H
8 B) I5 q6 Q" v8 W* v0 O6 G
5 w9 n1 I0 d1 s# Z1 U5 }- e4 v2 C
, q/ @# @* \3 b4 _ ) S7 B/ ^6 R1 p6 V- b- T) C
9 |1 d( \& D; p( G4 K 注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。
t8 u. t: Z0 j+ D5 a: M" X$ F0 z
3.日志的远程同步 - K- e! Y) @. }* k- p ~0 Z
9 w# K* x) B6 ^* d4 K" v
【1】 作用:便于管理多台主机& D2 L) a% y4 U6 V( I- Y. w
4 j2 @* M# y% |& L( P& x3 i# p 【2】步骤: 3 o, m" H- \8 Y0 l3 X8 ^! H
* N$ _/ P6 w4 K6 `
(1)在日志发送方:vim /etc/rsyslog.conf ----->文件里添加内容: *.*@172.25.254.97 ------> systEMCtl restart rsyslog2 `6 N9 m+ k$ E, Y/ f
, g8 ^8 \" U; m1 B2 g% M! b. ` 注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送
n! c2 G/ e" b( ]6 @; M7 o3 o) J9 h6 a1 X w' ^* c% z. Y6 y% \
(2)在日志接收方:vim /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld' f% f; V9 a2 _) |% u7 F
4 V1 H! R Z7 I. N7 z: k
------>systemctl disable firewalld
; B" T! q8 B9 R+ P, w( T9 u# K0 G0 s
注释: 配置文件里面,15行:$ModLoad imudp ##表示日志接受模块;
& X. m) X0 e4 ^* L2 q p+ o* E& T: A+ _2 }
16行:$UDPServerRun 514##表示开启接受模块$ w( H: W; C" @
* ~3 k- e. R8 |
systemctl stopfirawalld##关闭接受方防火墙
* ?: x" A# b: {" Y7 T+ g
+ L$ ^8 D( h/ T! u; M systemctl disable firewalld ##使防火墙开机不自启动 % @3 c8 ~+ Y8 j1 t
) D3 [9 p/ q" k* i
(3)发送方和接收方均清空日志文件,使用命令: > /var/log/message
: v7 \# O- \5 R$ J3 S4 \* c) t. z+ b3 y, h
(4)测试:在日志的发送方运行:logger test ------> cat /var/log/message ;完成之后,会产生日志信息2 C, c- S% x3 s) P. V6 y+ [
5 X! K; n, G; Q+ B 在接受方运行:cat /var/log/message ;
1 d. W2 Q% `% g* ]# d: R9 i: b/ N% N# k8 v# Z
【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步- o2 ]" o: ?6 Z. p
. p, }7 \4 B; z& w# V" M, j
[root@client ~]# vim /etc/rsyslog.conf0 m5 L7 r. F* y
. [; o: r. |% b
' I* D+ A9 x c- y
" f! m! k% t6 t" V
) r6 w3 K% G! t6 O. F6 y$ {& W5 }: q: Q; W7 o" O2 A, K
8 @0 x* E/ L8 q, U
: |3 B( A7 [0 W3 e( A4 z
) x" K! B0 W, P, u7 Z1 v, H0 i& O
2 h" N$ g) Y" V+ `$ l
/ E- V2 E* R. Y4 e 在服务端进行操作: 9 S! M: n# R& a! ^" ]
2 d% O0 E% y7 W4 [6 B9 w [root@server ~]# vim /etc/rsyslog.conf
9 o. {- A$ o1 R( v, }
1 ~, y' t& f& R K& x- M
N0 }, T4 j1 [+ ^
; n6 K: R3 Y E6 I
5 k" s2 t0 }: X) e " p( `% u" N+ y- U+ C
注意:清空日志文件的先后顺序。1 o) B- W/ H% C! M5 [$ u
% \# u( g& h, l1 z- I4.日志采集格式的设定
0 D) \/ g) q; L2 j5 {) A8 l0 }9 `5 i* V U
【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示* _' W0 [6 p1 r5 E4 w: O6 Q
/ T0 p( E) f! E" ]( f5 E/ R
【2】设定步骤:vim /etc/rsyslog.conf ------> $template LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"5 g' ^ g: G" y- l6 f
6 z( Q* A8 W4 C& P( u& u
------> 在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT
8 r2 z; q/ R5 D2 t" o1 h: d% C$ a# W) p
注释: %timegenerated% ##显示日志时间
' _/ _- I! e1 n' ~9 Q5 q5 v5 |! Q3 h# d% _' l# W' x; n
%FROMHOST-IP% ##显示主机IP
( g% c6 j/ Z8 D: c/ r/ N1 f0 K/ S5 m( j$ {6 O1 J
%syslogtag% ##日志记录目标6 O+ y$ u' G1 ^, _
, S+ R3 P/ L' z- G3 f
%msg% ##日志内容" j2 m* x3 ~2 M2 x3 P9 U
# x% U0 s+ @7 A
\n ##换行
* e: F9 ?! y% p; ?: z A( E3 D' {1 o+ Y! C$ d, j0 l
【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息
2 V! e* p" F7 Y. Q9 |, C M
! l h- T' _- ~ W0 @: U [root@server ~]# vim /etc/rsyslog.conf5 }7 j: Q, W2 d' ?9 |
/ Y9 t5 s$ N# R4 s1 X
7 {( O4 d4 \" Z* ^6 Q& E ! K8 O) J0 R) z+ |1 c# ^2 p+ A
在server主机测试结果:
3 O t; R- z! \9 I8 u
, _( f: x0 U7 h& t7 O! ]
/ i" P7 a1 ^, P5 A1 n
7 G1 N- y2 U1 j4 L# D3 v
, d# N2 ~) G( H# @3 a, N5.日志分析和采集工具
- g0 s5 h' o! @
) S' @9 ^0 ^) F$ \$ G6 l1 u/ ~ 【1】命令:journalctl##直接执行,进行日志的查看8 |' Y- D5 T _* {
5 v3 `* |4 p2 u% I0 p
【2】参数:-n 3 ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数4 e' W) E% t, W, a
U( R6 {$ w& g2 V. T
--since##查看从什么时候开始的日志 --until##查看什么时候截止的日志
6 ?4 R- G+ U! U3 j1 m3 s+ l
0 [* |$ X/ J' ^4 n4 l 【3】如何使用--- systemd-journald ---保存系统日志信息
; a2 m5 _6 c7 F# Q; q' ^2 E% y Y
/ J7 t- @* Q- g. m% D 【4】示例: 使用-n命令来显示最近3条命令 7 L( |9 Q3 X" \1 S
5 `3 Q+ O, R, h( U0 l$ @
; u& a) M" w7 t, R
; n& b1 e0 [# } ; c- z" N0 s8 T7 ^, \
使用-p命令显示错误日志:
! A/ Y% N% @. I- R! A8 E& @0 h" O2 N
" y O) R5 m9 H+ M" J
: B/ J8 y) C1 W8 q3 {. n! n a T9 I2 k
+ i2 `6 d2 K% ]. |( b+ X4 m% n 使用-o verbose查看详细参数:, D5 K4 r7 u! i- Z4 W' c
9 X2 {# x$ e- }) o) j2 J) o3 d+ C) x
0 W3 C- N5 k, y7 d- s, e% H
: | a' ]8 a6 H( ~
+ L. I) q! D. C" V9 J9 I: N2 _8 J* v
也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:5 O9 V& l5 U' z- d7 B
2 J0 W9 Q# a9 c$ ^1 {8 t+ J
I4 d( l) W& c. e3 _5 }
. w1 R7 u$ q3 O) m 6 S! u' R6 l3 a( X j0 z' B
使用命令:journalctl --since "2018-07-27 12:00" --until "2018-07-19 00:00" 时间段的日志7 C. w* F L, s9 z$ K2 C
7 I) T, f; x! m+ ? f
/ |6 U: N! D0 K. [6 J
9 ]$ Z( r5 L# b4 B5 M0 n0 ~9 i : H2 z1 N4 l+ s# F% F9 {# i+ h
+ }' M# h+ @3 o9 _5 T6 e* g' E5 N& X
4 T$ G7 o8 ?$ G/ Z! t 补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)
: s' P2 `( @3 q) l! ~
2 ]+ Y( Y$ l! O# L4 P+ M3 o [root@client ~]# mkdir /var/log/journal
$ {2 b: K8 B! U$ S3 g, o$ S- s8 a [root@client ~]# chgrp systemd-journal /var/log/journal/
% U* A* f3 R8 `& V$ s' O5 E5 z [root@client ~]# chmod g+s /var/log/journal/ ## 把该文件的使用均指定为组信息
7 M* ?7 o& j# P% n' ] t0 R [root@client ~]# ps aux | grep systemd-journal
3 y' ?, C3 ~6 y& y: r; a root 364 0.0 0.2 40864 2428 ? Ss 06:05 0:00 /usr/lib/systemd/systemd-journald% \ t/ K6 ~- A% L
root 5298 0.0 0.0 112644 936 pts/0 R+ 12:08 0:00 grep --color=auto systemd-journal
* ]4 q+ L: m' R% ~/ w [root@client ~]# killall -1 systemd-journald ##重新开启日志进程. ?9 ^1 D, {* q2 B2 F
[root@client ~]# cd /var/log/journal/! u( f2 H p5 q H6 B2 A5 {
[root@client journal]# ls
5 \3 q! Y8 X+ n- K% `' n. a5 R+ @6 N 946cb0e817ea4adb916183df8c4fc817 ##记录日志信息的id
8 r, o0 Q5 }) {% F7 Y7 W/ L. c2 \ [root@client journal]# ll ##该日志会记录7-20 12:09以后的记录1 K0 g% v& P& z
total 08 v; [" J! E/ T0 t$ W
drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
4 A: |1 w) R8 c: M- c# I [root@client journal]# date
; A* I$ a* f( m7 A3 f Fri Jul 20 12:10:17 CST 2018' c0 l: }( A+ [
6.日志时间同步2 {2 @0 E# ^6 f0 w
( C# y$ F5 Z' ~& m- v ]6 J# n/ s& x. P
【1】作用:让多台虚拟机保持时间的一致。6 e3 j- N3 _) Z$ n/ b; [
3 F2 o) R7 r, S2 d5 Z2 O7 [- L 【2】服务名称:chronyd$ \0 X3 G$ @- ^! {
6 Q3 j% w9 F4 [' _; k) p
【3】步骤:(在两台虚拟机下进行)1 k+ ^* B, _5 M( ]
( h) H) H3 w# N% r3 b K& Q
(1)在服务端配置:vim /etc/chronyd
9 Q( m- H7 b1 ?/ d& o' A8 c% q3 Q, [, Y* R5 f
22行 allow 172.25.254.0/24 ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间# E! t0 P2 @; `3 ]$ {
" x1 e6 d/ B0 o9 K! e 28行 local stratum 10 ##表示不同步其他时间; R& w( [: _5 _& Z2 O
; M2 u% u1 f+ P O& i
systemctl restart chronyd
9 |# l# S- b& ?; X* r
3 }5 l: k: J7 y6 D (2)在客户端配置:vim /etc/chronyd
& p) g! k, n2 X, C
4 e1 K& L6 Y: Z) } 2-5行留下一行:server 172.25.254.97 ##表示要同步的主机为172.25.254.978 M+ f1 X& `2 w
5 j9 c- h: P5 R# P systemctl restart chrond ## 重启服务
7 S- k# n' V4 j' g+ ^
+ h3 L# ^) a9 W+ n systemctl stop firewalld ## 关闭防火墙5 T: Q+ m' w+ G/ C$ |
$ F3 `" v- R3 U& A$ Q* _; p9 `6 ]% T
(3)测试:在客户端输入:chronyc sources -v
1 F7 b: t8 c j- m7 N3 v( {1 C9 ^8 w5 D d" v1 C
若结果为如下,则表示同步成功:- T+ E+ w! C& V3 A$ f
( M* ]. S2 c4 ?5 h4 p
3 |% r/ n3 X! C7 z, H% e& r5 x
* G' h. G- ~9 p+ {) M d% @ 注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;7 q% G8 @- m; P/ ]1 ?. V
) u% ^6 a* f, E1 I4 N 文件配置之后要重启。 , d( X& e, i0 p- D5 R4 ~( x) W
7 X% K$ \9 _) X( G' b* o; P2 N7.时间设置timedatectl
/ S" p) n+ u! F* z* i; G# P0 A8 }
使用timedatetcl查看系统时间 @3 w) ]3 B' P" a! t5 z
( Q4 @9 a' b$ y& b7 d7 s5 k
: n% I( i2 v# ?4 ^
7 t4 C3 v! W7 f* f2 I
w1 m, \* G- r$ _" H0 s; I: |6 m 命令timedatectl list-timezones列出所有时区
$ J3 P) V0 r' B" r ]& l4 C9 n3 W$ M; O4 x
& `, k1 {# ^7 T/ c3 v- e) [4 J
. s, u* {! X) ]( F. B8 ?
/ v+ C: D8 P0 s 使用--- timedatectl set-timezone 时区名---来修改时区 # ]( M. |; F- I+ K2 j! w
/ i7 p% Z6 |8 W' {9 {: s. k
5 i5 h. k. S) ^% |% k4 e8 b1 [5 o" Y
* b$ q3 u& p* }5 E ( s& B0 ~. ^' Z% R" B. _
使用---timedatectl set-time "2018-7-20 12:00:00" ---对时间设定7 x9 q% O0 S& |6 d7 {8 o; e
5 |+ J3 e& T9 v2 T( V2 C
7 k% X, u3 ~4 i" w( v+ y
/ o! G. l T8 a8 H
5 @# I. H+ T4 ^: i( [. F: [
注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);
9 D, P6 m( g1 B, u5 k' {2 ?6 D+ }! W2 H& V1 W
---timedatectl set-local-rtc 0---表示使用UTC时间6 S+ s/ L) y x4 f9 D9 c
% _9 q1 q- |) h ---timedatectl set-local-rtc 1---表示使用LOCAL时间: }5 u4 V- j) r1 o
- {% e7 _+ W. t
+ B: s8 T ], Q5 V/ z0 G |
|