1. 程式人生 > >ELK日誌收集與監控

ELK日誌收集與監控

.data ear sta 直接下載 fig logstach apr jdk 估算

一、ELK介紹

分析數據,日誌,統計,聚合分析,了解用戶使用使用虛擬機情況。 openstack使用elk的原因:組件多日誌多。排查定位問題方便,統一收集錯誤。創建虛擬機時會生成日誌,若出錯會產生日誌,及時建立模型,可以分析問題。在大量虛擬機環境下,可以對日誌進行聚合分析,進行業務分析。估算vm創建的最大值,預知用戶在什麽時候創建vm,創建vm失敗情況。 篩選有價值的日誌塞到elasticsearck中,如果 沒有日誌可以自己創造日誌,通過腳本的方式。 下一代智能運維:智能報警,預測報警,在問題出現之前進行報警,當呈現某種趨勢時進行報警。 技術分享圖片

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

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

二、如何安裝部署ELK

環境準備: 一共 七個vm,每個vm4C8G 前五個運行Elasticsearch,一個裝logstash,一個安裝k。插件bigdesk和head插件。 不能直接用root用戶 下載位置:http://www.elastic.co/downloads screen介紹:http://man.linuxde.net/screen 管理elasticsh集群的兩個插件:bigdesk和head https://www.cnblogs.com/hunttown/p/5450556.html 部署步驟: 確保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的編寫與調用。

三、Logstach介紹

是一個由JRuby語言編寫的運行在java虛擬機上的具有收集,分析和轉發數據流功能的工具。 采集的日誌類型:Apache Logs,Nginx logs,Cloud logs,Event data。 安裝步驟: 1、安裝好JDK 2、源碼包方式安裝 直接下載logstash-1.5.5.tar.gz解壓運行 3、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: https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

ELK日誌收集與監控