elk伺服器搭建
㈠ 如何搭建日誌監控系統
ELK(ElasticSearch, Logstash, Kibana)搭建實時日誌分析平台(開源實時日誌分析ELK平台部署)
日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌了解伺服器軟硬體信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以了解伺服器的負荷,性能安全性,從而及時採取措施糾正錯誤。
通常,日誌被分散的儲存不同的設備上。如果你管理數十上百台伺服器,你還在使用依次登錄每台機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有伺服器上的日誌收集匯總。
集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
開源實時日誌分析ELK平台能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多數據源,自動搜索負載等。
Logstash是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其存儲供以後使用(如,搜索)。
kibana也是一個開源和免費的工具,他Kibana可以為 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日誌。 工作原理如下所示:
在需要收集日誌的所有服務上部署logstash,作為logstash agent(logstash shipper)用於監控並過濾收集日誌,將過濾後的內容發送到logstash indexer,logstash indexer將日誌收集在一起交給全文搜索服務ElasticSearch,可以用ElasticSearch進行自定義搜索通過Kibana 來結合自定義搜索進行頁面展示。
四大組件:
Logstash: logstash server端用來搜集日誌;
Elasticsearch: 存儲各類日誌;
Kibana: web化介面用作查尋和可視化日誌;
Logstash Forwarder: logstash client端用來通過lumberjack 網路協議發送日誌到logstash server;
㈡ elk-bledom是什麼東西
ELK-bledom
1、
這是最簡單的一種ELK架構方式。優點是搭建簡單,易於上手。缺點是Logstash耗資源較大,運行佔用CPU和內存高。另外沒有消息隊列緩存,存在數據丟失隱患。
此架構由Logstash分布於各個節點上搜集相關日誌、數據,並經過分析、過濾後發送給遠端伺服器上的Elasticsearch進行存儲。Elasticsearch將數據以分片的形式壓縮存儲並提供多種API供用戶查詢,操作。用戶亦可以更直觀的通過配置Kibana Web方便的對日誌查詢,並根據數據生成報表。
2、
此種架構引入了消息隊列機制,位於各個節點上的Logstash Agent先將數據/日誌傳遞給Kafka(或者Redis),並將隊列中消息或數據間接傳遞給Logstash,Logstash過濾、分析後將數據傳遞給Elasticsearch存儲。最後由Kibana將日誌和數據呈現給用戶。因為引入了Kafka(或者Redis),所以即使遠端Logstash server因故障停止運行,數據將會先被存儲下來,從而避免數據丟失。
㈢ ELK在日誌分析行業的優缺點是什麼
日誌分析領域有關ELK產品的探討、爭議也是非常多的。
zd|先說ELK在日誌分析的優:
1. 強大的搜索功能,elasticsearch可以以分布式搜索的方式快速檢索,而且支持DSL的語法來進行搜索,簡單的說,就是通過類似配置的語言,快速篩選數據。
2. 完美的展示功能,可以展示非常詳細的圖表信息,而且可以定製展示內容,將數據可視化發揮的淋漓盡致。
3. 分布式功能,能夠解決大型集群運維工作很多問題,包括監控、預警、日誌收集解析等。
再說說缺點:
盡管研究一段時間,可以實現部署、測試。但對於中大型企業來說,功能點:告警、許可權管理、關聯分析等還是差之千里。團隊支出需要多少成本,技術人才、時間的投入。
ELK產品需要部署多個產品。ELK指的是多個產品。
推薦一下日誌分析領域日誌易——可視化的海量日誌(實時)搜索分析引擎。目前已經服務上百家大型企業,產品的優點呢是:實時、海量、智能運維、關聯分析、許可權管理、告警等;可以集群化部署!
缺點也有:收費 ,提供SaaS版的免費體驗500MB/天
㈣ 如何在CentOS 7上安裝Elastic Stack
步驟 1 - 操作系統初始化
禁用 CentOS 7 伺服器上的 SELinux
我們將禁用 CentOS 7 伺服器上的 SELinux。 編輯 SELinux 配置文件。
vim /etc/sysconfig/selinux
將 SELINUX 的值從 enforcing改成disabled
SELINUX=disabled
然後重啟伺服器:
reboot
再次登錄伺服器並檢查 SELinux 狀態。
getenforce
disabled
步驟 2 - 安裝 java環境
部署 Elastic stack 依賴於Java,Elasticsearch 需要 Java 8 版本,推薦使用 Oracle JDK 1.8 。從官方的 Oracle rpm 包安裝 Java 8。
wget http://download.oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u77-linux-x64.rpm
\\下載java8的版本
rpm -ivh jdk-8u77-linux-x64.rpm \\rpm安裝jdk環境
java -version \\查看java的版本 檢查能否工作
步驟 3 - 安裝和配置 Elasticsearch
在此步驟中,我們將安裝和配置 Elasticsearch。 從 elastic.co 網站提供的 rpm 包安裝 Elasticsearch,並將其配置運行在 localhost 上(以確保該程序安全,而且不能從外部訪問)。
將 elastic.co 的密鑰添加到伺服器
elastic.co網站是一個https的網站(私有證書),我們需要添加證書秘鑰才能安全的順利下載。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
步驟 3 - 安裝和配置 Elasticsearch
在此步驟中,我們將安裝和配置 Elasticsearch。 從 elastic.co 網站提供的 rpm 包安裝 Elasticsearch,並將其配置運行在 localhost 上(以確保該程序安全,而且不能從外部訪問)。
將 elastic.co 的密鑰添加到伺服器
elastic.co網站是一個https的網站(私有證書),我們需要添加證書秘鑰才能安全的順利下載。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
下載安裝 Elasticsearch 5.1
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm
rpm -ivh elasticsearch-5.1.1.rpm
安裝完成後我們編輯配置文件
配置文件名稱:elasticsaerch.yml
cd /etc/elasticsearch/
vim elasticsearch.yml
bootstrap.memory_lock: true
\\去掉第 40 行的注釋,啟用 Elasticsearch 的內存鎖。這將禁用 Elasticsearch 的內存交換。
network.host: localhost
http.port: 9200
\\在 Network 塊中,取消注釋 network.host 和 http.port 行。
編輯 elasticsearch.service 文件的內存鎖配置。
vim /usr/lib/systemd/system/elasticsearch.service
MAX_LOCKED_MEMORY=unlimited
\\去掉第 60 行的注釋,確保該值為 unlimited。
設置服務啟動
Elasticsearch監聽埠號9200,啟用 CentOS 伺服器上啟用mlockall 來禁用內存交換,設置Elasticsearch開機自啟動,然後啟動服務。
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
檢查對外監聽埠:
netstat -plntu
內存鎖啟用 mlockall,檢查 Elasticsearch 是否正在運行。
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'
步驟 4 - 安裝和配置 Kibana 和 Nginx
先安裝Kibana,然後安裝nginx,最後設置nginx反向代理kibana
安裝並配置Kibana
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: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"
將 Kibana 設為開機啟動
sudo systemctl enable kibana
sudo systemctl start kibana
檢查Kibana 對外監聽埠 5601 確保其正常啟動。
netstat -plntu
安裝並配置nginx伺服器
yum -y install epel-release
nginx 服務的yum包在epel包中可以找的 直接yum安裝
yum -y install nginx httpd-tools
httpd-tools 軟體包包含 Web 伺服器的工具,可以為 Kibana 添加 htpasswd 基礎認證。
編輯 Nginx 配置文件並刪除 server {}模塊,這樣我們添加新的虛擬主機配置。
cd /etc/nginx/
vim nginx.conf
\\刪除 server { } 塊。
創建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 命令創建一個新的基本認證文件。
sudo htpasswd -c /etc/nginx/.kibana-user admin
「輸入你的密碼」
啟動 Nginx。
nginx -t
systemctl enable nginx
systemctl start nginx
步驟 5 - 安裝和配置 Logstash
在此步驟中,我們將安裝 Logstash,並將其配置為:從配置了 filebeat 的 logstash 客戶端里集中化伺服器的日誌,然後過濾和轉換 Syslog 數據,並將其移動到存儲中心(Elasticsearch)中。
下載 Logstash 並使用 rpm 進行安裝。
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm
rpm -ivh logstash-5.1.1.rpm
生成新的 SSL 證書文件,以便客戶端可以識別 elastic 服務端。
cd /etc/pki/tls
\\ 進入 tls 目錄並編輯 openssl.cnf 文件。
vim 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 創建新的配置文件。創建一個新的 filebeat-input.conf 文件來為 filebeat 配置日誌源,然後創建一個
syslog-filter.conf 配置文件來處理 syslog,再創建一個 output-elasticsearch.conf
文件來定義輸出日誌數據到 Elasticsearch。
轉到 logstash 配置目錄,並在 conf.d 子目錄中創建新的配置文件。
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"
}
}
創建 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 文件。
創建輸出配置文件 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
步驟 6 - 在 CentOS 客戶端上安裝並配置 Filebeat
Beat
作為數據發送人的角色,是一種可以安裝在客戶端節點上的輕量級代理,將大量數據從客戶機發送到 Logstash 或 Elasticsearch
伺服器。有 4 種 beat,Filebeat 用於發送「日誌文件」,Metricbeat 用於發送「指標」,Packetbeat
用於發送「網路數據」,Winlogbeat 用於發送 Windows 客戶端的「事件日誌」。
在本教程中,我將向您展示如何安裝和配置 Filebeat,通過 SSL 連接將數據日誌文件傳輸到 Logstash 伺服器。
登錄到客戶端1的伺服器上。 然後將證書文件從 elastic 伺服器復制到客戶端1的伺服器上。
ssh root@client1IP
scp root@elk-serverIP:~/logstash-forwarder.crt .
.....
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 已經安裝好了,請轉到配置目錄並編輯 filebeat.yml 文件。
cd /etc/filebeat/
vim filebeat.yml
\\ 在第 21 行的路徑部分,添加新的日誌文件。 我們將創建兩個文件,記錄 ssh 活動的 /var/log/secure 文件 ,以及伺服器日誌 /var/log/messages :
paths:
- /var/log/secure
- /var/log/messages
\\在第 26 行添加一個新配置來定義 syslog 類型的文件:
document-type: syslog
\\在 83 行和 85 行添加註釋來禁用 Elasticsearch 輸出,更改為 Logshtash:
-------------------------------------------------------------------------------------
#-------------------------- 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
--------------------------------------------------------------------------------------
PS:Filebeat 默認使用 Elasticsearch 作為輸出目標。 在本教程中,我們將其更改為 Logshtash。
將 Filebeat 設定為開機啟動並啟動。
sudo systemctl enable filebeat
sudo systemctl start filebeat
步驟 7 - 在 Ubuntu 客戶端上安裝並配置 Filebeat
從服務端拷貝證書文件
ssh root@ubuntu-clientIP
scp root@elk-serverIP:~/logstash-forwarder.crt .
.......
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
轉到配置目錄並編輯 filebeat.yml 文件。
cd /etc/filebeat/
vim filebeat.yml
\\ 在第 21 行的路徑部分,添加新的日誌文件。 我們將創建兩個文件,記錄 ssh 活動的 /var/log/secure 文件 ,以及伺服器日誌 /var/log/messages :
paths:
- /var/log/secure
- /var/log/messages
\\在第 26 行添加一個新配置來定義 syslog 類型的文件:
document-type: syslog
\\在 83 行和 85 行添加註釋來禁用 Elasticsearch 輸出,更改為 Logshtash:
-------------------------------------------------------------------------------------
#-------------------------- 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
--------------------------------------------------------------------------------------
PS:Filebeat 默認使用 Elasticsearch 作為輸出目標。 在本教程中,我們將其更改為 Logshtash。
將 Filebeat 設定為開機啟動並啟動。
sudo systemctl enable filebeat
sudo systemctl start filebeat
檢查服務狀態:
systemctl status filebeat
打開您的網路瀏覽器,並訪問您在 Nginx 中配置的 elastic stack 域名,我的是「elk-stack.co」。 使用管理員密碼登錄,然後按 Enter 鍵登錄 Kibana 儀表盤。
創建一個新的默認索引 filebeat-*,然後點擊「創建」按鈕。
默認索引已創建。 如果 elastic stack 上有多個 beat,您可以在「星形」按鈕上點擊一下即可配置默認 beat。
轉到 「發現」 菜單,您就可以看到 elk-client1 和 elk-client2 伺服器上的所有日誌文件。
來自 elk-client1 伺服器日誌中的無效 ssh 登錄的 JSON 輸出示例。
使用其他的選項,你可以使用 Kibana 儀表盤做更多的事情。
Elastic Stack 已安裝在 CentOS 7 伺服器上。 Filebeat 已安裝在 CentOS 7 和 Ubuntu 客戶端上。
㈤ 如何配置 Topbeat並使用 Kibana 進行集中化檢視
配置 Topbeat
在這一步中,我們將配置 Topbeat 使它連接到 ELK 伺服器上的 Logstash 上去。這一節中我們將通過修改 Topbeat 的默認配置文件來完成對 Topbeat 的配置。
在客戶端上打開 Topbeat 的配置文件:
sudo vi /etc/topbeat/topbeat.yml
注意:Topbeat 的配置文件是 YAML 格式,所以其對格式的要求非常高,注意要採用與原配置文件相同的縮進格式。
在該配置文件的首部是input小節,在這一小節中,你需要指定你要把什麼類型的統計數據傳到你的 ELK 伺服器上,並且指定這些統計數據的單位。在這里我們將使用默認配置,但如果有需要的話你也可以自己做出更改。
在output小節下面,找到內容為elasticsearch:的一行,其下面的代碼配置了 Elasticsearch 輸出,這是我們不需要用到的,刪除或者注釋掉他們(直到#logstash:的上面一行)。
然後找到被注釋掉的 Logstash 輸出語句#logstash:,去掉它的注釋使它能夠作用。
同時,去掉hosts: ["localhost:5044"]的注釋,並且將localhost換成你 ELK 伺服器的 IP 地址
㈥ elk 如何創建新的索引
創建kibana索引
若只需要收集顯示nginx的訪問日誌,則可以建立一個名為nginx+時間的索引
若是需要收集一個伺服器下的多個服務日誌,則可以在一個conf下添加多個input並根據type來區分和實現
環境
192.168.2.112 ES/kibana
192.168.2.118 logstash/nginx
192.168.2.117 logstash/mysql/nginx
建立nginx索引
- input {
- file {
- path => "/usr/local/nginx/logs/access.log"
- type => "nginx"
- }
- }
- output {
- elasticsearch {
- hosts => "192.168.2.112:9200"
- index => "nginx-%{+YYYY.MM.dd}"
- }
- }12345678910111213
- [root@localhost etc]# pwd/usr/local/logstash/etc
- [root@localhost etc]# ../bin/logstash -f nginxlog.conf1234
收集nginx日誌和mysql日誌
- scp -r logstash/* [email protected]:/usr/local/logstash1
- input {
- file {
- path => "/usr/local/nginx/logs/access.log"
- type => "nginx"
- }
- }
- input {
- file {
- path => "/var/log/mysqld.log"
- type => "mysql"
- }
- }
- output { if [type] == "nginx"{
- elasticsearch {
- hosts => "192.168.2.112:9200"
- index => "nginx-%{+YYYY.MM.dd}"
- }
- }if [type] == "mysql"{
- elasticsearch {
- hosts => "192.168.2.112:9200"
- index => "mysql-%{+YYYY.MM.dd}"
- }
- }
- }
- [root@host107 etc]# pwd/usr/local/logstash/etc
- [root@host107 etc]# ../bin/logstash -f all.conf1234
1)在118服的logstash/etc目錄下建立的nginxlog.conf,添加
其中,index即代表對應的索引名稱
2)然後啟動logstash
3)登陸kibana設置索引
4)然後手動訪問nginx頁面後,可以在kibana的discover界面看到
1)把118服的logstash目錄復制到117服對應目錄下
2)在117服logstash/etc目錄下建立all.conf
3)在kibana頁面建立mysql索引
4)啟動logstash
5)然後啟動及關閉mysql服務,就可以看到日誌數據
6)同樣的,訪問nginx頁面後,也會收到nginx日誌數據
備註:
1)其中上面的host列顯示0.0.0.0,是因為沒有設置主機名,在/etc/hosts下加上
127.0.0.1 hostmysqlnginx
然後hostname hostmysqlnginx
重啟下logstash,就可以看到host
㈦ 如何在CentOS 7上使用Packetbeat和ELK收集基礎結構指標
您的ELK伺服器將需要的CPU,RAM和存儲量取決於您要收集的日誌的卷。在本教程中,我們將使用具有以下規格的VPS用於我們的ELK伺服器:
OS: CentOS 7
RAM: 4GB
CPU: 2
註:根據自己的伺服器資源分配各個節點的資源
安裝 Java 8
Elasticsearch和Logstash需要Java,所以我們現在就安裝它。我們將安裝最新版本的Oracle Java 8,因為這是Elasticsearch推薦的版本。
㈧ 如何在CentOS 7上安裝Elasticsearch,Logstash和Kibana
您的ELK伺服器將需要的CPU,RAM和存儲量取決於您要收集的日誌的卷。在本教程中,我們將使用具有以下規格的VPS用於我們的ELK伺服器:
OS: CentOS 7
RAM: 4GB
CPU: 2
註:根據自己的伺服器資源分配各個節點的資源
安裝 Java 8
Elasticsearch和Logstash需要Java,所以我們現在就安裝它。我們將安裝最新版本的Oracle Java 8,因為這是Elasticsearch推薦的版本。
註:建議本地下載完最新版的JDK,然後上傳到伺服器的/usr/local/src目錄
# JDK下載地址:
http://www.oracle.com/technetwork/java/javase/downloads
123123
然後使用此yum命令安裝RPM(如果您下載了不同的版本,請在此處替換文件名):
yum -y localinstall jdk-8u111-linux-x64.rpm
# or
rpm -ivh jdk-8u111-linux-x64.rpm123123
現在Java應該安裝在/usr/java/jdk1.8.0_111/jre/bin/java,並從/usr/bin/java 鏈接。
安裝 Elasticsearch
Elasticsearch可以通過添加Elastic的軟體包倉庫與軟體包管理器一起安裝。
運行以下命令將Elasticsearch公共GPG密鑰導入rpm:
# https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch123123
在基於RedHat的發行版的/etc/yum.repos.d/目錄中創建一個名為elasticsearch.repo的文件,其中包括:
echo '[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/elasticsearch.repo123456789123456789
Elasticsearch 源創建完成之後,通過makecache查看源是否可用,然後通過yum安裝Elasticsearch :
yum makecache
yum install elasticsearch -y1212
要將Elasticsearch配置為在系統引導時自動啟動,請運行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service1212
Elasticsearch可以按如下方式啟動和停止:
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service1212
這些命令不會提供有關Elasticsearch是否已成功啟動的反饋。相反,此信息將寫入位於/ var / log / elasticsearch /中的日誌文件中。
默認情況下,Elasticsearch服務不會記錄systemd日誌中的信息。要啟用journalctl日誌記錄,必須從elasticsearch中的ExecStart命令行中刪除–quiet選項。服務文件。
# 注釋24行的 --quiet \
vim /etc/systemd/system/multi-user.target.wants/elasticsearch.service1212
當啟用systemd日誌記錄時,使用journalctl命令可以獲得日誌記錄信息:
使用tail查看journal:
sudo journalctl -f11
要列出elasticsearch服務的日記帳分錄:
sudo journalctl --unit elasticsearch11
要從給定時間開始列出elasticsearch服務的日記帳分錄:
sudo journalctl --unit elasticsearch --since "2017-1-4 10:17:16"
# since 表示指定時間之前的記錄123123
使用man journalctl 查看journalctl 更多使用方法
檢查Elasticsearch是否正在運行
您可以通過向localhost上的埠9200發送HTTP請求來測試Elasticsearch節點是否正在運行:
curl -XGET 'localhost:9200/?pretty'
1212
我們能得到下面這樣的回顯:
{
"name" : "De-LRNO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "DeJzplWhQQK5uGitXr8jjA",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
配置 Elasticsearch
Elasticsearch 從默認的/etc/elasticsearch/elasticsearch.yml載入配置文件,
配置文件的格式考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.1.1.53 # 默認localhost,自定義為ip
http.port: 920012345671234567
RPM還具有系統配置文件(/etc/sysconfig/elasticsearch),允許您設置以下參數:
[root@linuxprobe elasticsearch]# egrep -v "^#|^$" /etc/sysconfig/elasticsearch
ES_HOME=/usr/share/elasticsearch
JAVA_HOME=/usr/java/jdk1.8.0_111
CONF_DIR=/etc/elasticsearch
DATA_DIR=/var/lib/elasticsearch
LOG_DIR=/var/log/elasticsearch
PID_DIR=/var/run/elasticsearch12345671234567
日誌配置
Elasticsearch使用Log4j 2進行日誌記錄。 Log4j 2可以使用log4j2配置。屬性文件。 Elasticsearch公開單個屬性$ {sys:es。日誌},可以在配置文件中引用以確定日誌文件的位置;這將在運行時解析為Elasticsearch日誌文件的前綴。
例如,如果您的日誌目錄是/var/log/elasticsearch並且您的集群名為proction,那麼$ {sys:es。 logs}將解析為/var/log/elasticsearch/proction。
默認日誌配置存在:/etc/elasticsearch/log4j2.properties
安裝 Kibana
Kibana的RPM可以從ELK官網或從RPM存儲庫下載。它可用於在任何基於RPM的系統(如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise)上安裝Kibana。
導入Elastic PGP Key
我們使用彈性簽名密鑰(PGP密鑰D88E42B4,可從https://pgp.mit.e)簽名所有的包,指紋:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch11
創建kibana源
echo '[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/kibana.repo123456789123456789
kibana源創建成功之後,makecache後使用yum安裝kibana:
yum makecache && yum install kibana -y11
使用systemd運行Kibana
要將Kibana配置為在系統引導時自動啟動,請運行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service1212
Kibana可以如下啟動和停止
sudo systemctl start kibana.service
sudo systemctl stop kibana.service1212
配置Kibana
Kibana默認從/etc/kibana/kibana.yml文件載入其配置。
參考:https://www.elastic.co/guide/en/kibana/current/settings.html
注意:本實驗教程把localhost都改成伺服器IP,如果不更改localhost,需要設置反向代理才能訪問到kibana。
在同一伺服器上安裝一個Nginx反向代理,以允許外部訪問。
安裝nginx
配置Kibana在localhost上監聽,必須設置一個反向代理,允許外部訪問它。本文使用Nginx來實現發向代理。
創建nginx官方源來安裝nginx
# https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
echo '[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
' | sudo tee /etc/yum.repos.d/nginx.repo1234567812345678
使用yum安裝nginx和httpd-tools
yum install nginx httpd-tools -y11
使用htpasswd創建一個名為「kibanaadmin」的管理員用戶(可以使用其他名稱),該用戶可以訪問Kibana Web界面:
[root@linuxprobe ~]# htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
New password: # 自定義
Re-type new password:
Adding password for user kibanaadmin12341234
使用vim配置nginx配置文件
[root@linuxprobe ~]# egrep -v "#|^$" /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name kibana.aniu.co;
access_log /var/log/nginx/kibana.aniu.co.access.log main;
error_log /var/log/nginx/kibana.aniu.co.access.log;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
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;
}
}
㈨ elk集群可以用多台redis伺服器作隊列輸出到elasticsearch嗎
1. redis中保存的是數組(序列化),絕對不要保存SQL,保存SQL的方法很蛋疼 保存數組是為了資料庫安全(萬一sql語句有錯誤,任務就直接失敗了),靈活度和兼容性
2.伺服器後台作一個shell腳本,死循環,不斷從隊列中取數據,進行處理.如次反復,如果沒有數據,也立即嘗試取數據---不要擔心性能問題,後台單並發請求,不會造成性能問題
3.因為隊列中保存的是數組,不存在這個問題
㈩ elk是什麼
「ELK」是三個開源項目的首字母縮寫,這三個項目分別是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一個搜索和分析引擎。Logstash 是伺服器端數據處理管道,能夠同時從多個來源採集數據,轉換數據,然後將數據發送到諸如 Elasticsearch 等「存儲庫」中。Kibana 則可以讓用戶在 Elasticsearch 中使用圖形和圖表對數據進行可視化。