日志系統

日志管理

  • 發送日志命令,通知用戶: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

相關推薦

  • KeepAlived高可用集群詳解及拓撲實驗搭建配置

    Linux Cluster:KeepAlive 1.集群類型:LB(負載均衡集群),HA(高可用集群),HP(高性能集群)     LB:均衡負載的實現LVS     HA:高可用的實現KeepAlived 2.RS:健康狀態檢測方式: (1)網絡層:icmp ping (2)傳…

    Linux干貨 2016-11-01
  • N22-第十一周作業

    第十一周作業 1、詳細描述一次加密通訊的過程,結合圖示最佳 (1)為了做到數據的安全,應該同時滿足 保密性 完整性 可用性 (2)假設A,B通信,A是客戶機,B是服務器 a、客戶端向服務器端發送自己支持的加密方式,并且向服務器端請求其CA頒發給的證書 b、服務器選擇共同支持的加密方式并發送自己的證書; c、客戶端收到其證書,并驗證證書,證書必須同時滿足以下條…

    Linux干貨 2016-12-06
  • 淺談用戶名和權限

        小編已經寫了兩篇博客了,卻忘了自我介紹,咳咳咳(隆zhuang重qiang介zuo紹shi)一下:翠衣薄紗如花艷,柳眉鳳眼俏佳人說的就是我!不扯了其實,小編擁有一個四口之家,那么小編今天就借家獻佛給你們講講用戶組和權限。     所屬主(me):一般為文件的創建者,誰創建了該文件,就天然的成…

    Linux干貨 2017-07-30
  • linux基礎學習之SElinux

    1、SElinux簡介 SELinux: Secure Enhanced Linux,是美國國家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)開發的Linux的一個強制訪問控制的安全模塊。2000年以GNU GPL發布,Linux內核2.6版本后集成在內核中 2、…

    Linux干貨 2016-09-15
  • 網絡服務基礎理論

    最近學習了有關網絡管理的有關知識,所以給也在學習這些知識的童鞋分享一下我的一些經驗。 聽了這幾天課,總結了幾個前提。 有關網絡的通信均是基于數據傳輸的,且數據均是二進制格式的流式數據。 在網絡中需要把大包分成小包, 每傳一個包都需要有三個地址,由內向外為端口號、IP地址、MAC地址。端口號確定應用,IP確定網段,MAC確定廣播域中的某個網卡。 OSI模型 &…

    Linux干貨 2017-09-01
欧美性久久久久