日志管理

日志管理學習筆記

日志管理

日志:

歷史事件:時間,地點,人物,事件

日志級別:事件的關鍵性程度,loglevel

系統日志服務:

Sysklogd:centos5之前版本

Klogd:linux kernel記錄內核日志

時間記錄格式:

日期時間 ??主機 ?進程[pid] ??事件內容

C/S 架構:通過TCP或udp協議的服務完成日志記錄傳送,將分布在不同主機的日志實現集中管理

Rsyslog特性:centos6和7

多線程

Udp,tcp,ssl,tlc,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,user,uucp,local0-7,syslog

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

Debug,info,notice,warn,err,crit,alert,emerg

程序包:rsyslog

主程序:/usr/sbin/rsyslogd

Centos6 :service rsyslog{start|stop|restart|status}

Centos7 :/usr/lib/systemd/system/rsyslog.service

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

庫文件:/lib/64/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/messages,cron,secure

配置rsyslog成為日志服務器

###MODULES####

#Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

#Provides TCP syslog reception

$ModLoad imudp

$TCPServerRun 514

其它的日志文件

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

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

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

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

文本查看工具查看

專用命令dmesg查看

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

/var/log/anaconda:anaconda的日志

 

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

Journalctl用法

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

Journalctl

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

Journalctl -k

查看系統本次啟動的日志

Journalctl -b

Journalctl -b -0

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

Journalctl -b -1

查看指定服務的日志

Journalctl /usr/lib/systemd/systemd

查看指定進程的日志

Journalctl _PID=1

查看某個指定用戶的日志

Journalctl _UID=33 –since today

查看某個路徑的腳本的日志

Journalctl /usr/bin/bash

查看某個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

以JSON格式(單行)輸出

Journalctl -b -u nginx.service -o json

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

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

顯示日志占據的硬盤空間

Journalctl –disk-usage

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

Journalctl –vacuum-size=1G

指定日志文件保存多久

Journalctl ?–vacuum-time=1yesrs

  • 準備MYSQL Server
  • 在mysql server上授權rsyslog能連接至當前服務器

Mysql > GRANT ALL ON Syslog.* TO ‘USER’@’HOST’

IDENTIFIED BY ‘PASSWLRD’;

  • 在rsyslog服務器上安裝mysql模塊相關的程序包

Yum install rsyslog-mysql

  • 為rsyslog創建數據庫及表

Mysql -uUSERNAME -hHOST -pPASSWORD<

/usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

  • 配置rsyslog將日志保存到mysql中

###MODULES####

$ModLoad ommysql

###RULES####

Facility.priority ??:ommysql:DBHOST,DBNAME,DBUSER,PASSWORD

 

 

 

示例:通過loganalyzer 展示數據庫中的日志

  • 在rsyslog服務器上準備amp或nmp組合

Yum install httpd php php-mysql hph-gd

(2)安裝loganalyer

Tar xf loganalyzer-4.1.5.tar.gz

Cp -a loganalyzer-4.1.5/src

/var/www/html/loganalyzer

Touch config.php

Chmod 666 config.php

  • 配置loganalyzer

Systemctl start httpd

http://HOST/loganalyzer

  • 安全加強

Cd /var/www/html/loganalyzer

Chmod 644 config.php

Logrotate日志存儲

Logrotate程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創建新的文件,稱為日志轉儲或滾動??梢愿鶕罩疚募拇笮。部梢愿鶕涮鞌祦磙D儲,這時過程一般通過cron程序來執行

配置文件時/etc/logrotate.conf

主要參數如下

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

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

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

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

Create mode ownergroup 轉儲文件,使用指定的文件模式創建新的日志文件

Nocreate 不建立新的日志文件

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

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

Error addres 轉儲時的錯誤信息發送到指定的Email地址

Ifempty 即使是空文件也轉儲,是缺省項

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

Mail address 把轉儲的日志文件發送到指定的Email地址

Nomail轉儲時不發送日志文件

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

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

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

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

Daily指定轉儲周期為每天

Weekly指定轉儲周期為每周

Monthly指定轉儲周期為每月

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

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

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

 

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

(0)
sunchunjiangsunchunjiang
上一篇 2018-02-07
下一篇 2018-02-08

相關推薦

  • LVM(重要)

    LVM   LVM(Logical Volume Manger),是一種磁盤分區管理機制,可以靈活的調整分區的大小。它是將多個硬盤組成卷組的形式實現的。說白了就是通過軟件來實現對分區靈活管理。   LVM是將多塊硬盤組成PV,再由PV組成VG,VG再組成lv,然后在lv上創建文件系統。   物理存儲介:指的就是硬盤等,最基本的存儲單元。   PV(physi…

    Linux干貨 2016-08-30
  • Linux學習第四周

    一.Linux文件查找  本章介紹的有locate和find的命令的使用以及壓縮解壓縮工具 1.文件查找,跟以前我們所學的grep fgrep egrep 類似,grep屬于文本過濾,搜索工具 然而文件查找就find和locate 他們有一點區別: find :實時查找進行文件匹配,由于進行路徑匹配所以查找速度略慢,     &…

    2017-06-11
  • 文件的元數據

    2018-03-11

    2018-03-11
  • 基于httpd服務實驗構建網站域名DNS解析

    具體組成簡圖 實驗前期準備 httpd的安裝 后期補充 做httpd 服務器的IP 為: 172.18.148.62 安裝DNS域名解析包 bind yum install bind 修改DNS 的基礎配置文件 /etc/named.conf   關閉所有的虛擬機的 防火墻 iptables -F CENTOS7 的系統關閉selinux sete…

    2017-04-16
  • 網絡配置管理:ifcfg、iproute2和ss等相關命令介紹(不完整,需要后期完善)

    網絡配置管理:ifcfg、iproute2和ss等相關命令介紹 ifcfg家族: ifconfig [interface] ifconfig interface [aftype] options | address …   -a :查看所有 接口信息 add<地址>:設置網絡設備IPv6的ip地址 del<地址>…

    Linux干貨 2017-01-19
  • 如何安裝CentOS 6.9

    1、打開VMware,點擊“創建新的虛擬機”   2、剛開始用的話,一般就選擇推薦的典型類型來安裝,所以直接點擊“下一步”   3、此處選擇稍后安裝操作系統,這里我們先進行配置,點擊“下一步”   4、因為我需要用里面的linux系統,所以選擇客戶機操作系統為Linux,選擇版本為CentOS 64位,單擊“下一步”。 &nbs…

    2017-07-11
欧美性久久久久