CentOS6系統Rsyslog+LogAnalyzer+MySQL部署Log Service器

來源:互聯網
上載者:User


一、環境配置介紹

1、實驗環境介紹

Rsyslog Server OS:CentOS release 6.5 (Final) X86_64
Rsyslog Seravr IP:211.149.204.229
Rsyslog Client OS:CentOS release 6.5 (Final) X86_64
Rsyslog Client IP:63.223.64.110
Rsyslog Version:rsyslog-5.8.10-8.el6.x86_64
LNMP Version:nginx 1.6 +mysql 5.1.72 + php 5.3.28

2、依賴包安裝

[root@ebs-28723 src]# yum install gcc gcc-c++ make rsyslog rsyslog-mysql unzip vim -y
3、配置提示
3.1、因為PHP環境是預設安裝好了的,本文章不描述如果配置和安裝PHP環境,可以配置居LNMP或者是LAMP,添加網站的過程也不描述
3.2、PHP環境要求:
php-Mysql:php串連mysql的擴充
php-gd:php畫圖的擴充
4、實驗目的
方便集中管理伺服器日誌

二、rsyslog介紹

1、基本介紹

rsyslog是一個syslogd的多線程增強版,Fedora和ubuntu,rhel預設的日誌系統都是rsyslog。rsyslog負責記錄日誌,logrotate負責備份和刪除舊日誌,以及更新記錄檔
2、優點
2.1、日誌統一,集中式管理
2.2、日誌即時傳送到一個更加安全的遠端伺服器上,真正記錄使用者行為,使日誌的2次更改可能性大大降低,從而能夠對日誌進行真實回放,便於問題追蹤。
3、rsyslog的新功能:
rsyslog是一個加強版的syslog,具有各種各樣的親功能,典型有:
3.1、直接將日誌寫入到資料庫。
3.2、日誌隊列(記憶體隊列和磁碟隊列)
3.3、靈活的模版機制,可以得到多種輸出格式。
3.4、外掛程式式結構,多種多樣的輸入,輸出模組
3.5、可以把日誌存放在Mysql,PostgreSQL,Oracle等資料庫中
4、rsyslog的軟體包介紹
4.1、安裝軟體

[root@ebs-28723 ~]# rpm -qa | grep syslog
rsyslog-5.8.10-8.el6.x86_64 //rsyslog軟體包
rsyslog-mysql-5.8.10-8.el6.x86_64 //rsyslog-mysql軟體安裝包
4.2、軟體檔案介紹

[root@ebs-28723 ~]# rpm -ql rsyslog
/etc/logrotate.d/syslog
/etc/pki/rsyslog
/etc/rc.d/init.d/rsyslog
/etc/rsyslog.conf //rsyslog的設定檔
/etc/rsyslog.d
/etc/sysconfig/rsyslog
/lib64/rsyslog
/lib64/rsyslog/imfile.so //rsyslog的模組,i開頭的是輸入模組
/lib64/rsyslog/imklog.so
/lib64/rsyslog/immark.so
/lib64/rsyslog/impstats.so
/lib64/rsyslog/imptcp.so
/lib64/rsyslog/imtcp.so
/lib64/rsyslog/imudp.so
/lib64/rsyslog/imuxsock.so
/lib64/rsyslog/lmnet.so
/lib64/rsyslog/lmnetstrms.so
/lib64/rsyslog/lmnsd_ptcp.so
/lib64/rsyslog/lmregexp.so
/lib64/rsyslog/lmstrmsrv.so
/lib64/rsyslog/lmtcpclt.so
/lib64/rsyslog/lmtcpsrv.so
/lib64/rsyslog/lmzlibw.so
/lib64/rsyslog/ommail.so
/lib64/rsyslog/omprog.so
/lib64/rsyslog/omruleset.so
/lib64/rsyslog/omtesting.so
/lib64/rsyslog/omuxsock.so
/lib64/rsyslog/pmlastmsg.so
4.3、rsyslog設定檔介紹(/etc/rsyslog.conf)

