本篇內(nèi)容主要講解“怎么在CentOS7上安裝Elastic Stack”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么在CentOS7上安裝Elastic Stack”吧!
創(chuàng)新互聯(lián)主要從事網(wǎng)站設計、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務西烏珠穆沁,10多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108
Elasticsearch 是基于 Lucene 由 Java 開發(fā)的開源搜索引擎。它提供了一個分布式、多租戶的全文搜索引擎(LCTT 譯注:多租戶是指多租戶技術,是一種軟件架構技術,用來探討與實現(xiàn)如何在多用戶的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶間數(shù)據(jù)的隔離性。),并帶有 HTTP 儀表盤的 Web 界面(Kibana)。數(shù)據(jù)會被 Elasticsearch 查詢、檢索,并且使用 JSON 文檔方案存儲。Elasticsearch 是一個可擴展的搜索引擎,可用于搜索所有類型的文本文檔,包括日志文件。Elasticsearch 是 Elastic Stack 的核心,Elastic Stack 也被稱為 ELK Stack。
Logstash 是用于管理事件和日志的開源工具。它為數(shù)據(jù)收集提供實時傳遞途徑。 Logstash 將收集您的日志數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為 JSON 文檔,并將其存儲在 Elasticsearch 中。
Kibana 是 Elasticsearch 的開源數(shù)據(jù)可視化工具。Kibana 提供了一個漂亮的儀表盤 Web 界面。 你可以用它來管理和可視化來自 Elasticsearch 的數(shù)據(jù)。 它不僅美麗,而且強大。
在本教程中,我將向您展示如何在 CentOS 7 服務器上安裝和配置 Elastic Stack 以監(jiān)視服務器日志。 然后,我將向您展示如何在操作系統(tǒng)為 CentOS 7 和 Ubuntu 16 的客戶端上安裝 “Elastic beats”。
前提條件
64 位的 CentOS 7,4 GB 內(nèi)存 - elk 主控機
64 位的 CentOS 7 ,1 GB 內(nèi)存 - 客戶端 1
64 位的 Ubuntu 16 ,1 GB 內(nèi)存 - 客戶端 2
步驟 1 - 準備操作系統(tǒng)
在本教程中,我們將禁用 CentOS 7 服務器上的 SELinux。 編輯 SELinux 配置文件。
vim /etc/sysconfig/selinux
將 SELINUX 的值從 enforcing 改成 disabled 。
SELINUX=disabled
然后重啟服務器:
reboot
再次登錄服務器并檢查 SELinux 狀態(tài)。
getenforce
確保結果是 disabled。
步驟 2 - 安裝 Java
部署 Elastic stack 依賴于Java,Elasticsearch 需要 Java 8 版本,推薦使用 Oracle JDK 1.8 。我將從官方的 Oracle rpm 包安裝 Java 8。
使用 wget 命令下載 Java 8 的 JDK。
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/8u77-b02/jdk-8u77-linux-x64.rpm"
然后使用 rpm 命令安裝:
rpm -ivh jdk-8u77-linux-x64.rpm
***,檢查 java JDK 版本,確保它正常工作。
java -version
您將看到服務器的 Java 版本。
步驟 3 - 安裝和配置 Elasticsearch
在此步驟中,我們將安裝和配置 Elasticsearch。 從 elastic.co 網(wǎng)站提供的 rpm 包安裝 Elasticsearch,并將其配置運行在 localhost 上(以確保該程序安全,而且不能從外部訪問)。
在安裝 Elasticsearch 之前,將 elastic.co 的密鑰添加到服務器。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
接下來,使用 wget 下載 Elasticsearch 5.1,然后安裝它。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm rpm -ivh elasticsearch-5.1.1.rpm
Elasticsearch 已經(jīng)安裝好了。 現(xiàn)在進入配置目錄編輯 elasticsaerch.yml 配置文件。
cd /etc/elasticsearch/vim elasticsearch.yml
去掉第 40 行的注釋,啟用 Elasticsearch 的內(nèi)存鎖。這將禁用 Elasticsearch 的內(nèi)存交換。
bootstrap.memory_lock: true
在 Network 塊中,取消注釋 network.host 和 http.port 行。
network.host: localhost http.port: 9200
保存文件并退出編輯器。
現(xiàn)在編輯 elasticsearch.service 文件的內(nèi)存鎖配置。
vim /usr/lib/systemd/system/elasticsearch.service
去掉第 60 行的注釋,確保該值為 unlimited。
MAX_LOCKED_MEMORY=unlimited
保存并退出。
Elasticsearch 配置到此結束。Elasticsearch 將在本機的 9200 端口運行,我們通過在 CentOS 服務器上啟用 mlockall 來禁用內(nèi)存交換。重新加載 systemd,將 Elasticsearch 置為開機啟動,然后啟動服務。
sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch
等待 Eelasticsearch 啟動成功,然后檢查服務器上打開的端口,確保 9200 端口的狀態(tài)是 LISTEN。
netstat -plntu
Check elasticsearch running on port 9200
然后檢查內(nèi)存鎖以確保啟用 mlockall,并使用以下命令檢查 Elasticsearch 是否正在運行。
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty' curl -XGET 'localhost:9200/?pretty'
會看到如下結果。
Check memory lock elasticsearch and check status
步驟 4 - 安裝和配置 Kibana 和 Nginx
在這一步,我們將在 Nginx Web 服務器上安裝并配置 Kibana。 Kibana 監(jiān)聽在 localhost 上,而 Nginx 作為 Kibana 的反向代理。
用 wget 下載 Kibana 5.1,然后使用 rpm 命令安裝:
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm rpm -ivh kibana-5.1.1-x86_64.rpm
編輯 Kibana 配置文件。
vim /etc/kibana/kibana.yml
去掉配置文件中 server.port、server.host 和 elasticsearch.url 這三行的注釋。
server.port: 5601 server.host: "localhost" elasticsearch.url: "http://localhost:9200"
保存并退出。
將 Kibana 設為開機啟動,并且啟動 Kibana 。
sudo systemctl enable kibana sudo systemctl start kibana
Kibana 將作為 node 應用程序運行在端口 5601 上。
netstat -plntu
Kibana running as node application on port 5601
Kibana 安裝到此結束。 現(xiàn)在我們需要安裝 Nginx 并將其配置為反向代理,以便能夠從公共 IP 地址訪問 Kibana。
Nginx 在 Epel 資源庫中可以找到,用 yum 安裝 epel-release。
yum -y install epel-release
然后安裝 Nginx 和 httpd-tools 這兩個包。
yum -y install nginx httpd-tools
httpd-tools 軟件包包含 Web 服務器的工具,可以為 Kibana 添加 htpasswd 基礎認證。
編輯 Nginx 配置文件并刪除 server {} 塊,這樣我們可以添加一個新的虛擬主機配置。
cd /etc/nginx/vim nginx.conf
刪除 server { } 塊。
Remove Server Block on Nginx configuration
保存并退出。
現(xiàn)在我們需要在 conf.d 目錄中創(chuàng)建一個新的虛擬主機配置文件。 用 vim 創(chuàng)建新文件 kibana.conf。
vim /etc/nginx/conf.d/kibana.conf
復制下面的配置。
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; } }
保存并退出。
然后使用 htpasswd 命令創(chuàng)建一個新的基本認證文件。
sudo htpasswd -c /etc/nginx/.kibana-user admin “輸入你的密碼”
測試 Nginx 配置,確保沒有錯誤。 然后設定 Nginx 開機啟動并啟動 Nginx。
nginx -t systemctl enable nginx systemctl start nginx
Add nginx virtual host configuration for Kibana Application
步驟 5 - 安裝和配置 Logstash
在此步驟中,我們將安裝 Logstash,并將其配置為:從配置了 filebeat 的 logstash 客戶端里集中化服務器的日志,然后過濾和轉(zhuǎn)換 Syslog 數(shù)據(jù),并將其移動到存儲中心(Elasticsearch)中。
下載 Logstash 并使用 rpm 進行安裝。
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm rpm -ivh logstash-5.1.1.rpm
生成新的 SSL 證書文件,以便客戶端可以識別 elastic 服務端。
進入 tls 目錄并編輯 openssl.cnf 文件。
cd /etc/pki/tlsvim openssl.cnf
在 [v3_ca] 部分添加服務器標識。
[ v3_ca ] # Server IP Address subjectAltName = IP: 10.0.15.10
保存并退出。
使用 openssl 命令生成證書文件。
openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt
證書文件可以在 /etc/pki/tls/certs/ 和 /etc/pki/tls/private/ 目錄中找到。
接下來,我們會為 Logstash 創(chuàng)建新的配置文件。創(chuàng)建一個新的 filebeat-input.conf 文件來為 filebeat 配置日志源,然后創(chuàng)建一個 syslog-filter.conf 配置文件來處理 syslog,再創(chuàng)建一個 output-elasticsearch.conf 文件來定義輸出日志數(shù)據(jù)到 Elasticsearch。
轉(zhuǎn)到 logstash 配置目錄,并在 conf.d 子目錄中創(chuàng)建新的配置文件。
cd /etc/logstash/vim conf.d/filebeat-input.conf
輸入配置,粘貼以下配置:
input { beats { port => 5443 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" } }
保存并退出。
創(chuàng)建 syslog-filter.conf 文件。
vim conf.d/syslog-filter.conf
粘貼以下配置:
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
我們使用名為 grok 的過濾器插件來解析 syslog 文件。
保存并退出。
創(chuàng)建輸出配置文件 output-elasticsearch.conf。
vim conf.d/output-elasticsearch.conf
粘貼以下配置:
output { elasticsearch { hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
保存并退出。
***,將 logstash 設定為開機啟動并且啟動服務。
sudo systemctl enable logstash sudo systemctl start logstash
Logstash started on port 5443 with SSL Connection
步驟 6 - 在 CentOS 客戶端上安裝并配置 Filebeat
Beat 作為數(shù)據(jù)發(fā)送人的角色,是一種可以安裝在客戶端節(jié)點上的輕量級代理,將大量數(shù)據(jù)從客戶機發(fā)送到 Logstash 或 Elasticsearch 服務器。有 4 種 beat,F(xiàn)ilebeat 用于發(fā)送“日志文件”,Metricbeat 用于發(fā)送“指標”,Packetbeat 用于發(fā)送“網(wǎng)絡數(shù)據(jù)”,Winlogbeat 用于發(fā)送 Windows 客戶端的“事件日志”。
在本教程中,我將向您展示如何安裝和配置 Filebeat,通過 SSL 連接將數(shù)據(jù)日志文件傳輸?shù)?Logstash 服務器。
登錄到客戶端1的服務器上。 然后將證書文件從 elastic 服務器復制到客戶端1的服務器上。
ssh root@client1IP
使用 scp 命令拷貝證書文件。
scp root@elk-serverIP:~/logstash-forwarder.crt . 輸入 elk-server 的密碼
創(chuàng)建一個新的目錄,將證書移動到這個目錄中。
sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/
接下來,在客戶端 1 服務器上導入 elastic 密鑰。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
下載 Filebeat 并且用 rpm 命令安裝。
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm rpm -ivh filebeat-5.1.1-x86_64.rpm
Filebeat 已經(jīng)安裝好了,請轉(zhuǎn)到配置目錄并編輯 filebeat.yml 文件。
cd /etc/filebeat/ vim filebeat.yml
在第 21 行的路徑部分,添加新的日志文件。 我們將創(chuàng)建兩個文件,記錄 ssh 活動的 /var/log/secure 文件 ,以及服務器日志 /var/log/messages 。
paths: - /var/log/secure - /var/log/messages
在第 26 行添加一個新配置來定義 syslog 類型的文件。
document-type: syslog
Filebeat 默認使用 Elasticsearch 作為輸出目標。 在本教程中,我們將其更改為 Logshtash。 在 83 行和 85 行添加注釋來禁用 Elasticsearch 輸出。
禁用 Elasticsearch 輸出:
#-------------------------- Elasticsearch output ------------------------------ #output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
現(xiàn)在添加新的 logstash 輸出配置。 去掉 logstash 輸出配置的注釋,并將所有值更改為下面配置中的值。
output.logstash: # The Logstash hosts hosts: ["10.0.15.10:5443"] bulk_max_size: 1024 ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"] template.name: "filebeat" template.path: "filebeat.template.json" template.overwrite: false
保存文件并退出 vim。
將 Filebeat 設定為開機啟動并啟動。
sudo systemctl enable filebeat sudo systemctl start filebeat
步驟 7 - 在 Ubuntu 客戶端上安裝并配置 Filebeat
使用 ssh 連接到服務器。
ssh root@ubuntu-clientIP
使用 scp 命令拷貝證書文件。
scp root@elk-serverIP:~/logstash-forwarder.crt .
創(chuàng)建一個新的目錄,將證書移動到這個目錄中。
sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/
在服務器上導入 elastic 密鑰。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
下載 Filebeat .deb 包并且使用 dpkg 命令進行安裝。
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb dpkg -i filebeat-5.1.1-amd64.deb
轉(zhuǎn)到配置目錄并編輯 filebeat.yml 文件。
cd /etc/filebeat/ vim filebeat.yml
在路徑配置部分添加新的日志文件路徑。
paths: - /var/log/auth.log - /var/log/syslog
設定文檔類型為 syslog 。
document-type: syslog
將下列幾行注釋掉,禁用輸出到 Elasticsearch。
#-------------------------- Elasticsearch output ------------------------------ #output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
啟用 logstash 輸出,去掉以下配置的注釋并且按照如下所示更改值。
output.logstash: # The Logstash hosts hosts: ["10.0.15.10:5443"] bulk_max_size: 1024 ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"] template.name: "filebeat" template.path: "filebeat.template.json" template.overwrite: false
保存并退出 vim。
將 Filebeat 設定為開機啟動并啟動。
sudo systemctl enable filebeat sudo systemctl start filebeat
檢查服務狀態(tài):
systemctl status filebeat
Filebeat is running on the client Ubuntu
步驟 8 - 測試
打開您的網(wǎng)絡瀏覽器,并訪問您在 Nginx 中配置的 elastic stack 域名,我的是“elk-stack.co”。 使用管理員密碼登錄,然后按 Enter 鍵登錄 Kibana 儀表盤。
Login to the Kibana Dashboard with Basic Auth
創(chuàng)建一個新的默認索引 filebeat-*,然后點擊“創(chuàng)建”按鈕。
Create First index filebeat for Kibana
默認索引已創(chuàng)建。 如果 elastic stack 上有多個 beat,您可以在“星形”按鈕上點擊一下即可配置默認 beat。
Filebeat index as default index on Kibana Dashboard
轉(zhuǎn)到 “發(fā)現(xiàn)” 菜單,您就可以看到 elk-client1 和 elk-client2 服務器上的所有日志文件。
Discover all Log Files from the Servers
來自 elk-client1 服務器日志中的無效 ssh 登錄的 JSON 輸出示例。
JSON output for Failed SSH Login
使用其他的選項,你可以使用 Kibana 儀表盤做更多的事情。
Elastic Stack 已安裝在 CentOS 7 服務器上。 Filebeat 已安裝在 CentOS 7 和 Ubuntu 客戶端上。
到此,相信大家對“怎么在CentOS7上安裝Elastic Stack”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!