通過日誌我們可以及時發現軟體所遇到的問題,但是日誌位於伺服器上,不便於觀察,視覺化的實時收集日誌並分析十分重要,而elk棧為另外們提供了很好的解決方案。這裡,我們使用logstash收集nginx日誌,並輸出到elasticsearch,用kibana來顯示。
cd /usr/local/src/
wget -c
wget -c
wget -c
tar -xf kibana-6.1.1-linux-x86_64.tar.gz -c /usr/local/src/
tar -xf logstash-6.1.1.tar.gz -c /usr/local/src/
unzip elasticsearch-6.1.1.zip -d /usr/local/src/
### 建立軟連線
ln -sv /usr/local/src/logstash-6.1.1 /usr/local/logstash
ln -sv /usr/local/src/kibana-6.1.1-linux-x86_64/ /usr/local/kibana
ln -sv /usr/local/src/elasticsearch-6.1.1/ /usr/local/elasticsearch
vim /etc/profile.d/els.sh
# 內容如下
path=$path:/usr/local/elasticsearch/bin/
path=$path:/usr/local/kibana/bin/
path=$path:/usr/local/logstash/bin/
#source /etc/profile.d/els.sh
2. 配置elasticsearch需要的系統配置
ulimit -n 65536
vim /etc/security/limits.conf
#limits.conf內容如下
* soft nofile 65536
* hard nofile 65536
elk安裝x-pack擴充套件(可選)
logstash-plugin install x-pack
elasticsearch-plugin install -xpack
kibana-plugin install x-pack
/usr/local/elasticsearch/bin/x-pack/setup-passwords interactive
4. 配置nginx的日誌格式與日誌路徑
log_format main '';
access_log /var/logs/nginx/access.log main;
error_log /var/logs/nginx/error.log error;
5 . 寫logstash的日誌收集檔案
}}可以命名為logstash.conf
6 . 如部署到伺服器,可使用ftp,scp,rsync,ansible等等工具上傳到伺服器(可選)
7 . 執行logstash進行測試,測試前,因為我們的logstas**件有使用到環境變數elastic_host
,主機位址可以自己進行定義。
export elastic_host=[某伺服器位址]
logstash -f -t logstash.conf ##檢查配置是否正確
logstash -f logstash.conf ## 執行logstash
8. 如果想以服務方式執行logstash
cd /usr/local/logstash/bin/
./system-install --help
usage: system-install [optionsfile] [startuptype] [version]
note: these arguments are ordered, and co-dependent
optionsfile: full path to a startup.options file
optionsfile is required if startuptype is specified, but otherwise looks first
in /usr/local/logstash/config/startup.options and then /etc/logstash/startup.options
last match wins
startuptype: e.g. sysv, upstart, systemd, etc.
optionsfile is required to specify a startuptype.
version: the specified version of startuptype to use. the default is usually
preferred here, so it can safely be omitted.
both optionsfile & startuptype are required to specify a version.
我使用的為centos7系統,使用systemd。如果想要在systemd中定義環境變數那麼。
cd /etc/systemd/system/
vim logstash.service
### 定義變數的行
environment="key=value"
execstart=/usr/local/logstash/bin/logstash "--path.settings" "/usr/share/logstash/config" ###修改服務執行指令碼
9 . 新增系統的logstash使用者
useradd -s /sbin/nologin -m logstash
chown -r logstash.logstash /usr/local/logstash ## 改變logstash的屬主屬組,否則服務啟動會報錯。
10. 啟動logstash
systemctrl start logstash
journalctl -u logstash ## 檢視logstash的日誌
想要監控logstash的情況的話
在logstash的配置檔案中
cd /usr/local/logstash/config
xpack.monitoring.elasticsearch.url : "elasticsearch伺服器位址"
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: ***
logstash的功能很強大,還有一些其餘的方案可以嘗試,可以配合elk與docker一起使用,達到更靈活的效果 logstash 收集nginx日誌
一 logstash使用學習 不難理解,我們的日誌通常都是在日誌檔案中儲存的,所以,當我們在使用input外掛程式時,收集日誌,需要使用file模組,從檔案中讀取日誌的內容,那麼接下來講解的是,將日誌內容輸出到另乙個檔案中,如此一來,我們可以將日誌檔案同意目錄,方便查詢。注意 logstash與其他...
Logstash收集nginx訪問日誌和錯誤日誌
logstash收集nginx訪問日誌和錯誤日誌 1 收集訪問日誌 1 首先是要在nginx裡面配置日誌格式化輸出 2 接下來開始在logstash建立處理nginx的配置檔案 input github 3 最後允許一下看一下效果所示 唯一不足的就是中間報了個錯誤,可以自行解決一下。2 收集錯誤日誌...
Logstash收集nginx訪問日誌和錯誤日誌
1 收集訪問日誌 1 首先是要在nginx裡面配置日誌格式化輸出 2 接下來開始在logstash建立處理nginx的配置檔案 input filter if request if uri kv mutate date output github 3 最後允許一下看一下效果所示 唯一不足的就是中間報...