導航:首頁 > IDC知識 > 搭建rsyslog伺服器

搭建rsyslog伺服器

發布時間:2021-01-08 10:43:54

1、linux rsyslog配置了日誌伺服器 如何去除本機記錄日誌

首先需要一台日誌伺服器(如IP地址為10.1.1.1),然後在Linux操作系統配置並啟動日誌伺服器:
1、編輯「內/etc/syslog.conf」;容
2、在消息去向處添加「*.Error;
authpriv.*
@10.1.1.1」;
3、存檔退出重起服務「/etc/rc.d/init.d/syslog
restart」

2、rsyslog日誌伺服器如何自動將不同IP地址設備的日誌放不同文件中!拜託了各位 謝謝

在rsyslog.conf中添加 :FROMHOST-IP,isequal, " IP " /var/log/host/IP

採納哦

3、在虛擬機下基於centos用rsyslog實現日誌服務管理系統的搭建?

http://www.tuicool.com/articles/YR7nYj

http://www.linuxidc.com/Linux/2013-06/86163.htm
http://hi.baidu.com/756091339/item/ee856ac50bd4fc26e80f2ed8

4、如何使用syslog向伺服器協議

Syslog是一種工業標準的協議,可用來記錄設備的日誌。
Ubuntu下安裝syslog apt-get install inetutils-syslogd

這裡面的三個函數openlog, syslog, closelog是一套系統日誌寫入介面。另外那個vsyslog和syslog功能一樣,只是參數格式不同。
通常,syslog守護進程讀取三種格式的記錄消息。此守護進程在啟動時讀一個配置文件。一般來說,其文件名為/etc/syslog.conf,該文件決定了不同種類的消息應送向何處。例如,緊急消息可被送向系統管理員(若已登錄),並在控制台上顯示,而警告消息則可記錄到一個文件中。該機制提供了 syslog函數,其調用格式如下
#include <syslog.h>
void openlog (char*ident,int option ,int facility);
void syslog(int priority,char*format,……)
void closelog();

調用openlog是可選擇的。如果不調用openlog,則在第一次調用syslog時,自動調用openlog。調用closelog也是可選擇的,它只是關閉被用於與syslog守護進程通信的描述符。調用openlog 使我們可以指定一個ident,以後, 此ident 將被加至每則記錄消息中。ident 一般是程序的名稱(例如 ,cron ,ine 等)

程序的用法示例代碼如下:

#include <syslog.h>
int main(int argc, char **argv)
{
openlog("MyMsgMARK", LOG_CONS | LOG_PID, 0);
syslog(LOG_DEBUG,
"This is a syslog test message generated by program '%s'\n",
argv[0]);
closelog();
return 0;
}

編譯生成可執行程序後,運行一次程序將向/var/log /message文件添加一行信息如下:
Feb 12 08:48:38 localhost MyMsgMARK[7085]: This is a syslog test message generated by program './a.out'

syslog函數及參數
syslog函數用於把日誌消息發給系統程序syslogd去記錄,此函數原型是:
void syslog(int priority, const char *format, ...);
第一個參數是消息的緊急級別,第二個參數是消息的格式,之後是格式對應的參數。就是printf函數一樣使用。

如果我們的程序要使用系統日誌功能,只需要在程序啟動時使用openlog函數來連接 syslogd程序,後面隨時用syslog函數寫日誌就行了。

下面介紹在RedHat和ubuntu中如何配置它:

Ubuntu和紅帽常使用它,並且通過文件/etc/rsyslog.conf進行管理。文件中包含許多指定的特殊系統日誌:有的是控制台方面的,有的是文件方面或其它主機的。

首先,我們需要載入合適的TCP和UDP插件以支持接收系統日誌。把下面的代碼添加到rsyslog.conf的頭部:

$modload imtcp

$modload imudp

$InputTCPServerRun 10514

$UDPServerRun 514

載入的這兩個模塊能支持監聽TCP和UDP的埠,並且指定哪個埠來接受事件,在這種情況下,使用TCP的10514埠和UDP的514埠。你需要確認一下本地防火牆(在你的主機和中央系統日誌伺服器之間的防火牆)

下面我們需要指定一些規則來告訴rSyslog在哪放輸入事件。如果你不添加任何規則,輸入事件將按照本地的規則進行處理,並且與本地主機的事件交織在一起。我們需要在上面添加節之後和本地處理系統日誌之前來正確的指定這個規則,例如:

if $fromhost-ip isequal '192.168.0.2' then /var/log/192.168.0.2.log

& ~

這里我們說的每一個來自於192.168.0.2的系統日誌都應該保存在/var/log/192.168.0.2.log文件中。&~這個符號是非常重要的,因為它告訴rSyslog將停止處理消息。如果你把它忘寫了,消息將越過下一個規則,並且繼續處理。在這一規則中還有其他的變數。例如:

