|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
& q( g) s& Z% a5 N) p
1、系统常用的日志(日志是用来记录重大事件的工具)
) H# u0 w+ L- ?5 w7 B
4 H6 v: Y% [, z, B0 b /var/log/message 系统信息日志,包含错误信息等
: ^& z. I' n& y+ T* y( ~4 x: d8 s$ F' w2 \$ `
/var/log/secure 系统登录日志
3 G" X- I. Y3 }0 p& x. }# G! i% s% w) ]) \8 Q2 R
/var/log/cron 定时任务日志1 i. n! [6 W3 U+ @
# _8 \) J6 W/ t j3 ]; `
/var/log/maillog 邮件日志
/ v0 t3 j* A, I# _, W
% J" J. v) d, N7 \6 p /var/log/boot.log 系统启动日志4 T6 e7 E; q7 L0 a
# N2 ?6 h$ U& G. ~! ]! K2、日志管理服务 rsyslog
7 a9 Y2 ~0 x$ t ~9 u$ W" D+ S7 I- d9 r! a! }7 o) ?
【1】作用:主要用来采集日志,不产生日志
/ a. ~! v C# N0 @! T
. }1 H& O( R0 i9 n8 a 【2】配置文件:/etc/rsyslog.conf
7 o k, i: O) p+ [
! y/ j5 ], T$ U+ v& {1 e# y' H# v3 g 编辑文件时的格式为: ------ *.* 存放日志文件 ------- C+ z4 T7 l( F8 c+ g2 M
* v1 Y `4 \+ c7 } 其中第一个*代表日志类型,第二个*代表日志级别) J& g6 J2 }+ [3 E( g
" E+ g! K. e( J& A+ H; ^
1.日志类型分为:
! Q" \5 n8 t) h& P* ]6 {5 C- x% O& o2 F3 N4 v% ~' D7 o
auth ##pam产生的日志
! l2 U+ x$ m6 G( {+ G4 ?- y* K( A2 _3 O% y- L: ~
authpriv ##ssh、ftp等登录信息的验证信息
6 }# Z: ^) w1 l P
- `% n& l/ H1 X: @9 B1 ^9 g+ K& Q corn ##时间任务相关4 ~# E' A7 R% q7 n
9 ]3 F8 j5 B) F5 B2 @, i
kern ##内核- ]% [4 s& U1 c, f. x+ @
2 x1 \: w; B4 @5 {8 k7 f8 I lpr ##打印: z4 U! ?- v3 b* [
9 R& i6 ~! l5 q5 ^: U
mail ##邮件6 D6 B* i9 \+ x8 A2 k& T
* [# z i6 Y7 a/ N! ~3 r8 m6 V mark(syslog)-rsyslog##服务内部的信息,时间标识
8 @- y' R" W2 z& N; ^8 M/ N! J0 f9 l0 Y! C8 S
news ##新闻组+ i$ q& `' t4 e- V& f$ {
7 A+ H# M8 a4 d/ G user ##用户程序产生的相关信息3 o( X" u2 j+ U, f" \
; ?% Y% f5 b0 e+ p/ D' D
uucp ##unix to nuix copy主机之间相关的通信
. G* }% o1 C: m6 o0 l8 G2 \3 U, s. j
# Y/ B0 C, O% J9 j local 1-7 ##自定义的日志设备, p+ r! I% {5 p! J& @. \3 y
4 v) a' W2 r* l- _9 W
2. 日志级别分为:2 [- O& D& J8 m3 A$ C! K4 a0 K' I
# I% o* T) p. S6 t4 R, t/ ^
debug ##有调试信息的,日志通信最多1 @3 N6 v$ u X# @* u% ]
% F' {+ A- x7 M0 q+ |
info ##一般信息日志,最常用
6 s+ s- H) r( U6 A( j0 O9 I
; f2 I5 I d/ `' d0 l* T1 {" N notice ##最具有重要性的普通条件的信息
; U6 n" ^$ v: C) B" C2 Z! n
6 Z3 Y( Q' ^4 |+ ^ warning ##警告级别
" C, F8 }% [0 i0 N% g7 y: L8 L3 ]* |5 H9 K2 H2 S) q, ^
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
$ V, O0 d+ e! n7 ~8 B- @/ x) ]7 t. T% E9 _/ b9 M4 u& y6 J& R
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息3 d( Y9 b$ L# ~. M
4 z Q) O% D' E8 ~ alert ##需要立刻修改的信息
* X3 k @! |0 S+ i, I0 E. f6 ^& U; T I% T
emerg ##内核崩溃等重要信息+ g; M: H+ m' b& C& K2 } _
; u$ E, r1 C* S5 |7 x' n
none ##什么都不记录 9 O H- O1 V5 x. m5 Y4 I% d( U
' T; H" Y. I9 y3 N
注意:从上到下,级别从低到高,记录信息越来越少
j9 F6 r; J. E: i5 t* e5 ~- S% {8 L
详细信息可查手册:man 5 syslog
, O) G8 v1 A2 t( a
/ ]& G1 e$ I0 H/ w7 p) h 3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误. z8 k9 e' e! k# R* ]+ Q' U7 O9 \, Q
; t+ o7 A+ l! J7 w3 @0 R; s, j
[root@client ~]# vim /etc/rsyslog.conf+ l: b3 h% B( F% m2 f: Y" ^
3 ~% @+ b" J) h
$ h$ c7 L+ {3 u2 U% b7 R
) b$ x7 h, s0 M, O5 e9 q
* O/ e7 Y* Z$ p( X2 u
& A1 b7 j. S8 [7 k: A# K" X$ b
2 M. N9 s5 V. ]4 H0 w! a
) B. T+ \/ F5 W' S/ i : ?1 Q3 _# x/ U
注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。
9 D* f$ h6 U9 u; ^1 w4 H8 Z' G( E0 M7 ?- Z1 [, m& l
3.日志的远程同步
0 I& u0 a0 [, F4 V* z
F8 o7 b: Y* v" J 【1】 作用:便于管理多台主机# x: U' L$ r( n, t
5 B; \! i* q5 f* ]$ n 【2】步骤: : ]3 h6 N0 u! |- v9 R
, H0 Q1 C- p- t2 N: e9 l6 ^ (1)在日志发送方:vim /etc/rsyslog.conf ----->文件里添加内容: *.*@172.25.254.97 ------> systEMCtl restart rsyslog
! D7 k/ a ]% k; e2 i- J
0 J0 O$ e; c: ]: ] y 注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送 0 t8 |' K _. C0 B9 Z( M
" a% P4 T8 v. a# ?; c* ` (2)在日志接收方:vim /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld
8 l6 `, M$ J8 G3 v
9 H7 Z( r" O- H! h. {1 f, s N: b ------>systemctl disable firewalld" L2 x6 f' B. g- e
7 F4 g, E3 \7 Z
注释: 配置文件里面,15行:$ModLoad imudp ##表示日志接受模块;! Q" G2 C9 [+ U
. e4 m: C z( S* J1 V
16行:$UDPServerRun 514##表示开启接受模块1 }6 C/ i' N: P5 u" @9 G8 w
, g; l# n+ u; t9 R. V2 e* t1 |
systemctl stopfirawalld##关闭接受方防火墙
) F5 F# z3 g4 h& G; t% [* e- Y
M: s# u6 y F v- A, ? systemctl disable firewalld ##使防火墙开机不自启动 5 b% Y$ k3 M/ o- q% Z/ A
( w+ I) g$ |' a
(3)发送方和接收方均清空日志文件,使用命令: > /var/log/message 1 w( O( [) y, H
* |* a# o/ k& @ (4)测试:在日志的发送方运行:logger test ------> cat /var/log/message ;完成之后,会产生日志信息
5 O9 Q: H- f: c! a" Q/ ~
E4 [* e( [7 C2 a 在接受方运行:cat /var/log/message ; - b; I4 K9 L' h D4 z
* R# N/ F' Y7 y- L9 S6 K 【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步
, R, _/ Z( u6 x0 F' Z% R% ?- ?6 G/ `/ e+ R- o" J0 X# i! G; T; O
[root@client ~]# vim /etc/rsyslog.conf2 C& T' v, {& T7 \( B+ `. d5 l
/ L& e7 w1 h* v
! H! }& k$ V2 D4 O& U6 A6 g# \' {* i: r: `, _1 t2 M- f
& U: ~4 n" G* h9 V2 y, P' w. W% {. \7 ~: ?' W$ p& l+ O
8 `7 \4 ]6 T9 H. x7 S& y8 D 6 b% d/ \# m3 O/ v0 S
5 ^- C' U% K# U$ \4 I5 K5 b
2 Q) ]1 L2 o2 z1 I9 M' O
; W- N! I3 x# F8 a* g& n6 H
在服务端进行操作:
7 F! z* O1 e1 J# l
0 d' ?3 {0 Y" p: [! `. K8 I [root@server ~]# vim /etc/rsyslog.conf E* S1 a, d$ n) L s
: f% n' k/ L$ S, w( \" y$ |
: z& q: s3 M/ g1 R2 V+ X1 L# P7 {6 e! N( Q$ E
2 S9 g& b3 M5 N* y" O
" C! @. I- L, v1 T 注意:清空日志文件的先后顺序。
) S6 g; C9 \, ^ o5 _; H8 t1 W7 t6 o, `# [3 a0 m
4.日志采集格式的设定$ g2 N" ?, d+ I6 W5 @% J
, V q1 ?0 X7 j& W2 m' n9 X# y 【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示
6 |4 j; `: Z- ? n' R) ?9 ]% y& c+ v( i
【2】设定步骤:vim /etc/rsyslog.conf ------> $template LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"- k) L: e1 S. z' x
! M4 c# p2 j7 s9 [% p* H ------> 在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT 4 d7 v* P/ g; H
* O! D" s; ~' v' ?
注释: %timegenerated% ##显示日志时间
/ D9 s# S3 t$ ~5 w6 n9 e$ Y5 q6 ~, f
%FROMHOST-IP% ##显示主机IP
7 X: g& ~' f0 G( A: r/ o# V) B( o! z; k8 U( }. ]. }% f- H( O/ |
%syslogtag% ##日志记录目标8 R$ H1 T3 D. [
% b* u5 d: Z n5 H' y# J/ T) r %msg% ##日志内容
H' _9 z) o: H# d) h
" }( d# |% H1 N5 k" n. @( q \n ##换行
2 ?& e" d1 J" b8 Q2 m" y* C1 h; u; e$ M" [
【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息+ r, m% ]0 S- r8 Y* |4 M9 D+ P
3 r( R* j0 {& q7 g1 u
[root@server ~]# vim /etc/rsyslog.conf
6 {' D9 }3 O5 ^# c
9 w2 y. v6 y1 i) Q: A
7 O( A* o; N5 v( X7 C& Y, F
# l) a% [5 v# X# a" p* u- P 在server主机测试结果:5 ?7 E4 A5 t9 m1 ^+ m/ o* A
" O: [ J4 m2 m( I) N
1 y! I6 V6 s+ m2 h0 x+ [: q
# O5 R" f! _ f
# v, W: n8 o# H0 v% u R# B7 \+ U5.日志分析和采集工具
( o) Q+ j: f! |1 G& v# ^/ E+ Z: Y/ r( r( j
【1】命令:journalctl##直接执行,进行日志的查看# v0 {+ E- a6 v0 S9 i* ~
& N9 ` q w9 ]) q7 \ 【2】参数:-n 3 ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数 x% E' h. v7 w4 Y" q6 _( m0 U
( \8 j" E' p* Z9 v( H6 j- j --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志" m: a: p) B: [; @; I
}# b+ M1 ?% A3 ` 【3】如何使用--- systemd-journald ---保存系统日志信息
, B& Q. U& Z' x* r& O W5 T) C8 m0 ~' s* X
【4】示例: 使用-n命令来显示最近3条命令
- C& J6 q0 Y( a$ L" i& B# w' v4 i( ~6 ]& p! ?, R
+ b" ~3 M% Q: J, N; `4 ?
( \1 Q1 ~9 V/ t
1 H; V$ r; Y+ _$ G% W 使用-p命令显示错误日志:
% }5 u; N) \- Y' t( u) q) M3 Y, ^
; p5 G2 K. {& w! {( k. J3 \5 A
: F! w, Z! k) c1 L- d
# h' t. x2 p0 P) v 使用-o verbose查看详细参数:
. B" D2 a1 n& \% J- D1 m- Q- M' @8 k) P8 G N5 K* R$ P
% Q- q* p/ }8 [2 \+ b+ L
; Q6 O2 `- x& F5 i/ @
r# n2 q- x% ~% m 也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:
+ N+ q2 [( U/ |: J9 \
! a3 m, p% h8 \
9 d Q$ q) [, l D& E/ m& t0 j
+ B# j# ]; P: Y" S4 ^ 1 d% a$ S4 a9 ^8 S- ~3 `
使用命令:journalctl --since "2018-07-27 12:00" --until "2018-07-19 00:00" 时间段的日志: a/ |3 ]3 e- B F `
/ o) z6 Z- c% j2 H7 H7 t
. w( y% C# y2 ]0 `: o
* } @: Y1 h, O7 p$ r1 T5 a' W3 O , m6 b8 r" D7 _
+ L H. I7 m; F9 @
; n4 d2 N$ U- {0 g
补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息) 9 g7 {, ]1 y1 @7 {5 r
: R% o5 y& Y+ t8 O' L l
[root@client ~]# mkdir /var/log/journal
8 b& Z9 w0 R3 o* U: B4 C [root@client ~]# chgrp systemd-journal /var/log/journal/ / s- i& u# A* U) G
[root@client ~]# chmod g+s /var/log/journal/ ## 把该文件的使用均指定为组信息
: Y) \$ B3 t# |7 p1 P2 J) t [root@client ~]# ps aux | grep systemd-journal7 s& n" h! ?3 c5 ]
root 364 0.0 0.2 40864 2428 ? Ss 06:05 0:00 /usr/lib/systemd/systemd-journald
1 s- J' [; p: ~0 q/ H/ g' v3 C' n root 5298 0.0 0.0 112644 936 pts/0 R+ 12:08 0:00 grep --color=auto systemd-journal
& h( {/ t! j- ^$ d0 w [root@client ~]# killall -1 systemd-journald ##重新开启日志进程
Y% q( Q/ _9 ~3 w s* s! a- F$ M [root@client ~]# cd /var/log/journal/
5 d7 b* q( O1 Y [root@client journal]# ls. ]3 k+ ^2 E/ z M! D- m: F
946cb0e817ea4adb916183df8c4fc817 ##记录日志信息的id4 v+ w& l( \6 R' l( D( ~$ W
[root@client journal]# ll ##该日志会记录7-20 12:09以后的记录9 W5 v* |) ~7 U3 Q3 _5 x% F
total 0
. y2 E+ b+ I2 D! H drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
' D5 S' i$ v0 z, G! S3 ? [root@client journal]# date3 I- y$ G- Z0 Q5 f
Fri Jul 20 12:10:17 CST 2018
' m- l0 A7 d1 d9 V. K6.日志时间同步
8 l4 I7 E9 f$ m/ l* m: C2 D- V o3 z& h1 i
【1】作用:让多台虚拟机保持时间的一致。4 q+ @9 X3 l4 l, r) }+ t
: l/ |( k% [+ b7 i9 m5 I X 【2】服务名称:chronyd1 @4 q; A! R" P( Q( a
& m( b# S1 p. s% b; h& Y1 n0 o9 Q 【3】步骤:(在两台虚拟机下进行)# i$ V9 u7 D" x8 P
9 z; @" { |# T# ^1 | (1)在服务端配置:vim /etc/chronyd4 F# K; x7 S' p! z( s
5 [; k' j2 A6 q 22行 allow 172.25.254.0/24 ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间8 ^" }7 {% Z* x/ o0 O7 h
$ {2 h2 W. N: M6 ]' U 28行 local stratum 10 ##表示不同步其他时间
+ u4 O9 {+ ~ M! p T; u
o! t- x! e5 P systemctl restart chronyd
) n/ ^) q4 a# J# t/ j4 i( H% K2 n5 o& g4 Z. o# \7 k
(2)在客户端配置:vim /etc/chronyd- t/ Z- C7 r' N; X8 ]3 [0 k
: G- K+ z9 ?& N: ~% x 2-5行留下一行:server 172.25.254.97 ##表示要同步的主机为172.25.254.97
' x# Y: h5 U% b% A, T2 f
) {$ K4 f* J% w6 B systemctl restart chrond ## 重启服务0 n7 v" h* R, Z& _# {: u& A
8 h6 C' ` @" F$ C1 x6 \' |% ^
systemctl stop firewalld ## 关闭防火墙
# F" a" N2 V/ Q# l+ ]7 o3 }7 d* ^1 [
(3)测试:在客户端输入:chronyc sources -v! z5 u) r0 P9 q l" P' o7 c# [
; N" d* D' M0 ] K1 u8 ? 若结果为如下,则表示同步成功:: v5 @% h, x# W" ]% o+ D7 q
# ` n: g1 O$ I( S, r3 j; f
6 P9 N) o" v/ ~4 G. R( V( P5 B
: \5 X" p w# R8 g3 C# w$ j 注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;
& t1 |8 G" P9 i! |$ s7 F; B- b5 x9 k! ~+ R/ V$ u
文件配置之后要重启。 + v7 U$ [& \, Q. w
, D7 h4 q$ o7 t/ K) E/ {8 U7.时间设置timedatectl B4 t( C! l6 p* U
$ I. R. T: p2 A- L5 b: U, N 使用timedatetcl查看系统时间7 d& e& i$ \; E* ~) S$ Y
) H [% `& D' e
4 N- V1 F( W4 I* F6 ^: y7 j9 c4 b" ^/ E V. O& O. R' I
6 |5 o! n+ C$ o0 [ 命令timedatectl list-timezones列出所有时区
2 E! H; a( Y' ]. U) ~2 O0 i9 U/ G1 W+ {8 L& L
w) F) z; z! }' l4 v9 k" E6 u y& n: S: Y; b B
1 @# `, j; R5 V. b. v, E
使用--- timedatectl set-timezone 时区名---来修改时区
6 \0 {0 ^+ d; n! }& i _" h7 R( w
6 p" I$ D% W' D+ Q- n2 B: E h; j
6 g; O) z6 ]& S3 N% X/ n5 p
* v$ R/ g7 ^5 D 7 z: e- B" Z. R9 }
使用---timedatectl set-time "2018-7-20 12:00:00" ---对时间设定" d1 y7 S# t3 w! l
2 m1 z. P2 u E+ b! f5 B. U
* \3 o; i/ w% ?* v, h5 K& b% S
/ g5 d. I! _3 Q 1 j) U9 p w7 x7 j: Z
注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);
; b+ V1 d7 I5 c8 A% }% D* ?2 g" X! N5 P
---timedatectl set-local-rtc 0---表示使用UTC时间
# v$ e9 {1 g1 L7 U: i. d$ ^
6 j; ~1 t* [( y( z ---timedatectl set-local-rtc 1---表示使用LOCAL时间
# X- r' C, ?4 u1 s1 W' s8 |% i " q+ {' ?1 N @ I0 c/ S5 J3 k
$ g9 ^ K. m: w8 S+ }& {& j |
|