rsync同步Nginx日誌遇到問題總結

2021-09-27 08:18:27 字數 1893 閱讀 2581

一、目的

將nginx 日誌通過普通使用者利用rsync公鑰認證的方式實時同步到本地伺服器上,之後使用elk程式進行處理。

二、遇到問題及解決方法思路

問題1.檔案許可權:nginx 的日誌預設許可權如下:

[root@elk ~]# ll /var/log/nginx/access.log

-rw-r----- 1 nginx adm 36330 sep 11

10:26 /var/log/nginx/access.log

我新建的是普通使用者,標準的使用者組,用rsync同步時,報個錯誤,說是沒有該檔案的許可權

receiving file

list ...

1file

to consider

rsync: send_files failed to open

"/var/log/nginx/access.log

": permission denied (13)

問題1解決方法:於是我直接修改了該檔案的許可權為其它使用者也可讀。修改後的許可權如下:

[root@elk ~]# ll /var/log/nginx/access.log

-rw-r--r-- 1 nginx adm 36330 sep 11

10:26 /var/log/nginx/access.log

上述方法修改後,普通帳號是可以讀取該日誌的。rsync同步到本地也沒有問題

問題2.第二天檢視,發現rsync 同步計畫有失敗錯誤的資訊。檢查後發現檔案許可權竟然又變成之前的640了。

問題2解決方法:將之前用於同步的普通使用者加入乙個附屬組,即adm 組中。或者重新建立乙個許可權合適(對系統日誌唯讀、並附加的adm組)的使用者,如下:

[root@elk ~]# useradd -m -g systemd-journal -g adm logersync
三、涉及知識點

1.nginx日誌logrotate 程式自動切割:

nginx 的日誌檔案,每天都會自動分割,/var/log/nginx/*.log,並自動gzip打包存放在和日誌同級目錄下。

先看下logrotate程式中nginx 分割的配置檔案

[root@elk ~]# cat /etc/logrotate.d/nginx 

/var/log/nginx/*

.log

預設引數解釋:

nginx 

2.使用者所在組許可權問題

新增使用者時可以指定組,如下:

[root@elk ~]# useradd -g adm testuser1

[root@elk ~]# id

testuser1

uid=1002(testuser1) gid=4(adm) groups=4(adm)

上面加了乙個testuser1使用者並指定組為adm組。建立使用者時如果不指定組,將會自動建立乙個與使用者名稱同名的組名及gid號

還可以給使用者新增多個組。這樣就擁有其它組下的許可權了,如:

[root@elk ~]# gpasswd -a testuser1 users

adding user testuser1 to group users

[root@elk ~]# id

testuser1

uid=1002(testuser1) gid=4(adm) groups=4(adm),100(users)

上面是將testuser1 也附加到users組中。

四、總結

主要涉及到了nginx服務的日誌切割的預設。

實現Rsync同步Nginx前端配置

近期,由於我們的阿里前端伺服器頻頻受到惡意的流量攻擊,導致前端nginx進入黑洞而無法正常訪問公司 按之前的預計方法,採用加速樂及備用全配置前端的作法,將惡意短時流量攻擊的損失時間降到最短。現將c這台機用作全配置的nginx前端,a和b前端的任何nginx配置都會通過rsync同步到c這台機器上。部...

rsync 檔案同步

昨天上網找乙個同步工具,windows同步到linux,額,ms不少,但是配置實在是麻煩,而且很多按照步驟做下來 都不能使用,估計rp問題 最鬱悶的事莫過如此,經過乙個下午的努力,額,原來真的行的,分享給大家。估計很多人會覺得囉嗦 一.介紹 不想看直接可以跳過 rsync 是乙個遠端資料同步工具,可...

檔案同步rsync

命令格式 rsync option 源路徑 目標路徑 其中 option a 使用archive模式,等於 rlptgod,即保持原有的檔案許可權 z 表示傳輸時壓縮資料 v 顯示到螢幕中 e 使用遠端shell程式 可以使用rsh或ssh delete 精確儲存副本,源主機刪除的檔案,目標主機也會...