|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- h. }: S( C4 ~4 R" a# c% L1、系统常用的日志(日志是用来记录重大事件的工具)
9 y) F+ Z' Z% C9 Y+ `
( \# a& ?+ t9 {% k6 k% b) P3 p# p /var/log/message 系统信息日志,包含错误信息等4 t3 R* H/ d# ^' F. ?8 Q; v
5 z; r5 J4 f$ {! J$ M$ u# J
/var/log/secure 系统登录日志7 F+ \9 i+ X' p/ B9 T) L
B! @$ Q$ m7 q /var/log/cron 定时任务日志
0 e$ s4 I" w9 ?5 d- m! B+ j' z5 Y) B9 \ R5 o0 ?4 [0 d# m) g) s
/var/log/maillog 邮件日志
& @% i5 N) X) x2 ?! }# U* [/ K3 d9 L' ~1 p
/var/log/boot.log 系统启动日志
: ?& ?9 s. t. M5 d; s4 l) |- q: o7 C& W# N2 T
2、日志管理服务 rsyslog
: X. [( U. Y, v6 T" H# A( U8 F" Q4 Z2 p6 a
【1】作用:主要用来采集日志,不产生日志/ c' R( M @ m7 X& I
1 e* e2 z z9 _- ?4 d8 i
【2】配置文件:/etc/rsyslog.conf
/ r- h x: L7 P9 L7 p, D& ~$ d$ @( j$ K7 Z, `
编辑文件时的格式为: ------ *.* 存放日志文件 ------
I) k2 _2 F9 r, ~7 B. H" G$ d2 z
其中第一个*代表日志类型,第二个*代表日志级别
$ T$ P) j+ Q; _4 u
: G# ]/ w2 I7 [ D: y% R, U 1.日志类型分为:( E b2 r) w6 R5 _
' A' j0 h3 J: N" d
auth ##pam产生的日志* j6 j" H: e2 Y! j, h
! ?; j! J" ]; y9 a4 w. G
authpriv ##ssh、ftp等登录信息的验证信息
! t5 Y, ]2 d3 Z, C
3 o6 H. n; R& K( t) m corn ##时间任务相关
, t, T3 h5 G/ M; S4 A" d
& @( W- T2 y7 o/ {5 w. U Q kern ##内核
( y8 t2 A1 D! }% Z C2 ?! O. E. T _5 j* u1 o
lpr ##打印
0 T( K- w/ I! o+ A; }3 \ N% f3 `& ?
- X( w0 J4 R, x6 j& B, W; b( L mail ##邮件
( ?' @9 m" H) K& Q) `! b) Y
, y, ^3 l5 u- X$ u( W mark(syslog)-rsyslog##服务内部的信息,时间标识
) q" [/ g" l4 H: R5 F) \( U# x6 e9 U; D4 S5 A
news ##新闻组4 m% Y+ n; W. L7 S+ J
7 N7 V( k6 w" e! d- t user ##用户程序产生的相关信息" t% ?, K2 ] c: |
- z* _8 c" C' z' D1 V
uucp ##unix to nuix copy主机之间相关的通信' H7 Q$ G1 }; Z& S+ O- O
0 v, C- w& y( j/ V* A# o
local 1-7 ##自定义的日志设备$ g# Z1 f! Z" x1 n0 i, `8 n' {
8 U! p- J0 u |' g! V3 U1 D
2. 日志级别分为:
D) X" @0 @1 v9 N( m( J5 x; }, ~; c7 @4 g# J
debug ##有调试信息的,日志通信最多. z2 i" C8 E2 V2 A6 z
& n4 n N- }# x( [7 A/ T info ##一般信息日志,最常用" S! k- @8 @7 ^+ ]8 A v- |: s
( @5 g# z4 K) M/ F: q% Y+ ~7 g% Z
notice ##最具有重要性的普通条件的信息9 X0 H2 |( G \2 H2 z1 U
0 `$ {" `, ^) ^$ ]/ X warning ##警告级别
% V3 d0 P0 F# n! L) ^. X, O9 F4 t4 D# y
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
/ e! G" w& H; @' \. `4 H4 w, h7 r9 ?- M0 n" i. ?
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息( A \. I: n0 B/ {
/ k2 \- J! r8 V1 J% ? alert ##需要立刻修改的信息: A8 v2 d E3 c
+ v1 A3 a# j c' `
emerg ##内核崩溃等重要信息
2 ?# U) w. }# {. P
1 s; |; N' S# D0 Y8 O! P! M none ##什么都不记录
8 B6 ]) ^2 C* P5 [) P/ p/ A( K& J6 e) a$ @* r/ [9 ~; s' f! O7 s
注意:从上到下,级别从低到高,记录信息越来越少$ T" I/ {4 Q) c7 N
- u8 x& [# ]* X) r: l' x 详细信息可查手册:man 5 syslog
1 m0 O5 k; T5 L! r: v" h$ P. Y7 r3 Y- l7 ]+ K. p+ r' b
3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误
S; J, p0 V9 o' x5 T. M: ~/ ]" |0 h$ v$ b1 U6 T; D. S% o: U/ W5 e
[root@client ~]# vim /etc/rsyslog.conf
! z* v: J7 J s$ |; I- u # z4 L$ J* E/ q, `0 i9 a; O/ A; B' N
$ [1 J& c3 g7 L: V' ^
2 `6 l3 i9 G; ]; e* p6 R$ O
8 _" X/ m! O+ g6 ^6 A
0 x* B: Q2 m: C( j+ ~
. N$ ^' p& {+ u+ I. G. B' b
# _: e: }3 Q% a* O8 P . M( B$ j( ]" b9 i5 w; ]* P. o
注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。 - ?6 B" D) o. i: G4 b$ b0 r
! V/ W0 n" F' [% G8 m) r; m3.日志的远程同步 ( k) w1 u% h8 ?% H- |9 o
q5 V* z7 a8 C 【1】 作用:便于管理多台主机- w2 B( o$ |8 ]
4 B% \" l2 g9 V& W 【2】步骤: f Y7 W# t) V4 n; ^4 j9 R- ]1 Q
# `( @. [8 V7 s# T' z" b6 G5 B (1)在日志发送方:vim /etc/rsyslog.conf ----->文件里添加内容: *.*@172.25.254.97 ------> systEMCtl restart rsyslog
& u7 t. f6 I9 ]6 D& F' ?( Y
7 U8 m" ?* c$ L" Q0 W! f% K" E 注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送
' d6 Z9 q* y7 _* C( P/ b+ Y6 M
(2)在日志接收方:vim /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld
) B* q! w+ r% U2 `4 }9 u$ ?! c$ T5 w* _* X9 e
------>systemctl disable firewalld
3 | |$ j& G0 D1 X- z5 Y/ }: J& M3 S9 j# D, I
注释: 配置文件里面,15行:$ModLoad imudp ##表示日志接受模块;
% ^3 \5 L. M8 N$ m4 j& m1 E; C+ h* P' P3 r! F8 X) t: b' `
16行:$UDPServerRun 514##表示开启接受模块' `3 R' X$ I+ x, Y
( |! P( d \; t5 x$ B- K
systemctl stopfirawalld##关闭接受方防火墙 : ^9 S9 e9 C4 |
" `8 I5 M9 P. |- X$ Y" K systemctl disable firewalld ##使防火墙开机不自启动 - t; X, h1 k1 M# w
2 z0 _( f- u, X) n- V (3)发送方和接收方均清空日志文件,使用命令: > /var/log/message ' Z% H$ W" N; E6 r+ D8 ^
. W. F$ F/ g/ h# a8 {4 }( h (4)测试:在日志的发送方运行:logger test ------> cat /var/log/message ;完成之后,会产生日志信息( e$ T* V5 g# d
, I& p; j. @# A% M* O- ] 在接受方运行:cat /var/log/message ; & E. l. q' n$ U# s! A
& j5 c& L! ]7 s! l* F" v 【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步7 r. n) y0 `- E- I. S4 {
; `& A) i# Z2 V4 x$ F3 {
[root@client ~]# vim /etc/rsyslog.conf4 T+ h6 [7 l5 _% u; R# g2 A8 ?
5 x1 ?" m, P* B( r
! E# X4 G2 `3 O" v2 p O" v! y3 h! b/ K: m! g
- S( }5 ]# B- `9 V0 T1 i, @' W& Q1 R
' G, U$ U4 ^, q! @8 g
/ }5 E6 d3 O3 {6 d1 V6 J, _" C) C1 T' g
, ~9 d" K) k- ` ) G/ x# W! d/ F5 A4 k8 }) p
) W& d# t5 t* w& D) A2 i1 q / A5 {7 h# ~1 {" S: [& b
在服务端进行操作: . P c2 _4 c! k; p6 g
6 l6 P) Y- m1 X: V: o" _; }) Y [root@server ~]# vim /etc/rsyslog.conf
/ k& ]3 `1 h& D( e- q" V8 K. R7 {1 C: y2 r
, D. k9 M. d3 |+ F
0 I4 P# G( n# d* X) _" g
2 w3 c" y- M! Y* o/ c8 Z
' N" y. J% ^& A9 d5 \" a0 H/ s 注意:清空日志文件的先后顺序。+ p* }, ^ i: w; Y; J
/ c" x3 V9 k4 ]) N4 v: S3 e+ k) X) [& i) v( \4.日志采集格式的设定
+ @ d$ s/ y4 Y/ s; h9 i7 A* R
7 N+ X Y" h/ p0 g2 l& ]7 h 【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示$ N$ k1 s( L0 W& T' d9 Z3 k: l
) N5 p$ P0 \8 H! D& I! \% | 【2】设定步骤:vim /etc/rsyslog.conf ------> $template LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"; [' i# ]1 G! D
/ F1 `" V/ D, [& C
------> 在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT 5 b7 Y9 B ~8 z$ k _- f
: ^2 u8 y% E) g1 s+ N7 A! I8 s% ` 注释: %timegenerated% ##显示日志时间
' q' s4 \8 [4 f0 M: C9 h( g' p6 h- w
%FROMHOST-IP% ##显示主机IP
# g( ~& K) V) d$ n% N$ X/ x6 L, ?6 `4 ^) O* ~$ Y8 H2 }
%syslogtag% ##日志记录目标
% M9 H' |3 O6 Y0 K. v- Z& e7 W% h4 i) E/ z! F$ D; P
%msg% ##日志内容" Y/ L( P; r! f" P7 _! @
n6 v1 A: Q' {
\n ##换行
, m& [/ m4 f9 B- N$ j8 ^' M. m& V1 {2 i& G. w
【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息
1 S% Q; ]5 j5 V2 v
% n, X9 a3 s7 a' g% c9 x4 P [root@server ~]# vim /etc/rsyslog.conf6 \" G3 S+ `. f8 Q
* f3 Y8 [( `4 {9 ]7 O" Z! d# N
" r; t/ U( }) @& P- c
# Q8 I8 r$ W$ C7 [4 V9 p' J
在server主机测试结果:; C& L, `! z, z, Y
& t# h6 z1 E4 k" k7 ^- z: P) Z
; k1 [3 L% E( X7 b9 J9 L! C& n3 L [0 K1 t6 c) u% z6 d
6 n) K7 q7 _$ R; F5.日志分析和采集工具
; [/ W) c8 N+ _ {2 Y; Z" I. Z
3 }0 Z M" _% C- ?/ N) {( r' {0 c 【1】命令:journalctl##直接执行,进行日志的查看) G. A$ ~2 [' _; o$ L) X
- X3 N; x' |- U 【2】参数:-n 3 ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数6 Q/ A& k. l2 D: I4 B, @
- f X, @3 O) f$ M0 L T! I5 Z --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志+ U/ c6 S) j4 M& u" V4 [
8 A+ Q9 a0 V1 ]6 j4 ?, k 【3】如何使用--- systemd-journald ---保存系统日志信息
8 k5 S6 [: ~: F
+ H, W/ x- m' w3 d7 g 【4】示例: 使用-n命令来显示最近3条命令 + Y* I. I# H; {! U5 n8 e
3 @1 H3 G* E( D+ B& `' s& Z h
2 f0 q) t% p6 H5 P+ V! O
8 g( u' ~: P0 C+ G
- S2 s8 g7 |3 O y t4 Y' v 使用-p命令显示错误日志:
# C, a) D5 R$ U% g( d" M1 R- O4 A8 {0 z2 l6 W2 N$ d$ h, F8 M
: i/ S* E& _ H& c
g9 V( r3 D, N: o; Q
/ z' e! L6 ^6 Q2 H I 使用-o verbose查看详细参数:
& s, q1 s& l( Q# p. t/ b( q+ }6 d) p% Y1 V! ^
9 L, _. S9 G' n, `3 g
8 u, C- `$ v/ B( ?# B; z+ `
! G5 K( Q! ~% J& V1 m, L7 i/ \ 也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:
2 @. Q, D7 U8 \: h7 w, @( h
$ Z* n8 Y- t* @' a4 s( ?
3 ~$ P1 @/ `' q- x
7 {' \! ?9 ?* [$ F7 @6 w# T3 A
( B8 R3 _7 j0 y+ ^; Y8 L5 }. q 使用命令:journalctl --since "2018-07-27 12:00" --until "2018-07-19 00:00" 时间段的日志
) Q1 Y; F) M6 ]# |
4 x; Z- i- `; v
3 @2 F% g7 L( I7 m8 o; @
6 K& ~4 S# D' b3 H6 g8 S, B
# K" t8 w) }4 ~% ~5 w # O; p) |1 L3 D
! `' o1 t7 W* z h* @ 补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)
6 ~/ Y4 l+ ]5 ^% G3 ]3 V$ ~' i6 s6 n; m- z
[root@client ~]# mkdir /var/log/journal
8 X7 W$ P) H+ X$ t6 G1 l5 O* y: L [root@client ~]# chgrp systemd-journal /var/log/journal/
4 l) Y8 L3 ~! M) V( K5 @ [root@client ~]# chmod g+s /var/log/journal/ ## 把该文件的使用均指定为组信息' c' w3 N3 ^+ P( `
[root@client ~]# ps aux | grep systemd-journal
8 \7 r" D6 Z" b. V root 364 0.0 0.2 40864 2428 ? Ss 06:05 0:00 /usr/lib/systemd/systemd-journald
3 p5 B" a$ Z' u+ F1 G root 5298 0.0 0.0 112644 936 pts/0 R+ 12:08 0:00 grep --color=auto systemd-journal
! O, w1 k8 x" ?" ?7 v [root@client ~]# killall -1 systemd-journald ##重新开启日志进程
# B& y9 C2 Z& y1 \3 x2 h [root@client ~]# cd /var/log/journal/1 f" v! f+ `) [. D
[root@client journal]# ls) Y% }1 n' M [; r3 m
946cb0e817ea4adb916183df8c4fc817 ##记录日志信息的id' z o. e9 d0 K$ p* p0 m) n
[root@client journal]# ll ##该日志会记录7-20 12:09以后的记录
; e- N4 P, [; _. H) n' D$ n' m total 04 H" E& o% s# M
drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
1 ]! g2 f- ]1 h8 w [root@client journal]# date5 C6 p A; o: ~3 _0 k4 C# l9 t4 b) O5 m
Fri Jul 20 12:10:17 CST 20181 \& N: u( {% L6 u& _
6.日志时间同步" M+ ` m; t8 E* K
6 w* C' M& n% B9 q 【1】作用:让多台虚拟机保持时间的一致。- q* Z$ u/ v& j: m; e: F) u
3 B) u' o, W% Z; L4 p, ?3 T( B
【2】服务名称:chronyd
1 \, W. A7 K6 f% M0 V, T/ f- b
0 g! V) r/ f' ?2 O- x7 z+ o* L% M A 【3】步骤:(在两台虚拟机下进行)
9 s0 y+ T- E C2 V) ?6 C+ Q
) U/ B6 |( f3 a; m& Q0 Z (1)在服务端配置:vim /etc/chronyd: A/ p4 p1 }3 n2 i5 q8 m
# [6 I$ W& n& f+ n. v) l" i
22行 allow 172.25.254.0/24 ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间
& N# g+ x# p4 j. z- b+ B1 X$ B) W7 V. A# f1 X
28行 local stratum 10 ##表示不同步其他时间
, y1 C: P' C/ S3 \1 B! ?6 b( B) Q, t6 G
systemctl restart chronyd 8 G! f! o( ?& S1 H. R
% x. E' {2 k r8 g4 I4 W
(2)在客户端配置:vim /etc/chronyd! G6 T1 o: N7 c
9 j7 A- F) T! C z8 Z 2-5行留下一行:server 172.25.254.97 ##表示要同步的主机为172.25.254.97
' n4 L: j, R" B$ }1 D/ }) ^, Q
[$ _- ^0 |3 h/ |3 i$ l7 w+ k1 y systemctl restart chrond ## 重启服务
2 J( J) F9 J6 {: R u3 E2 c! U) a/ ?* Y0 ?* {& w: a9 B" k/ |
systemctl stop firewalld ## 关闭防火墙
: `# r, m6 }4 f9 P1 W+ ]( _/ Z! v( f8 M$ M: i7 }/ Y( h5 ?
(3)测试:在客户端输入:chronyc sources -v
( h% n/ S. i. t8 c# O. {6 O. P! t4 F- Q! e2 e4 I
若结果为如下,则表示同步成功:0 m3 _; D! k# R9 q4 U0 z' W
! a9 H2 t$ W6 Q4 Z
3 ^% N( g& M2 Y7 |3 D
# Y: ]4 `) X) {1 O- t 注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;
' h1 c8 p& n0 |( t9 B
! @8 \3 q# g3 O5 A8 g) ^ 文件配置之后要重启。 5 K3 C0 R. X! N- m H
7 g) _ _8 g$ E# O6 L' o
7.时间设置timedatectl . y3 `& F; x% H
. o) v" Z4 T8 E2 \$ u 使用timedatetcl查看系统时间
) J6 L; V9 b5 X# K' U
, I% \2 E/ F6 R7 [2 p' N% j
' ]) Z/ D2 V& G; G/ [" k0 b
9 c3 }( m! W! P. t8 \/ b. u
5 M7 h' t; e1 c! P 命令timedatectl list-timezones列出所有时区 * M) ^& k2 @/ n8 u" K
1 D7 d! c; T% i( t0 o
" p) G! P1 h% l- R( G3 j9 l: ?# K
7 u8 \& M8 F; w# A* O+ R4 S+ M$ r4 d
5 D! @; c/ j6 X9 M+ p5 z# W. h+ C 使用--- timedatectl set-timezone 时区名---来修改时区
# T A! @# F& }% j
% b) F* k& N4 C) k
0 m, b1 Z3 \3 ~. ], \$ U& w
5 U* L, y4 u! u# p4 m
# G! k1 y i0 E/ i! {( \: u 使用---timedatectl set-time "2018-7-20 12:00:00" ---对时间设定
" P% {3 L, R9 j Y! c, Y2 M+ m& J$ v# u. U% O: s9 ~+ }/ k9 g: f, Y
$ Z1 U6 Z& ?9 C( f
^4 }, C( J. N5 ?! I! S* N. O
4 l0 Y1 s3 U W/ i" N 注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);: @/ d: q4 s! A0 C: {& i
4 m+ Q& S: S$ K. [1 N8 ^ ---timedatectl set-local-rtc 0---表示使用UTC时间
* j( K6 p0 m/ L1 Q% m. A2 r1 w$ v6 O. ]% \
---timedatectl set-local-rtc 1---表示使用LOCAL时间
! c+ _7 _% g$ V2 |0 v' H/ \
9 y* A& ?3 q- M3 k5 Z
9 n: J, U! |" f2 q) o1 Y& T5 V |
|