日志管理rsyslog工具

rsyslog特性

  • 存儲日志信息于MySQL,PostgreSQL菌瘫,MongoDB,ElasticSearch等數(shù)據(jù)管理系統(tǒng)
  • 通過 RELP + TCP 實現(xiàn)數(shù)據(jù)的可靠傳輸(基于此結合豐富的過濾條件可以建立一種 可靠的數(shù)據(jù)傳輸通道供其他應用來使用)
  • 精細的輸出格式控制以及對消息的強大 過濾能力
  • 高精度時間戳玄柠;隊列操作(內(nèi)存突梦,磁盤以及混合模式等); 支持數(shù)據(jù)的加密和壓縮傳輸?shù)?/li>

程序環(huán)境

主程序:rsyslogd
主配置文件:/etc/rsyslog.conf羽利,/etc/rsyslog.d/*.conf
服務腳本(centos6):/etc/rc.d/init.d/rsyslog
Unit File(centos7):/usr/lib/systemd/system/rsyslog.service

配置文件

#rsyslog v3 config file

# if you experience problems, check
# http://www.rsyslog.com/troubleshoot for assistance

#### MODULES ####

$ModLoad imuxsock.so    # provides support for local system logging (e.g. via logger command)
$ModLoad imklog.so      # provides kernel logging support (previously done by rklogd)
#$ModLoad immark.so     # provides --MARK-- message capability

# Provides UDP syslog reception
#$ModLoad imudp.so
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp.so  
#$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required, 
# not useful and an extreme performance hit
#$ActionFileEnableSync on


#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

配置文件查看less /etc/rsyslog.conf宫患。Rsyslog的配置主要有以下模塊:

  • modules,模塊这弧,配置加載的模塊娃闲,如:ModLoad imudp.so配置加載UDP傳輸模塊
  • global directives,全局配置匾浪,配置ryslog守護進程的全局屬性皇帮,比如主信息隊列大小(MainMessageQueueSize)
  • rules蛋辈,規(guī)則(選擇器+動作)属拾,每個規(guī)則行由兩部分組成,selector部分和action部分冷溶,這兩部分由一個或多個空格或tab分隔渐白,selector部分指定源和日志等級,action部分指定對應的操作
常用的modules
  • imudp逞频,傳統(tǒng)方式的UDP傳輸纯衍,有損耗
  • imtcp,基于TCP明文的傳輸苗胀,只在特定情況下丟失信息襟诸,并被廣泛使用
  • imrelp瓦堵,RELP傳輸,不會丟失信息歌亲,但只在rsyslogd 3.15.0及以上版本中可用
規(guī)則(rules)
規(guī)則的選擇器(selectors)

selector也由兩部分組成菇用,設施和優(yōu)先級,由點號.分隔陷揪。多個選擇器用;分隔刨疼,如:*.info;mail.none

facility:設施,從功能或程序上對日志收集進行分類

內(nèi)建的日志設施有:
auth(security), authpriv:認證授權和安全相關的消息
kern:來自Linux內(nèi)核的消息
mail:郵件服務系統(tǒng)的各種組件
mark:防火墻標記
cron:周期任務計劃相關的信息

daemon:守護進程產(chǎn)生的信息
news:網(wǎng)絡消息子系統(tǒng)
lpr:打印相關的日志信息
user:用戶進程相關的信息
local0 to local7:保留鹅龄,本地使用

priority:優(yōu)先級揩慕,日志級別(由低到高)

debug:包含詳細的開發(fā)情報的信息,通常只在調(diào)試一個程序時使用
info:情報信息扮休,正常的系統(tǒng)消息迎卤,比如騷擾報告,帶寬數(shù)據(jù)等玷坠,不需要處理
notice: 不是錯誤情況蜗搔,也不需要立即處理
warning: 警告信息,不是錯誤八堡,比如系統(tǒng)磁盤使用了85%等
err:錯誤樟凄,不是非常緊急,在一定時間內(nèi)修復即可
crit:重要情況兄渺,如硬盤錯誤缝龄,備用連接丟失
alert:應該被立即改正的問題,如系統(tǒng)數(shù)據(jù)庫被破壞挂谍,ISP連接丟失
emerg:緊急情況叔壤,需要立即通知技術人員

指定級別 功能
* 所有級別
none 沒有級別
priority 此級別及高于此級別的所有級別
=priority 僅此級別
動作 (action)

action是規(guī)則描述的一部分,位于選擇器的后面口叙,規(guī)則用于處理消息炼绘。總的來說妄田,消息內(nèi)容被寫到一種日志文件上俺亮,但也可以執(zhí)行其他動作,比如寫到數(shù)據(jù)庫表中或轉發(fā)到其他主機疟呐。

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

寫到mysql數(shù)據(jù)庫中

# modules, 要將日志寫到mysql中需要加載ommysql模塊
$ModLoad ommysql 
# rule, send to mysql
#*.*       :ommysql:database-server,database-name,database-userid,database-password
*.*       :ommysql:127.0.0.1,Syslog,syslogwriter,topsecret

mysql和rsyslog服務搭建

安裝rsyslog-mysql
[root@promote ~]# yum install rsyslog-mysql
··· ···
Complete!
[root@promote ~]# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
啟動MySQL服務器
[root@promote ~]# vim /etc/my.cnf.d/server.cnf
添加如下:
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
[root@promote ~]# systemctl start mariadb.service
[root@promote ~]# mysql -uroot -hlocalhost -pcentos < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| Syslog             |
+--------------------+
1 rows in set (0.138 sec)

MariaDB [(none)]> use Syslog;
Database changed
MariaDB [Syslog]> SHOW TABLES;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.000 sec)

MariaDB [Syslog]> DESC SystemEvents;
+--------------------+------------------+------+-----+---------+----------------+
| Field              | Type             | Null | Key | Default | Extra          |
+--------------------+------------------+------+-----+---------+----------------+
| ID                 | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| CustomerID         | bigint(20)       | YES  |     | NULL    |                |
| ReceivedAt         | datetime         | YES  |     | NULL    |                |
| DeviceReportedTime | datetime         | YES  |     | NULL    |                |
| Facility           | smallint(6)      | YES  |     | NULL    |                |
| Priority           | smallint(6)      | YES  |     | NULL    |                |
| FromHost           | varchar(60)      | YES  |     | NULL    |                |
| Message            | text             | YES  |     | NULL    |                |
| NTSeverity         | int(11)          | YES  |     | NULL    |                |
| Importance         | int(11)          | YES  |     | NULL    |                |
| EventSource        | varchar(60)      | YES  |     | NULL    |                |
| EventUser          | varchar(60)      | YES  |     | NULL    |                |
| EventCategory      | int(11)          | YES  |     | NULL    |                |
| EventID            | int(11)          | YES  |     | NULL    |                |
| EventBinaryData    | text             | YES  |     | NULL    |                |
| MaxAvailable       | int(11)          | YES  |     | NULL    |                |
| CurrUsage          | int(11)          | YES  |     | NULL    |                |
| MinUsage           | int(11)          | YES  |     | NULL    |                |
| MaxUsage           | int(11)          | YES  |     | NULL    |                |
| InfoUnitID         | int(11)          | YES  |     | NULL    |                |
| SysLogTag          | varchar(60)      | YES  |     | NULL    |                |
| EventLogType       | varchar(60)      | YES  |     | NULL    |                |
| GenericFileName    | varchar(60)      | YES  |     | NULL    |                |
| SystemID           | int(11)          | YES  |     | NULL    |                |
+--------------------+------------------+------+-----+---------+----------------+
24 rows in set (0.063 sec)

MariaDB [Syslog]> DESC SystemEventsProperties;
+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| ID            | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| SystemEventID | int(11)          | YES  |     | NULL    |                |
| ParamName     | varchar(255)     | YES  |     | NULL    |                |
| ParamValue    | text             | YES  |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+
4 rows in set (0.001 sec)

MariaDB [Syslog]> GRANT ALL ON Syslog.* TO 'rsyslog'@'192.168.0.%' IDENTIFIED BY 'rsyspass';
Query OK, 0 rows affected (0.102 sec)

MariaDB [Syslog]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.044 sec)
編輯rsyslog.conf
#### MODULES ####
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

$ModLoad ommysql    //添加此行

#### RULES ####
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
#*.info;mail.none;authpriv.none;cron.none                /var/log/messages
*.info;mail.none;authpriv.none;cron.none                :ommysql:192.168.0.104,Syslog,rsyslog,rsyspass     //添加此行

[root@promote ~]# systemctl restart rsyslog.service
搭建loganalyzer

在rsyslog服務器上搭建loganalyzer:

[root@rsyslog ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz
[root@rsyslog syslog]# yum install -y httpd php php-mysql php-gd
[root@rsyslog ~]# tar xf loganalyzer-4.1.6.tar.gz 
[root@rsyslog ~]# cp -r loganalyzer-4.1.6/src/* /var/www/html/syslog
[root@rsyslog ~]# cp -r loganalyzer-4.1.6/contrib/*.sh /var/www/html/syslog/
[root@rsyslog ~]# cd /var/www/html/syslog/
[root@rsyslog syslog]# chmod +x *.sh
[root@rsyslog syslog]# ./configure.sh 
[root@rsyslog syslog]# chmod 666 config.php
[root@rsyslog syslog]# systemctl start httpd.service
[root@promote syslog]# systemctl stop firewalld
[root@promote syslog]# setenforce 0
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脚曾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子萨醒,更是在濱河造成了極大的恐慌斟珊,老刑警劉巖苇倡,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件富纸,死亡現(xiàn)場離奇詭異囤踩,居然都是意外死亡,警方通過查閱死者的電腦和手機晓褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門堵漱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涣仿,你說我怎么就攤上這事勤庐。” “怎么了好港?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵愉镰,是天一觀的道長。 經(jīng)常有香客問我钧汹,道長丈探,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任拔莱,我火速辦了婚禮碗降,結果婚禮上,老公的妹妹穿的比我還像新娘塘秦。我一直安慰自己讼渊,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布尊剔。 她就那樣靜靜地躺著爪幻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪须误。 梳的紋絲不亂的頭發(fā)上笔咽,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音霹期,去河邊找鬼叶组。 笑死,一個胖子當著我的面吹牛历造,可吹牛的內(nèi)容都是我干的甩十。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吭产,長吁一口氣:“原來是場噩夢啊……” “哼侣监!你這毒婦竟也來了?” 一聲冷哼從身側響起臣淤,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤橄霉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邑蒋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姓蜂,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡按厘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钱慢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逮京。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖束莫,靈堂內(nèi)的尸體忽然破棺而出懒棉,到底是詐尸還是另有隱情,我是刑警寧澤览绿,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布策严,位于F島的核電站,受9級特大地震影響饿敲,放射性物質發(fā)生泄漏享钞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一诀蓉、第九天 我趴在偏房一處隱蔽的房頂上張望栗竖。 院中可真熱鬧,春花似錦渠啤、人聲如沸狐肢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽份名。三九已至,卻和暖如春妓美,著一層夾襖步出監(jiān)牢的瞬間军洼,已是汗流浹背嚼黔。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铆帽。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓丽猬,卻偏偏與公主長得像歌粥,于是被迫代替她去往敵國和親攀操。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355