if $fromhost-ip startswith '192.168.' then /var/log/192.168.log

& ~

這里我們用192.168.*替代了以這個為開始的所有IP地址,寫入到/var/log/192.168.log文件中。你還可以看到一些其它的過濾。

你將需要重啟這個rsyslog服務來激活我們所做的新的配置:

$ sudo service rsyslog restart

現在,對於發送方的主機,我們還需要對文件rsyslog.conf進行一些更改,在文件的頭部,添加下面這行:

*.* @@192.168.0.1:10514

這是發送的所有事件,來自於所有源代碼和所有重要級別(用*.*),通過TCP協議傳給IP地址為192.168.0.1的10514埠。你可是用你所在環境的地址來替換這個IP地址。要啟用此配置,你將需要重啟主機上的rSyslog。

你可以通過SSL/TLS更進一步地發送你的系統日誌。如果你在互聯網上或其它網路間傳輸系統日誌,這也沒什麼壞處,你可能會發現這個的簡單說明。

現在,如果給你的配置管理系統(如果不使用這個,你可以試一試Puppet或Cfengine工具)添加這個配置,然後,您可以用適當的系統日誌來有效地配置每台主機,以確保你的日誌將被發送到中央系統日誌伺服器。

5、在windows上怎麼用syslog伺服器獲取rsyslog日誌

rsyslog 許可權抄;

默認

[root@dr-mysql01 zjzc_log]# ls -ltr zj-frontend0*-access*27

-rw------- 1 root root 322 Sep 27 07:55 zj-frontend02-access.2016-09-27

600

$FileOwner elk

$FileGroup elk

$FileCreateMode 0755

$DirCreateMode 0755

$Umask 0022

修改後:

[root@dr-mysql01 zjzc_log]# ls -ltr zj-frontend0*-access*27

-rwxr-xr-x 1 elk elk 10558 Sep 27 07:58 zj-frontend02-access.2016-09-27

6、搭建一個log server用什麼軟體比較好

系統統日誌(Syslog)協議簡介Syslog是一種在網路中傳遞消息的標准。它採用Client/Server架構:syslog的發送者(Client)向接受者(Server)發送短消息(一般小於1KB)。現在Syslog被應用於很多系統中:OS,Router,Switch等等。日誌嚴重程度(severity levels): 0 - Emergency (emerg) 1 - Alerts (alert) 2 - Critical (crit) 3 - Errors (err) 4 - Warnings (warn) 5 - Notification (notice) 6 - Information (info) 7 - Debug (debug) 通常系統會將進程分組,同組進程的日誌將具有相同的組標識(稱為facility),這樣可以在一定程度上對日誌分類。常用的facility包括:auth - authentication (login) messages cron - messages from the memory-resident scheler daemon - messages from resident daemons kern - kernel messages lpr - printer messages (used by JetDirect cards) mail - messages from Sendmail user - messages from user-initiated processes/apps local0-local7 - user-defined syslog - messages from the syslog process itself 搭建中心系統日誌(Syslog)伺服器有什麼好處?一般系統預設會將日誌發送到本地的Syslog伺服器上,並保存到本地存儲或者直接輸出在屏幕等終端設備上。建立一個統一的日誌伺服器,並且將所有的日誌發送到該伺服器具有如下好處:方便集中日誌管理(存儲、備份、查詢,等等)。對於沒有終端(Console)的設備,方便查看日誌。日誌更安全:一旦黑客入侵其中某個設備,通常會將日誌清楚。將日誌輸出到中心伺服器,有利於保護日誌的完整性。搭建中心系統日誌(Syslog)伺服器如果你的系統使用sysklogd,請參考如下配置:修改/etc/sysconfig/syslog,替換:SYSLOGD_OPTIONS="-m 0" 為SYSLOGD_OPTIONS="-rm 0"重新啟動syslog服務:service syslog restart注意防火牆設置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以參考如下的設置: iptables -I INPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 配置其他設備使用該系統日誌(Syslog)伺服器syslogd的配置文件(如:/etc/syslog.conf)一般有如下語法: facility.severity log-file-name 將所有Kernel日誌寫入/var/log/kernel.log: kern.* /var/log/kernel.log 將所有日誌寫入/var/log/kernel.log: *.* /var/log/all.log 將所有日誌發送到遠程日誌伺服器: *.* @hostname 注意防火牆設置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以參考如下的設置: iptables -I OUTPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 參考資料維基百科上的Syslog介紹。Syslog daemon。Syslog-ng日誌系統 - 一個增加版的日誌系統。Rsyslog - 多線程、靈活的日誌系統。

7、大佬們,請教有做過mysql資料庫日誌備份到遠程伺服器rsyslog日誌伺服器的嗎?幫忙指點指點

