日志管理

日志介紹 ?日志配置 ?日志管理 ?遠程日志 ?基于MYSQL的日志

系統日志服務:

sysklogd :CentOS 5之前版本

rsyslog特性:

CentOS6和7

多線程 ?UDP, TCP, SSL, TLS, RELP ?

MySQL, PGSQL, Oracle實現日志存儲 ?

強大的過濾器,可實現過濾記錄日志信息中任意部分 ?

自定義輸出格式

程序包:rsyslog ?主程序:/usr/sbin/rsyslogd ?

CentOS 6:service rsyslog {start|stop|restart|status} ?

CentOS 7:/usr/lib/systemd/system/rsyslog.service ?

配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf ?

庫文件: /lib64/rsyslog/*.so ?

配置文件格式:由三部分組成

MODULES:相關模塊配置

GLOBAL DIRECTIVES:全局配置

RULES:日志記錄相關的規則配置

RULES配置格式: facility.priority; facility.priority… target

facility: *: 所有的facility

facility1,facility2,facility3,…:指定的facility列表 ?

priority: *: 所有級別

none:沒有級別,即不記錄

PRIORITY:指定級別(含)以上的所有級別

=PRIORITY:僅記錄指定級別的日志信息 ?

target: 文件路徑:通常在/var/log/,文件路徑前的-表示異步寫入 用戶:將日志事件通知給指定的用戶,* 表示登錄的所有用戶

日志服務器:@host,把日志送往至指定的遠程服務器記錄

管道: | COMMAND,轉發給其它命令處理

其它日志
其它的日志文件 ?

/var/log/secure:系統安裝日志,文本格式,應周期性分析 ?

/var/log/btmp:當前系統上,用戶的失敗嘗試登錄相關的日志信息,二進制格 式,lastb命令進行查看

/var/log/wtmp:當前系統上,用戶正常登錄系統的相關日志信息,二進制格 式,last命令可以查看

/var/log/lastlog:每一個用戶最近一次的登錄信息,二進制格式,lastlog命令 可以查看 ?

/var/log/dmesg:系統引導過程中的日志信息,文本格式 文本查看工具查看 專用命令dmesg查看

/var/log/messages :系統中大部分的信息 ?

/var/log/anaconda : anaconda的日志

 

日志管理journalctl

Systemd 統一管理所有 Unit 的啟動日志。帶來的好處就是,可以只用 journalctl一個命令,查看所有日志(內核日志和應用日志)。日志的配置文件 /etc/systemd/journald.conf ?

journalctl用法 ?

查看所有日志(默認情況下 ,只保存本次啟動的日志) journalctl ?

查看內核日志(不顯示應用日志) journalctl -k ?

查看系統本次啟動的日志 journalctl -b journalctl -b -0 ?

查看上一次啟動的日志(需更改設置) journalctl -b -1

查看指定時間的日志

journalctl –since=”2017-10-30 18:10:30″

journalctl –since “20 min ago”

journalctl –since yesterday

journalctl –since “2017-01-10” –until “2017-01-11 03:00”

journalctl –since 09:00 –until “1 hour ago”

顯示尾部的最新10行日志 journalctl -n ?

顯示尾部指定行數的日志 journalctl -n 20 ?

實時滾動顯示最新日志 journalctl -f

查看指定服務的日志 journalctl /usr/lib/systemd/systemd ?

查看指定進程的日志 journalctl _PID=1 ?

查看某個路徑的腳本的日志 journalctl /usr/bin/bash ?

查看指定用戶的日志 journalctl _UID=33 –since today ?

查看某個 Unit 的日志 journalctl -u nginx.service

journalctl -u nginx.service –since today ?

實時滾動顯示某個 Unit 的最新日志 journalctl -u nginx.service -f ?

合并顯示多個 Unit 的日志 journalctl -u nginx.service -u php-fpm.service –since today

查看指定優先級(及其以上級別)的日志,共有8級

0: emerg

1: alert

2: crit

3: err

4: warning

5: notice

6: info

7: debug

journalctl -p err -b ?

日志默認分頁輸出,–no-pager 改為正常的標準輸出

journalctl –no-pager

顯示日志占據的硬盤空間 journalctl –disk-usage ?

指定日志文件占據的最大空間 journalctl –vacuum-size=1G ?

指定日志文件保存多久 journalctl –vacuum-time=1years

 

示例:rsyslog將日志記錄于MySQL中

(1) 準備MySQL Server ?

(2) 在mysql server上授權rsyslog能連接至當前服務器

GRANT ALL ON Syslog.* TO ‘USER’@’HOST’ IDENTIFIED BY ‘PASSWORD’; ?

(3) 在rsyslog服務器上安裝mysql模塊相關的程序包 yum install rsyslog-mysql ?

(4) 為rsyslog創建數據庫及表; mysql -uUSERNAME -hHOST -pPASSWORD < /usr/share/doc/rsyslog7.4.7/mysql-createDB.sql ?

(5) 配置rsyslog將日志保存到mysql中

#### MODULES ####

$ModLoad ommysql

#### RULES ####

facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD

 

通過loganalyzer展示數據庫中的日志 (圖形化工具)

(1) 在rsyslog服務器上準備amp或nmp組合

yum install httpd php php-mysql php-gd ?

(2) 安裝LogAnalyzer

tar xf loganalyzer-4.1.5.tar.gz

cp -a loganalyzer-4.1.5/src /var/www/html/loganalyzer

cd /var/www/html/loganalyzer

touch config.php

chmod 666 config.php

(3) 配置loganalyzer

systemctl start httpd.service

http://HOSTIP地址/loganalyzer

MySQL Native, Syslog Fields, Monitorware ?

(4) 安全加強

cd /var/www/html/loganalyzer

chmod 644 config.php

 

Logrotate日志存儲

logrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創建新 的日志文件,稱為日志轉儲或滾動。可以根據日志文件的大小,也可以根據其 天數來轉儲,這個過程一般通過 cron 程序來執行 ?

配置文件是 /etc/logrotate.conf

主要參數如下 ?

compress 通過gzip 壓縮轉儲以后的日志 ?

nocompress 不需要壓縮時,用這個參數 ?

copytruncate 用于還在打開中的日志文件,把當前日志備份并截斷 ?

nocopytruncate 備份日志文件但是不截斷 ?

create mode owner group 轉儲文件,使用指定的文件模式創建新的日志文件

nocreate 不建立新的日志文件 ?

delaycompress 和 compress 一起使用時,轉儲的日志文件到下一次轉儲時 才壓縮 ?

nodelaycompress 覆蓋 delaycompress 選項,轉儲并壓縮 ?

errors address 專儲時的錯誤信息發送到指定的Email 地址 ?

ifempty 即使是空文件也轉儲,是缺省選項。 ?

notifempty 如果是空文件的話,不轉儲 ?

mail address 把轉儲的日志文件發送到指定的E-mail 地址 ?

nomail 轉儲時不發送日志文件 ?

olddir directory 轉儲后的日志文件放入指定的目錄,必須和當前日志文件在 同一個文件系統 ?

noolddir 轉儲后的日志文件和當前日志文件放在同一個目錄下

prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵 字必須單獨成行

postrotate/endscript 在轉儲以后需要執行的命令可以放入這個對,這兩個關 鍵字必須單獨成行 ?

daily 指定轉儲周期為每天 ?

weekly 指定轉儲周期為每周 ?

monthly 指定轉儲周期為每月 ?

size 大小 指定日志超過多大時,就執行日志轉儲 ?

rotate count 指定日志文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個 備份 ?

Missingok 如果日志不存在,提示錯誤 ?

Nomissingok如果日志不存在,繼續下一次日志,不提示錯誤

視頻在37天

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101661

(0)
無所謂無所謂
上一篇 2018-06-25
下一篇 2018-06-25

相關推薦

  • Mysql之備份及還原相關實驗

    本節索引 實驗一:冷備份數據庫并還原 實驗二:結合LVM邏輯卷實現幾乎熱備 實驗三:數據庫數據文件損壞后,利用mysqldump還原至最新狀態 實驗四:誤刪除表后,利用mysqldump還原至最新狀態 實驗五:Xtrabackup完全備份及還原 實驗六:Xtrabackup完全,增量備份及還原 實驗七:Xtrabackup單表導出和導入   實驗準…

    2018-06-14
  • linux學習-2周

    文本處理工具、cat/rev/more/less/head/tail/cut/paste/wc/sort/uniq/diff/grep

    2018-04-08
  • 進程和計劃任務

    進程概念: 進程與程序的區別:進程是一個動態的概念,具有生命期,而程序是靜態的表現為一個文件,一個程序可對應多個進程 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process: 運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID(Process ID,PID)號碼被用來標記各個進程 UID、GID、和SELinux語…

    2018-05-10
  • Linux 第一週作業 (6.18–6.24)

    計算機的組成及其功能
    羅列Linux的發行版
    Linux的哲學思想
    一些簡單命令
    如何在Linux系統上獲取命令的幫助信息
    Linux發行版的基礎目錄名稱命名法則及功用規定

    Linux筆記 2018-06-23
  • 腳本練習

    1、每周的工作日1:30,將/etc備份至/backup目錄中,保存的文件名稱格式為“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的時間tar Jcf /etc/ /data/ectbak-`date -d “-1 day” +%F-%H`.tar.xz30 1 * * 1-5 /root/Myscrip…

    Linux筆記 2018-05-08
  • sed練習題答案

    答案不唯一有更好答案請留言

    2018-04-13
欧美性久久久久