日志系統

日志管理

  • 發送日志命令,通知用戶:logger ?-p ?local7.info “this is a test log”

Local#.info 為自定義到文件或目錄,或用戶的級別

  • 日志遠程存儲需要啟動514端口,在centos7上需要取消注釋
  • Uptime可以查看開機時間

rsyslog特性:CentOS6和7

ü多線程

üUDP, TCP, SSL, TLS, RELP

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

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

ü自定義輸出格式

ELK:elasticsearch, logstash, kibana

ü非關系型分布式數據庫

ü基于apache軟件基金會jakarta項目組的項目lucene

üElasticsearch是個開源分布式搜索引擎

üLogstash對日志進行收集、分析,并將其存儲供以后使用

ükibana 可以提供的日志分析友好的 Web 界面

術語,參見man logger

üfacility:設施,從功能或程序上對日志進行歸類

auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, local0-local7, syslog

üPriority 優先級別,從低到高排序

debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

ü參看幫助: man 3 syslog

Rsyslog介紹

程序包:rsyslog

主程序:/usr/sbin/rsyslogd

vCentOS 6:service rsyslog {start|stop|restart|status}

vCentOS 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,轉發給其它命令處理

啟動網絡日志服務

通常的日志格式:

事件產生的日期時間 主機 進程(pid):事件內容

如: /var/log/messages,cron,secure等

遠程日志存儲,配置rsyslog成為日志服務器

在centos7上修改/etc/rsyslog.conf

#### MODULES ####

# Provides UDP syslog reception

$ModLoad imudp ???udp協議和端口

$UDPServerRun 514

# Provides TCP syslog reception

$ModLoad imtcp ???tcp協議和端口

$InputTCPServerRun 514

在本機上修改日志存放位置

*.info;mail.none;authpriv.none;cron.none ????@遠程主機IP/PATH(放到遠程主機的PATH位置)

@:代表UDP協議

@@:代表TCP協議

其它日志

v其它的日志文件

v/var/log/secure:系統安裝日志,文本格式,應周期性分析 (安全信息,用戶登錄,切換等信息)

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

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

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

v/var/log/dmesg:系統引導過程中的日志信息,文本格式

文本查看工具查看

專用命令dmesg查看

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

v/var/log/anaconda : anaconda的日志

日志管理journalctl(centos7可用)

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

vjournalctl用法

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

journalctl

v查看內核日志(不顯示應用日志)

journalctl -k

v查看系統本次啟動的日志

journalctl -b

journalctl -b -0

v 查看上一次啟動的日志(需更改設置)

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”

v顯示尾部的最新10行日志

journalctl -n

v 顯示尾部指定行數的日志

journalctl -n 20

v 實時滾動顯示最新日志

journalctl -f

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

0: emerg

1: alert

2: crit

3: err

4: warning

5: notice

6: info

7: debug

journalctl -p err -b

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

journalctl –no-pager

以 JSON 格式(單行)輸出

journalctl -b -u nginx.service -o json

v以 JSON 格式(多行)輸出,可讀性更好

journalctl -b -u nginx.serviceqq -o json-pretty

v顯示日志占據的硬盤空間

journalctl –disk-usage

v指定日志文件占據的最大空間

journalctl –vacuum-size=1G

v指定日志文件保存多久

journalctl –vacuum-time=1years

實驗:rsyslog將日志記錄于mysql中

用兩臺電腦實現,一臺安裝mysql數據庫,保存另一臺的日志信息

  • 在數據庫服務器上安裝mariadb ,啟動服務
  • 在客戶機上安裝rsyslog-mariadb包
  • 將文件遠程復制到數據庫服務器上:scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql ?192.168.24.130:
  • 在數據庫服務器上創建賬號,并授權

grant all on Syslog.* to syslog@’192.168.24.129′ indentified by ‘centos’;?授權賬號syslog在Syslog數據庫中可以對任意表執行任意操作

  • 在日志配置文件中添加模塊:$ModLoad ommysql