1、資料庫伺服器部署

yum install mariadb-server

systemctl start mariadb.service

mysql_secure_installation 運行安全腳本

2、日誌伺服器

yum install rsyslog-mysql

rpm -ql rsyslog-mysql

cat /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

3 在資料庫伺服器上創建日誌用戶

grant all on Syslog.* to loguser@'192.168.8.%' identified by 'mage';

4 在日誌伺服器上通過MySQL創建日誌資料庫

mysql -uloguser -pmage -h192.168.8.107 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

5 在日誌伺服器上配置日誌服務配置文件,使其可以支持連接資料庫模塊,並將本機日誌關聯至遠程日誌資料庫

vim /etc/rsyslog.conf

#### MODULES ####

$ModLoad ommysql

#### RULES ####

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

*.*  :ommysql:192.168.8.107,Syslog,loguser,mage

service rsyslog restart

6 logger 測試

此時logger觸發日誌時,日誌伺服器上的日誌將會記錄至遠程資料庫Syslog中

7、web伺服器配置

yum install httpd php php-mysql php-gd

systemctl start httpd

tar xvf loganalyzer-4.1.5.tar.gz

cd loganalyzer-4.1.5/

mv src/ /var/www/html/log

cd /var/www/html/log

cat /root/loganalyzer-4.1.5/contrib/configure.sh

cat /root/loganalyzer-4.1.5/contrib/secure.sh

touch config.php

chmod 666 config.php

8、如何搭建中心系統日誌伺服器

系統統日誌(Syslog)協議簡介Syslog是一種在網路中傳遞消息的標准。它採用Client/Server架構:syslog的發送者(Client)向接受者(Server)發送短消息(一般小於1KB)。現在Syslog被應用於很多系統中:OS,Router,Switch等等。日誌嚴重程度(severity levels): 0 - Emergency (emerg) 1 - Alerts (alert) 2 - Critical (crit) 3 - Errors (err) 4 - Warnings (warn) 5 - Notification (notice) 6 - Information (info) 7 - Debug (debug) 通常系統會將進程分組,同組進程的日誌將具有相同的組標識(稱為facility),這樣可以在一定程度上對日誌分類。常用的facility包括:auth - authentication (login) messages cron - messages from the memory-resident scheler daemon - messages from resident daemons kern - kernel messages lpr - printer messages (used by JetDirect cards) mail - messages from Sendmail user - messages from user-initiated processes/apps local0-local7 - user-defined syslog - messages from the syslog process itself 搭建中心系統日誌(Syslog)伺服器有什麼好處?一般系統預設會將日誌發送到本地的Syslog伺服器上,並保存到本地存儲或者直接輸出在屏幕等終端設備上。建立一個統一的日誌伺服器,並且將所有的日誌發送到該伺服器具有如下好處:方便集中日誌管理(存儲、備份、查詢,等等)。對於沒有終端(Console)的設備,方便查看日誌。日誌更安全:一旦黑客入侵其中某個設備,通常會將日誌清楚。將日誌輸出到中心伺服器,有利於保護日誌的完整性。搭建中心系統日誌(Syslog)伺服器如果你的系統使用sysklogd,請參考如下配置:修改/etc/sysconfig/syslog,替換:SYSLOGD_OPTIONS="-m 0" 為SYSLOGD_OPTIONS="-rm 0"重新啟動syslog服務:service syslog restart注意防火牆設置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以參考如下的設置: iptables -I INPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 配置其他設備使用該系統日誌(Syslog)伺服器syslogd的配置文件(如:/etc/syslog.conf)一般有如下語法: facility.severity log-file-name 將所有Kernel日誌寫入/var/log/kernel.log: kern.* /var/log/kernel.log 將所有日誌寫入/var/log/kernel.log: *.* /var/log/all.log 將所有日誌發送到遠程日誌伺服器: *.* @hostname 注意防火牆設置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以參考如下的設置: iptables -I OUTPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 參考資料維基百科上的Syslog介紹。Syslog daemon。Syslog-ng日誌系統 - 一個增加版的日誌系統。Rsyslog - 多線程、靈活的日誌系統。

9、如何實現集中式RSYSLOG伺服器監控

安裝RSYSLOG伺服器


這第一個部分描述的是如何搭建從客戶端收集syslog數據的RSYSLOG伺服器。在該例子中,我們的伺服器名為rsyslog.domain.com,其固定IP地址為192.168.0.15。


首先,我們安裝一些依賴項。


apt-get update

apt-get upgrade

apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-moles zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


安裝過程中要求你輸入MySQL伺服器的密碼時,創建一個密碼!


我的OpenVZ模板已准備好了一切,所以下面這個命令對你來說可能沒有必要……


apt-get install linux-kernel-headers


確保相應服務已創建並運行起來……


