寫在前面
首先,最好的學(xué)習(xí)方式是:看官網(wǎng)!版本更新后,有些接口會跟著改變,因此官網(wǎng)是最好的指導(dǎo)書!
其次,出現(xiàn)問題時,1.看log! 2. 看官網(wǎng)!
我的系統(tǒng)架構(gòu)
先介紹一下我的系統(tǒng)架構(gòu),以便參考。
需求:收集線上服務(wù)器的各種log,然后分析并可視化,對某些級別的log進(jìn)行告警。
痛點:1)線上服務(wù)器較多,較分散
?。玻﹍og比較龐大
根據(jù)我的需求,采用了以下架構(gòu)。
1) files ---> logstash --> redis
2) redis--> logstash --> elasticsearch --> kibana
首先,要收集的logfile分布在不同的服務(wù)器上,通過logstash將不同服務(wù)器的logfile收集到redis.
然后,再使用logstash從redis中讀取log,到es cluster,從而通過kibana可視化輸出。
這樣做,可以使得收集log和處理log解耦,以免一邊出錯帶來的影響。
注:我的系統(tǒng)為ubuntu16.04
前提條件
?ELK基于jdk,因此需要先安裝jdk.本文使用源碼安裝。?
?1. 下載jdk?
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
?2. 解壓?
? tar xzvf jdk-8u144-linux-x64.tar.gz?
?3. 配置環(huán)境變量?
? sudo vi /etc/profile?
? 在最后加入:?
? export JAVA_HOME=/home/radmin/Software/jdk1.8.0_144?
?export PATH=$JAVA_HOME/bin:$PATH?
?4. 加載環(huán)境變量使之生效?
? source /etc/profile?
?5. 檢查java安裝是否OK?
? java --version
ELK安裝及配置
本文僅介紹源碼安裝
1. 下載源碼elasticsearch, logstash, kibana
https://www.elastic.co/downloads
elasticsearch-6.3.1.tar.gz
kibana-6.3.1-linux-x86_64.tar.gz?
logstash-6.3.2.tar.gz
2. 解壓包
?tar xzvf?elasticsearch-6.3.1.tar.gz
?tar xzvf?kibana-6.3.1-linux-x86_64.tar.gz?
?tar xzvf?logstash-6.3.2.tar.gz
3. 下載redis并安裝配置
sudo apt-get install redis-server
安裝完,通過以下命令查看安裝是否成功
ps -ef | grep redis
? ? ? ? redis ? ? 18628? ? 1? 0 18:42 ?? ? ? ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379
修改配置文件,設(shè)置密碼,并修改IP
sudo vim /etc/redis/redis.conf
? ? ? ? bind <your_IP>
? ? ? ? requirepass <your_password>
重啟redis
sudo service redis restart
查看進(jìn)程:
ps -ef|grep redis
? ? ? ? redis ? ?18628? ? 1? 0 18:42 ?? ? ? ? 00:00:00 /usr/bin/redis-server <your_ip>:6379
4. 配置ELK
1) Elasticsearch
vi config/elasticsearch.yaml
? ? ? ?cluster.name: <your_cluster>
? ? ? ?node.name: <your_ip>
? ? ? ?path.data: /home/elastic/data
? ? ? ? path.logs: /home/elastic/logs
? ? ? ? network.host: 0.0.0.0
? ? ? ? http.port: 9200
? ? ? ? discovery.zen.ping.unicast.hosts: ["your_host"]
啟動elasticsearch
nohup ./elasticsearch -d
2) Kibana
vi config/kibana.yml
server.port: 5601
server.host: "<your_host>"
elasticsearch.url: "http://<your_host>:9200"
啟動kibana
nohup ./kibana &
3) Logstash
添加配置文件(關(guān)于logstash的配置文件,在后續(xù)章節(jié)中記錄)
nohup bin/logstash -f xxx.conf --config.reload.automatic &
問題:
1) 起elasticsearch時報錯:
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
sudo vi /etc/sysctl.conf
vm.max_map_count=655300
sudo sysctl -p