ELK日誌收集與監控

1、ELK介紹

分析數據,日誌,統計,聚合分析,瞭解用戶使用使用虛擬機狀況。
openstack使用elk的緣由:組件多日誌多。排查定位問題方便,統一收集錯誤。建立虛擬機時會生成日誌,若出錯會產生日誌,及時創建模型,能夠分析問題。在大量虛擬機環境下,能夠對日誌進行聚合分析,進行業務分析。估算vm建立的最大值,預知用戶在何時建立vm,建立vm失敗狀況。
篩選有價值的日誌塞到elasticsearck中,若是 沒有日誌能夠本身創造日誌,經過腳本的方式。
下一代智能運維:智能報警,預測報警,在問題出現以前進行報警,當呈現某種趨勢時進行報警。

elasticsearch:elasticsearch來存儲日誌信息.Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。作搜索和數據分析,實時的,只支持json格式。作數據分析價值更大。底層是lunce,是java編寫的。html

版本要求:jdk1.8以上,目前版本5.2.2(6.0.0)
ELK二次開發價值比較大。
logstash;數據接口,爲elasticsearch對接外面過來的log數據,它對接的渠道,有kafka,有log文件,有redis等等.Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用
kibana:主要用來作數據展示
預測報警+建模

2、如何安裝部署ELK

環境準備:
一共 七個vm,每一個vm4C8G
前五個運行Elasticsearch,一個裝logstash,一個安裝k。插件bigdesk和head插件。
 
不能直接用root用戶
管理elasticsh集羣的兩個插件:bigdesk和head
部署步驟:
確保java安裝好:
下載java包,解壓縮,配置路徑,source /etc/profile
tar zxf jdk-8u161-linux-x64.tar.gz
[root@controller3 tools]# cat /etc/profile
export JAVA_HOME=/home/seagull/tools/jdk1.8.0_161
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@controller3 tools]# source /etc/profile
下載幾個包,並解壓縮
drwxr-xr-x. 8 root root 4096 Mar 13 18:08 elasticsearch-6.2.3
-rw-r--r--. 1 root root 921421 Apr 3 19:11 elasticsearch-head-master.zip
drwxr-xr-x. 8 10 143 4096 Apr 3 19:06 jdk1.8.0_161
drwxrwxr-x. 12 1000 1000 4096 Mar 13 18:25 kibana-6.2.3-linux-x86_64
drwxr-xr-x. 11 root root 4096 Apr 3 19:15 logstash-6.2.3
elasticsearch目錄結構層次:
elasticsearch-6.2.3/bin/elastcisearch 啓動文件,./elasticsearch -d能夠直接啓動(須要配置好以後才能啓動)
elasticsearch-6.2.3/configure 配置文件
elasticsearch-6.2.3/lib jar包
elasticsearch-6.2.3/plugins 插件
打開最大文件打開數:
vim /etc/sysctl.conf
vm.max_map_count=262144
fs.file-max=1000000
sysctl -p
vim /etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
[root@controller3 tools]# ulimit -Hn
655350
修改以後若是沒有改變,能夠考慮從新啓動。
vim /etc/systemd/system.conf
DefaultLimitNOFILE=1024000
DefaultLimitNPROC=1024000
新建用戶
[root@controller2 tools]# adduser elastic
[root@controller2 tools]# mkdir -p /var/log/elasticsearch #建立目錄
[root@controller2 tools]# mkdir -p /var/lib/elasticsearch/data #存儲elasticsearch數據
更改權限
[root@controller2 tools]# chown -R elastic:elastic /home/seagull/tools/elasticsearch-6.2.3
[root@controller2 tools]# chown -R elastic:elastic /var/log/elasticsearch
[root@controller2 tools]# chown -R elastic:elastic /var/lib/elasticsearch/data
[root@controller2 tools]# passwd elastic
cd /home/seagull/tools/elasticsearch-6.2.3/config
[root@controller2 config]# vim jvm.options
根據實際狀況修改下列參數
-Xms4g
-Xmx4g
[elastic@controller2 config]$ vim elasticsearch.yml
配置文件,內容以下:
cluster.name: openstack_newton
node.name: master-node1 #若是不設置,會隨機生成一個名字
node.master:true #根據節點的狀況設置
node.data:false
action.auto_create_index:true
path.data: /var/lib/elasticsearch/data
path.logs: /var/log/elasticsearch
network.host: 9.110.187.122
http.port: 9200
transport.host:9.110.187.122
transport.tcp.port:9300
discovery.zen.ping.unicast.hosts: ["9.110.187.123"] #綁定除本身以外的全部節點
discovery.zen.minimum_master_nodes: 1
http.cors.enabled:true
http.cors.allow-origin:"*"
注意:權限爲elastic:elastic
啓動服務:
注意:不能在root下啓動,須要切換到elastic用戶下進行啓動。
[elastic@controller2 config]$ /home/seagull/tools/elasticsearch-6.2.3/bin/elasticsearch -d
檢查是否成功:
啓動時出現內存報錯,增長內存解決問題。
elasticsearch目錄下面有四個log後綴的文件
vim openstack_newton.log
tail -f openstack_newton.log
在瀏覽器輸入:ip:9200後有代碼出現
查詢節點狀態:
安裝head插件:
將插件放到master上面。
elasticsearch-head-master
yum install -y httpd #安裝httpd服務
systemctl restart httpd
mv elasticsearch-head-master head
cp -r head/ /var/www/html
在瀏覽器中輸入:ip/head/ #若是不更名,則輸入ip/elasticsearch-head-master
bigdesk的安裝相同。
安裝kibana(也能夠yum安裝)
cd kibana-5.2.2
cd config
vi kinana.yml
server.port:80 #修改以前的端口,確保80沒有被佔用
server.host:"0.0.0.0" #ip地址不是本地地址,若是此處選擇本身本地ip,則上面能夠填5601
elasticsearch.url:"http://9.115.75.81:9200"
kibana.index:".kibana"
啓動:
cd bin
./kibana
screen的安裝和使用
先按ctrl+A,鬆開後再按D
安裝好kibana以後,進入web界面以後,點擊discover報錯,解決方式:須要映射,映射ES中的字段hypervisors_status-*
帶下劃線的是默認的字段,不須要管。
拿到數據分析的是業務層面的,作成折現圖,能夠看到趨勢。
Dev Tools中是一些API的編寫與調用。

3、Logstach介紹

是一個由JRuby語言編寫的運行在java虛擬機上的具備收集,分析和轉發數據流功能的工具。
採集的日誌類型:Apache Logs,Nginx logs,Cloud logs,Event data。
安裝步驟:
一、安裝好JDK
二、源碼包方式安裝
直接下載logstash-1.5.5.tar.gz解壓運行
三、yum方式安裝
rpm --import http://
yum install all
yum install logstash
此處採用的是源碼包安裝方式
cd logstash-5.2.2/bin
./logstash -f
查看配置文件
在logstash-5.2.2目錄下新建conf目錄
使用工具分析日誌:
下圖是經過腳本生成的一些建立虛擬機的信息
配置文件分爲以下結構:input表示日誌從哪裏來,filter表示過濾,可使用一些過濾規則。此處採用的是本地方式導入日誌。
對於多種日誌格式,能夠在下面多寫幾種規則
安裝logstach
[root@controller3 ~]# cd /home/seagull/tools/logstash-6.2.3/bin
[root@controller3 bin]# ./logstash -f
常見pattern:
相關文章
相關標籤/搜索