/etc/init.d/rsyslog restart

/etc/init.d/mysql restart

/etc/init.d/apache2 restart


確保伺服器在偵聽合適的TCP IP埠(埠80和埠3306)。這時,RSYSLOG還沒有偵聽任何埠。


rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp  0  0 127.0.0.1:3306  0.0.0.0:* LISTEN  415/mysqld

tcp  0  0 0.0.0.0:80  0.0.0.0:* LISTEN  581/apache2


然後,我們可以構建rsyslog資料庫:


mysqladmin -u root -p create rsyslog


接下來,我們啟動MySQL命令外殼程序,創建rsyslog用戶:


mysql -u root -p

GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE';

FLUSH PRIVILEGES;

quit


接下來,我們配置rsyslog伺服器,以便偵聽TCP埠514:


vi /etc/rsyslog.conf


添加這幾行……(要記得將密碼更改成你在創建MySQL伺服器的rsyslog用戶時輸入的那個密碼。)


$ModLoad MySQL

*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE


……並去掉處理TCP syslog接收的幾行代碼前面的注釋。


# rsyslog v3的/etc/rsyslog.conf配置文件

#

# 想了解更多信息,請參閱/usr/share/doc/rsyslog-doc/html/rsyslog_conf.html

$ModLoad MySQL

*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

#################

#### 模塊 ####

#################

$ModLoad imuxsock # 提供對本地系統日誌的支持

$ModLoad imklog # 提供內核日誌支持(以前由rklogd來提供)

#$ModLoad immark # 提供--MARK--息功能

# 提供UDP syslog接收

#$ModLoad imudp

#$UDPServerRun 514

# 提供TCP syslog接收

$ModLoad imtcp

$InputTCPServerRun 514

###########################

#### 全局指令 ####

###########################


並重啟rsyslog服務。


/etc/init.d/rsyslog restart


確保伺服器在偵聽合適的TCP IP埠。(埠80、埠514和埠3306。)


rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp  0  0 0.0.0.0:514 0.0.0.0:* LISTEN  618/rsyslogd

tcp  0  0 127.0.0.1:3306  0.0.0.0:* LISTEN  415/mysqld

tcp  0  0 0.0.0.0:80  0.0.0.0:* LISTEN  581/apache2


接著我們下載LogAnalyzer,並配置Apache web伺服器,以便顯示日誌。


cd /tmp

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.1.tar.gz

tar xvzf loganalyzer-3.4.1.tar.gz

mv loganalyzer-3.4.1/ /var/www/

cd /var/www


接著我們為Apache web伺服器配置www文件夾用戶許可權。


chown www-data:www-data * . -Rf


然後,我們對LogAnalyzer文件夾作了一些「改進」工作。


mv loganalyzer-3.4.1/ loganalyzer

cd contrib/

cp * ./../src/

cd ./../src/

sh ./configure.sh


我們已准備使用我們的互聯網伺服器來輸入LogAnalyzer的最後設置項。往你的互聯網瀏覽器裡面輸入rsyslog伺服器的固定IP地址,本文中是http://192.168.0.15/loganalyzer/src/install.php。


運行簡單的設置腳本(很簡單,只要點擊next -> next。)


現在,你應該有了正常運行的rsyslog伺服器,而且LogAnalyzer已創建並運行起來。


接下來,我們配置RSYSLOG客戶端,以便將其syslog數據發送到rsyslog伺服器:

配置RSYSLOG客戶端


我們要做的通常僅僅是配置rsyslog.conf文件,然後重啟服務。(幾乎所有Debian操作系統都預先安裝了rsyslog。)

vi /etc/rsyslog.conf

添加萬一網路連接中斷要用到的work spool目錄這幾行,並將你的rsyslog伺服器IP地址更改成192.168.0.15。(你可能還想要用mkdir命令來創建/rsyslog/work spool目錄。)

# 提供TCP syslog接收
#$ModLoad imtcp
#$InputTCPServerRun 514
$WorkDirectory /rsyslog/work # work(spool)文件的默認位置
$ActionQueueType LinkedList # 使用非同步處理
$ActionQueueFileName srvrfwd # 設置文件名稱,還啟用磁碟模式
$ActionResumeRetryCount -1 # 插入失敗後,無限次重試
$ActionQueueSaveOnShutdown on # 如果rsyslog關閉,保存內存中數據
*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE
###########################
#### 全局指令####
###########################
並重啟rsyslog服務。
/etc/init.d/rsyslog restart

伺服器已通過合適的TCP IP埠(埠514)連接。

root@ic1:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address         Foreign Address       State     PID/Program name
tcp      0    0 192.168.0.100:49188   192.168.0.15:514       ESTABLISHED 13289/rsyslogd

這就是成功搭建的系統的樣子。

與搭建rsyslog伺服器相關的知識