1. 程式人生 > >Nginx日誌配置遠端Syslog採集

Nginx日誌配置遠端Syslog採集

本文將指引你:如何對Nginx日誌進行採集,並通過Syslog協議,自動實時的傳送到遠端的集中日誌分析中心,便於集中式的日誌儲存和管理,提高網站的運維效率。

第一步:初始化日誌採集環境

先確保系統中的/var/spool/rsyslog 目錄已存在:

mkdir -v /var/spool/rsyslog
if [ "$(grep Ubuntu /etc/issue)" != "" ]; then
  chown -R syslog:adm /var/spool/rsyslog
fi

第二步:建立Nginx日誌檔案採集配置

新建Rsyslog的子配置檔案,他通常在/etc/rsyslog.d下,需要/etc/rsyslog.conf去包含這個目錄下的子配置檔案:

vim /etc/rsyslog.d/nginx-biglog.conf

複製以下內容到nginx-biglog.conf,注意註釋部分的修改:

$ModLoad imfile
$InputFilePollInterval 10
$WorkDirectory /var/spool/rsyslog
$PrivDropToGroup adm

## Nginx訪問日誌檔案路徑,根據實際情況修改:
$InputFileName /usr/local/nginx/logs/access.log
$InputFileTag nginx-access:
$InputFileStateFile stat-nginx-access
$InputFileSeverity info
$InputFilePersistStateInterval 25000
$InputRunFileMonitor

## Nginx錯誤日誌檔案路徑,根據實際情況修改:
$InputFileName /usr/local/nginx/logs/error.log
$InputFileTag nginx-error:
$InputFileStateFile stat-nginx-error
$InputFileSeverity error
$InputFilePersistStateInterval 25000
$InputRunFileMonitor

## 指定日誌格式模板:
$template BiglogFormatNginx,"%msg%\n"

## 注意syslog日誌伺服器接收地址,根據實際情況修改:
if $programname == 'nginx-access' then @10.x.x.x:514;BiglogFormatNginx
if $programname == 'nginx-access' then ~
if $programname == 'nginx-error' then @10.x.x.x:514;BiglogFormatNginx
if $programname == 'nginx-error' then ~

注:通過Rsyslog配置日誌接收端的時候,如上示例@10.x.x.x:514,用於指定接收日誌的伺服器的協議、IP地址和埠號。使用@代表走UDP協議,使用@@代表走TCP協議,冒號後面的514代表接收埠

第三步:重啟Rsyslog服務,日誌採集開始工作

service rsyslog restart

此時可以通過觀察系統中的Rsyslog日誌,確定是否正常工作。

cat /var/log/messages |grep rsyslog

--------------------- 本文來自 西北蒼狼 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/leizi191110211/article/details/51593739?utm_source=copy