本文將指引你:如何對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
Linux shell篇之日誌系統syslog
linux上的日誌系統 syslog syslog ng 開源 syslog服務 syslogd 系統,非核心產生的資訊 klogd 核心,專門負責記錄核心產生的日誌資訊 配置檔案 etc syslog.conf 服務狀態檢視命令 service syslog status kernel 物理終端 ...
Nginx日誌配置
一,日誌格式 http referer http user agent 此日誌格式為,ip不僅記錄 的ip還記錄遠端客戶端真實ip。remote addr與 http x forwarded for 用以記錄客戶端ip位址,乙個記錄 ip,乙個記錄真實ip remote user 用以記錄客戶端使用...
nginx 日誌配置
不同使用者防衛nginx會把每個使用者訪問往咱的日誌資訊記錄到指定的日誌檔案裡,供 管理員分析使用者瀏覽行為等,此功能又ngx http log module 模組負責。控制訪問日誌的引數引數 說明log format 通過不同的名稱來定義日誌的輸出格式,可以定義多個 access log 用來指定...