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