*.info;mail.none;authpriv.none;cron.none ???????????????

:ommysql(模塊名稱,和上文對應):192.168.24.130(數據庫庫IP),Syslog(數據庫名稱),syslog(數據庫用戶),centos(密碼)

通過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://HOST/loganalyzer

MySQL Native, Syslog Fields, Monitorware

(4) 安全加強

cd /var/www/html/loganalyzer

chmod 644 config.php

Logrotate日志存儲

vlogrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創建新的日志文件,稱為日志轉儲或滾動??梢愿鶕罩疚募拇笮?,也可以根據其天數來轉儲,這個過程一般通過 cron 程序來執行

v配置文件是 /etc/logrotate.conf

v主要參數如下

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

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

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

vnocopytruncate 備份日志文件但是不截斷

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

vnocreate 不建立新的日志文件

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

vnodelaycompress 覆蓋 delaycompress 選項,轉儲并壓縮

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

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

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

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

vnomail 轉儲時不發送日志文件

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

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

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

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

vdaily 指定轉儲周期為每天

vweekly 指定轉儲周期為每周

vmonthly 指定轉儲周期為每月

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

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

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

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

 

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

(0)
燕李鵬燕李鵬
上一篇 2018-01-31 21:07
下一篇 2018-02-01 20:24

相關推薦

  • Week6 Vim編輯器使用指南及練習

    vim編輯器 vim模式: 模式轉換.png 編輯–>輸入: i: 在當前光標所在字符的前面,轉為輸入模式; a: 在當前光標所在字符的后面,轉為輸入模式; o: 在當前光標所在行的下方,新建一行,并轉為輸入模式; I:在當前光標所在行的行首,轉換為輸入模式 A:在當前光標所在行的行尾,轉換為輸入模式 O:在當前光標所在行的上方,新建一行,…

    Linux干貨 2017-02-17
  • Nginx常用配置詳解

    Nginx常用配置詳解(一) 本文依照nginx官方站點文檔介紹常用的nginx各種常用配置,未經過校對,如有錯誤還望海涵。 Nginx配置通用語法 Nginx最基本的配置語法 配置項名 配置項值1 [配置項值2 ….]; 配置項名位于行首,配置項值與配置項名之間用空格隔開,多個配置項值之間也用空格隔開,每行配置結尾必須加上分號。 #配置項名 配置項值1…

    Linux干貨 2017-06-20
  • Python入門之閉包,匿名函數,過濾器,映射器,折疊

    在學習python函數的過程中,函數的高階應用包括閉包lambda函數,過濾器等都讓我頭痛不已.接下來我把課堂中聽到的筆記進行整理,再寫一遍,希望在提醒自己的同時也能幫助到別人. 首先,我們來看一下什么是閉包,閉包(closure)是函數式編程的重要的語法結構。函數式編程是一種編程范式 (而面向過程編程和面向對象編程也都是編程范式)。在面向過程編程中,我們見…

    Linux干貨 2015-12-19
  • httpd-2.2和httpd-2.4區別 、請求方法和響應狀態碼、虛擬主機、訪問控制、持久鏈接

    第十周
    The Apache HTTP Server is a powerful, efficient, and extensible web server.
    2018/2/4 16:33

    2018-02-04
  • N25第四周總結(lvm)

    lvm 詳解 大綱:    1、什么是lvm     2、為什么要使用lvm     3、如何實現lvm     4、lvm各項命令詳解   1、什么是lvm:        lmv (Logical Volume Manager…

    Linux干貨 2016-12-22
  • 計算機網絡基礎知識與Linux網絡配置

    本文主要內容是: 1.講述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 2、IP地址的分類有哪些?子網掩碼的表示形式及其作用 3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。 4、如何給網絡接口配置多個地址,有哪些方式? 5、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方…

    Linux干貨 2016-11-14
欧美性久久久久