#### MODULES ####
$ModLoad imuxsock # imuxsock是模組名,支援本地系統日誌的模組
$ModLoad imklog # imklog是模組名,支援核心日誌的模組
#$ModLoad immark # immark是模組名,支援日誌標記
# Provides UDP syslog reception
#$ModLoad imudp # imdup是模組名,支援udp協議
#$UDPServerRun 514 # 允許514連接埠接收使用UDP和TCP協議轉寄過來的日誌
# Provides TCP syslog reception
#$ModLoad imtcp # imtcp是模組名,支援tcp協議
#$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
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf #載入rsyslog.d檔案中所有以conf結尾的檔案
#### 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
#記錄所有日誌類型的info層級以及大於info層級的資訊到/var/log/mess,但是mail郵件資訊,authpriv驗證方面的資訊和cron時間任務相關的資訊除外
# The authpriv file has restricted access.
authpriv.* /var/log/secure
#authpriv驗證相關的所有資訊存放在/var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
#郵件的所有資訊存放在/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
#計劃任務有關的資訊存放在/var/log/cron
# Everybody gets emergency messages
*.emerg *
#記錄大於等於emerg層級資訊,以wall方式發送給每個登入到系統的人
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
#記錄uucp,news,crit等存放在/var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
#本地服務的啟動的所有日誌存入在/var/log/boot.log中
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
4.4、rsyslog.conf中日誌規則的定義的格式
#rsyslog.conf中日誌規則的定義格式

facitlity.priority Target
 #facility: 日誌裝置(可以理解為日誌類型)
 ======================================================
 auth # pam產生日誌,認證日誌
 authpriv # ssh,ftp等登陸資訊的驗證資訊,認證授權認證
 cron # 時間任務相關
 kern # 核心
 lpr # 列印
 mail # 郵件
 mark(syslog) # rsyslog服務內部的資訊,時間標識
 news # 新聞群組
 user # 使用者程式產生的相關資訊
 uucp # unix to unix copy,unix主機之間相關通訊
 local 1~7 # 自訂的日誌裝置
 ======================================================
 #priority: 記錄層級
 ======================================================
 debug # 有調試資訊的 ,日誌資訊最多
 info # 一般資訊的日誌,最常用
 notice # 最具有重要性的普通條件的資訊
 warning,warn # 警告層級
 err,error # 錯誤層級,阻止某個功能或模組不能正常工作的資訊
 crit #嚴重層級,阻止某個系統或整個軟體不能正常工作的資訊
 alert #需要立即修改的資訊
 emerg,panic #核心崩潰等嚴重資訊
#從上而下,層級從低到高,記錄的資訊越來越少,如果設定的日誌內層級為err,則日誌不會記錄比err層級低的日誌

5、logroate日誌滾動的介紹

5.1、基本介紹
所有的記錄檔會隨著時間的推移和訪問次數的增加而迅速增長,因此必須對記錄檔進行定期清理以免造成減租空間的不必要的浪費,同時也加快了管理員查看日誌所用的時間。因而logrotate就有存在的必要了,redhat系統中已經預設安裝了logrotate且利用logrotate設定了相關對rsyslog日誌迅速增長的設定。
logrotate的執行由crond服務實現。在/etc/cron.daily目錄中,有個檔案logrotate,它實際上是一個shell指令碼,使用者啟動logroate
5.2、安裝包介紹

[root@ebs-28723 ~]# rpm -qa logrotate
logrotate-3.7.8-17.el6.x86_64 #logrotate軟體安裝的版本
[root@ebs-28723 ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf #logrotate的設定檔
/etc/logrotate.d #logrotate的子目錄
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status

5.3 logrotate設定檔(/etc/logrotate.conf和/etc/logrotate.d/syslog)

#/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly # 每周清理一次記錄檔
# keep 4 weeks worth of backlogs
rotate 4 # 保留四個輪換日誌
# create new (empty) log files after rotating old ones
create # 清理舊日誌的同時,建立新的空白日誌
# use date as a suffix of the rotated file
dateext # 使用日期為尾碼的復原檔案
# uncomment this if you want your log files compressed
#compress # 壓縮
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d #包含了/etc/logrotate.d/目錄下的設定檔
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp { # 對/var/log/wtmp這個記錄檔按照下面的設定日誌復原
 monthly # 每月輪換一次
 create 0664 root utmp # 設定wtmp這個記錄檔的許可權,屬主,屬組
 minsize 1M # 記錄檔必須大於1M才會去輪換(復原)
 rotate 1 # 儲存一個輪換日誌
}
/var/log/btmp {
 missingok #如果檔案丟失不報錯
 monthly
 create 0600 root utmp
 rotate 1
}
# system-specific logs may be also be configured here.
#/etc/logrotate.d/syslog
/var/log/cron #這些檔案是rsyslog.conf檔案中全域配置定義指定的Target的路徑
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
 sharedscripts
 postrotate #輪換之後重啟rsyslog服務
 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
 endscript
}

三、rsyslog配置

