|
|
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
|
|