ELK學習1-環境搭建

環境說明

線上服務器負責匹配整理數據到 redis 中存儲,本地把 redis 裏的日誌文件再致使 ES 中。html

環境的前提是已經把 java 8 安裝好java

yum 軟件安裝後佔用大小node

  • java-1.8.0 = 178M
  • logstash = 290M
  • elasticsearch = 469M
  • kibana = 688M

如下以 centos7 yum 方式安裝linux

java 8 安裝

# yum search java-1.8.0

# #找到 java-1.8.0-openjdk-devel

# yum install java-1.8.0-openjdk-devel

# #添加環境變量

# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# #JAVA_HOME 須要替換成你服務器的目錄,cd /usr/lib/jvm/java + tab 進入,pwd 顯示全路徑

# #驗證

# java -version

ElasticSearch

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install elasticsearch

yum elasticsearch 安裝redis

配置shell

Logstash

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/logstash.repo
[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install logstash

# #啓用慢處理
# yum install haveged
# systemctl start haveged

# #安裝服務
# cd /usr/share/logstash/bin
# ./system-install /etc/logstash/startup.options systemd
# vi /etc/logstash/logstash.yml
node.name: test

mkdir 755 /var/log/logstash
chown logstash:logstash /var/log/logstash

chown logstash:logstash /etc/logstash/startup.options

# #啓用
# systemctl start logstash

yum logstash 安裝
添加 logstash 到windows 服務windows

FQA:centos

一、服務啓動不了服務器

經過查看系統日誌來查看錯誤,systemctl 啓動時沒有任何信息出來,經過 ps aux |grep logstash 查看有沒有進行啓動。也能夠經過 systemctl status logstash 查看狀態。信息中會出現最後一些中止的時候,咱們能夠判斷是否是報錯了,經過 /var/log/message 查看錯誤內容,若是不確認是否是當次的報錯可使用 tail -f /var/log/message 執行後回車留空幾行(在單獨一個窗口中)。再啓動 logstash 就能夠獲得錯誤信息。咱們只須要關注 [ERROR|error] 標識裏的 :message 信息便可併發

could not find java; set JAVA_HOME or ensure java is in PATH

二、匹配過的數據第二次就再也不進行匹配了

這是 logstash.sincedb 的做用。咱們須要在 pipeline.input.sincedb_path 中進行設置便可,linux 設置爲 "/dev/null",windows 設置成 "NUL" 便可不記錄處理歷史。

三、 Ignoring the 'pipelines.yml' file because modules or command line options are specified

這個問題是我手賤動配置致使的問題,logstash.yml 裏的 Pipeline Configuration Settings 下的配置不要動,會出上面的那個提示。(單個 pipeline 的時候感受不到問題,可是如何是多個就會出現失效的錯覺)

四、logstash 啓動慢設置

logstash 啓動緩慢問題-haveged安裝

Note: 不知道是否是由於用了虛擬機的問題,感受運行速度沒有什麼變化。

五、ERROR No configuration found in the configured sources.

這個錯誤是由於你沒有 pipeline 而報的錯

六、爲何無論 linux 仍是 windows 服務都會出現重啓的問題
// TODO 未找到緣由

經驗

若是沒有用過的軟件,配置文件只動必需動的。不要軟件還沒能正常啓動就處處動配置(固然你自信對配置瞭如指掌能夠忽略),到時出錯調試到你頭禿。

Kibana

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/kibana.repo
[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install kibana

yum kibana 安裝

Redis

redis 安裝

ELK 整合

使用 nssm 設置 windows 服務

參考文章

# 服務管理
任務管理器 -> 服務 -右鍵-> [啓動服務|中止服務]

# 刪除服務
sc delete 服務名

FQA

爲何作先存儲到 redis 再導入 ES

由於是集中式日誌系統,咱們會有多臺服務器,每臺服務器都會監聽日誌文件,日誌文件的生成數量是不同的,這會形成併發高而致使 ES 寫入失敗。redis 在這裏的是起一個排隊的做用(起碼能保存能寫入完成再進行下一次寫入),還可使用 kafka 來代替,內存抗壓強,讀寫快。

舊日誌如何初始化導入 ES 中

若是 logstash.pipeline 沒有生成 sincedb 文件,會把日誌文件所有從新處理。已有則能夠刪除 sincedb 文件再啓動便可。

相關文章
相關標籤/搜索