在 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

[root@localhost ~]# vim /etc/sysconfig/selinux

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

java

下載

[root@localhost ~]# 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的下載鏈接了。

安裝

[root@localhost ~]# rpm -ivh jdk-8u171-linux-x64.rpm

查看java是否安裝成功

[root@localhost ~]# java -version
java version "1.8.0_171"

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

elasticsearch

導入秘鑰

[root@localhost ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

下載

[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

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

安裝

[root@localhost ~]# rpm -ivh elasticsearch-6.2.4.rpm

配置

[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml

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

bootstrap.memory_lock: true
http.port: 9200

啟動

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable elasticsearch
[root@localhost ~]# systemctl start elasticsearch
[root@localhost ~]# 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應用程序了。

安裝

[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install nginx httpd-tools -y

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

配置

刪除默認配置

[root@localhost ~]# 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添加代理

[root@localhost ~]# 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添加代理

[root@localhost ~]# 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認證

[root@localhost ~]# htpasswd -c /etc/nginx/.kibana-user admin

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

測試Nginx配置並啟動

[root@localhost ~]# nginx -t

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

[root@localhost ~]# systemctl enable nginx
[root@localhost ~]# systemctl start nginx

kibana

下載

[root@localhost ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

安裝

[root@localhost ~]# rpm -ivh kibana-6.2.4-x86_64.rpm

配置

[root@localhost ~]# vim /etc/kibana/kibana.yml

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

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

啟動

[root@localhost ~]# systemctl enable kibana
[root@localhost ~]# systemctl start kibana
[root@localhost ~]# netstat -plntu

和elasticsearch一樣,最后通過netstat -plntu查看kibana是否啟動成功,如果有端口號為5601的輸出那就代表kibana啟動成功了

logstash

下載

[root@localhost ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm

安裝

[root@localhost ~]# rpm -ivh logstash-6.2.4.rpm

啟動

[root@localhost ~]# systemctl enable logstash
[root@localhost ~]# systemctl start logstash

瀏覽器訪問kibana

配置本地host

如果你的電腦是win10,並且安裝目錄在C盤,編輯文件C:\Windows\System32\drivers\etc\hosts添加這一行

192.168.93.133 elk-stack.co

打開端口

[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --add-port=81/tcp --permanent
[root@localhost ~]# 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM