1. 程式人生 > >在 CentOS7 安裝 ELK【轉】

在 CentOS7 安裝 ELK【轉】

ELK是一個成熟的日誌系統,主要功能有收集、分析、檢索,詳細見 elastic官網

本文主要介紹如何在CentOS7下安裝最新版本的ELK,當然現在docker已經有完全配置成功的elk容器,安裝配置非常方便,但是如果你想自己從安裝jdk開始,那這篇部落格將能夠幫助到你。

安裝前瞭解一下

作業系統及各元件版本

  • centos-7-x86_64
  • java8
  • elasticsearch-6.2.4
  • kibana-6.2.4
  • logstash-6.2.4

禁用SELinux

[[email protected] ~]# vim /etc/sysconfig/selinux

把 SELINUX=enforcing 改為 SELINUX=disabled。這一步具體原因我不清楚,但是在公司安裝成功,但是晚上回去在自己電腦上再安裝一遍發現最後在瀏覽器登入kibana始終都是報Nginx502Bad,確認所有步驟都沒有問題,最後就是因為漏掉這項配置沒有改,改完OK!

java

下載

[[email protected] ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm"

下載連結在 oracle官網,當然如果你願意使用java8並且這裡的連結可以使用,那麼就不需要到oracle官網找jdk的下載連結了。

安裝

[[email protected] ~]# rpm -ivh jdk-8u171-linux-x64.rpm

檢視java是否安裝成功

[[email protected] ~]# java -version
java version "1.8.0_171"

第一次安裝的時候,因為考慮到jdk是向下相容的,所以嘗試了java10,結果在安裝logtash的時候失敗了,折騰了會還是老老實實的裝回了java8

elasticsearch

匯入祕鑰

[[email protected] ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

下載

[[email protected] ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

elasticsearch,kibana,logstash的最新下載地址都在這裡,當然如果你願意使用elk6.2.4並且這個的連結可以使用,那麼就不需要到官網找下載連結了

安裝

[[email protected] ~]# rpm -ivh elasticsearch-6.2.4.rpm

配置

[[email protected] ~]# vim /etc/elasticsearch/elasticsearch.yml

取消43、59行的註釋,行號不一定準確,但一定是下面這幾項

bootstrap.memory_lock: true
http.port: 9200

啟動

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl enable elasticsearch
[[email protected] ~]# systemctl start elasticsearch
[[email protected] ~]# netstat -plntu

最後通過 netstat -plntu 檢視是否elasticsearch程序是否啟動成功,如果有9200的埠這一行輸出了那就代表啟動成功,如果沒有可能需要重啟下虛擬機器。

nginx

代理伺服器瞭解一下(老手跳過)

Nginx在這裡作為一個代理伺服器,熟悉asp.net開發者肯定知道iis,我們把asp.net專案部署iis上,假設配置一個8080埠,然客戶端就可以通過IP地址加8080埠直接瀏覽asp.net應用程式了,這裡Nginx是在客戶端和asp.net應用程式之間的一個代理伺服器,如果Nginx監聽的埠是80,轉發地址是localhost:8080,那麼客戶端就可以通過IP地址加80埠訪問asp.net應用程式了。

安裝

[[email protected] ~]# yum install epel-release -y
[[email protected] ~]# yum install nginx httpd-tools -y

安裝Nginx之前要先安裝epel源,可能以後在使用linux的時候你還會新增各種源,就和在nuget新增源的目的一樣

配置

刪除預設配置

[[email protected] ~]# vim /etc/nginx/nginx.conf

這裡把位於36、59行之間的Server塊刪掉,更多的配置項在 /etc/nginx/conf.d/*.conf中

36 include /etc/nginx/conf.d/*.conf;
Server { }
59# Settings for a TLS enabled server.

給kibana新增代理

[[email protected] ~]# vim /etc/nginx/conf.d/kibana.conf

貼上下面內容,注意貼上之前先輸入 i 進入insert模式,這裡域名為 elk-stack.co,然後使用http協議的basic認證,密碼稍後新增,然後看location塊,當Nginx監聽到域名為elk-stack.co,埠為80的請求時,就會轉發給本地監聽埠5601的程序,這個程序就是kibana,下一步安裝它

server {
listen 80;

server_name elk-stack.co;

auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;

location / {
    proxy_pass http://localhost:5601;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
} }

給elasticsearch新增代理

[[email protected] ~]# vim /etc/nginx/conf.d/elasticsearch.conf

server {
listen 81;

server_name elk-stack.co;

location / {
    proxy_pass http://localhost:9200;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
} }

新增一個basic認證

[[email protected] ~]# htpasswd -c /etc/nginx/.kibana-user admin

然後輸入你的密碼,記住最後要通過這個來登入kibana的

測試Nginx配置並啟動

[[email protected] ~]# nginx -t

如果出現 test failed,就回過頭檢查/etc/nginx/conf.d/kibana.conf和/etc/nginx/nginx.conf這兩個檔案,肯定是不小心弄錯了。
如果輸出 test is successful,那麼就可以啟動 nginx 了

[[email protected] ~]# systemctl enable nginx
[[email protected] ~]# systemctl start nginx

kibana

下載

[[email protected] ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

安裝

[[email protected] ~]# rpm -ivh kibana-6.2.4-x86_64.rpm

配置

[[email protected] ~]# vim /etc/kibana/kibana.yml

取消2、7、21行的註釋,行號不一定準確,但一定是下面這幾項

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

啟動

[[email protected] ~]# systemctl enable kibana
[[email protected] ~]# systemctl start kibana
[[email protected] ~]# netstat -plntu

和elasticsearch一樣,最後通過netstat -plntu檢視kibana是否啟動成功,如果有埠號為5601的輸出那就代表kibana啟動成功了

logstash

下載

[[email protected] ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm

安裝

[[email protected] ~]# rpm -ivh logstash-6.2.4.rpm

啟動

[[email protected] ~]# systemctl enable logstash
[[email protected] ~]# systemctl start logstash

瀏覽器訪問kibana

配置本地host

如果你的電腦是win10,並且安裝目錄在C盤,編輯檔案C:\Windows\System32\drivers\etc\hosts新增這一行

192.168.93.133 elk-stack.co

開啟埠

[[email protected] ~]# firewall-cmd --zone=public --add-port=80/tcp --add-port=81/tcp --permanent
[[email protected] ~]# firewall-cmd --reload

現在就可以本地通過瀏覽輸入elk-stack.co,訪問kibana了!
但是如果出現 lookup elk-stack.co on 127.0.0.1:53: no such host,可能是host檔案的修改還沒有生效,重啟一下電腦就可以,如果重啟還是不行參考這裡,實在不行就通過虛擬機器的ip地址直接訪問就行了

 

檢視es

如果出現這兩張圖那就安裝成功啦!

ELK的功能非常強大,自己在逐步學習中,但是發現除了看官方文件似乎很難找的好的學習資料了,英文不好看起來雖然痛苦但是看懂還有有收穫的,所以我把我的學習過程記錄下來,希望可以幫助正在學習ELK的你。

參考資料

https://www.howtoforge.com/tutorial/how-to-install-elastic-stack-on-centos-7/
https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7
https://www.elastic.co/guide/index.html