1、Rsyslog Server配置
1.1、rsyslog軟體安裝

[root@ebs-28723 ~]# yum install rsyslog-mysql -y
#將記錄傳送到MySQL資料庫的一個模組,這裡必須安裝
1.2、Mysql配置
#匯入資料庫

[root@ebs-28723 ~]# mysql -uroot -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
#建立使用者

mysql> grant all privileges on syslog.* to syslog@localhost identified by 'syslog_123';
mysql> grant all privileges on syslog.* to syslog@'%' identified by 'syslog_123';
mysql> flush privileges;
1.3 、佈建服務端支援rsyslog-mysql模組,並開啟UDP服務連接埠擷取網內其它Linux系統日誌
修改 /etc/rsyslog.conf,如下
提示:修改前建議先把原檔案備份一下
#注釋掉以下行

*.info;mail.none;authpriv.none;cron.none
authpriv.*
mail.*
cron.*
*.emerg
#在注釋掉的第一行下面添加

$ModLoad ommysql
*.* :ommysql:localhost,syslog,syslog,syslog_123 #格式為:ommysql:MysqlHost,MysqlName,MysqlUser,MysqlUserPasswd
#開啟以下模組(把前面的注釋取消)

$ModLoad imuxsock
$ModLoad imudp
$UDPServerRun 514
然後重啟一下rsyslog服務生效

service rsyslog restart

1.4、 iptables配置

[root@ebs-28723 ~]# iptables -A INPUT -p udp --dport 514 -j ACCEPT
[root@ebs-28723 ~]# iptables -A OUTPUT -p udp --sport 514 -j ACCEPT
[root@ebs-28723 ~]# service iptables restart
2、Rsyslog Client配置
2.1、編輯rsyslog設定檔,使其上傳到rsyslog Server機器上
提示:修改前建議先把原檔案備份一下
#注釋掉以下行

*.info;mail.none;authpriv.none;cron.none
authpriv.*
mail.*
cron.*
*.emerg
#在注釋掉的第一行下面添加

*.* @211.149.204.229 #IP為rsyslog server的IP
然後重啟一下rsyslog服務生效

service rsyslog restart
2.2、iptables配置

[root@web_us ~]# iptables -A INPUT -p udp --dport 514 -j ACCEPT
[root@web_us ~]# iptables -A OUTPUT -p udp --sport 514 -j ACCEPT
[root@ewb_us ~]# service iptables restart
四、LogAnalyzer介紹及配置

1、logAnlyzer介紹
官網:http://loganalyzer.adiscon.com/
下載地址:http://down.shshenchu.com/loganalyzer-3.6.5.tar.gz
中文語言套件:http://down.shshenchu.com/loganalyzer3.6.5-lan-zh.zip
是一款使用php語言寫的日誌分析工具,能方便的簡化的查看日誌
2、配置LogAnlyzer
2.1、下載檔案

[root@ebs-28723 ~]# cd /usr/local/src
[root@ebs-28723 src]# wget http://down.shshenchu.com/loganalyzer-3.6.5.tar.gz
[root@ebs-28723 src]# wget http://down.shshenchu.com/loganalyzer3.6.5-lan-zh.zip

2.2、檔案解壓

[root@ebs-28723 src]# tar -zxvf loganalyzer-3.6.5.tar.gz
[root@ebs-28723 src]# unzip loganalyzer3.6.5-lan-zh.zip

2.3、移動到網站目錄下

[root@ebs-28723 src]# cp -R loganalyzer-3.6.5/src/* /Web/log/public_html/
[root@ebs-28723 src]# cp loganalyzer-3.6.5/contrib/*.sh /Web/log/public_html/
[root@ebs-28723 src]# cp -R loganalyzer3.6.5-lan-zh /Web/log/public_html/lang/cn

2.4、建立Mysql資料庫

#建立使用者
[root@ebs-28723 ~]# mysql -uroot -p
mysql> create database loganalyzer;
mysql> grant all privileges on lyzeruser.* to lyzeruser@localhost identified by 'lyzeruser_123';
mysql> flush privileges;
2.5、安裝訪問

 











2.6 、修改語言
一般建議營運多使用英文的,如果需要修改為中文的話,有點麻煩,如下流程
1. Admin Center ====>Default character encoding (選擇為utf8) #修改語言的預設編碼
2. Admin Center ====>Default selected language (選擇為chinese) #修改預設的語言顯示
然後點擊右上方,就可以在select language裡面選擇chiense為當前顯示的語言嘍!
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.