ELK日誌收集與監控
阿新 • • 發佈:2018-06-25
.data ear sta 直接下載 fig logstach apr jdk 估算
版本要求:jdk1.8以上,目前版本5.2.2(6.0.0)
ELK二次開發價值比較大。
logstash;數據接口,為elasticsearch對接外面過來的log數據,它對接的渠道,有kafka,有log文件,有redis等等.Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其存儲供以後使用
kibana:主要用來做數據展現
預測報警+建模
[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的編寫與調用。
一、ELK介紹
分析數據,日誌,統計,聚合分析,了解用戶使用使用虛擬機情況。 openstack使用elk的原因:組件多日誌多。排查定位問題方便,統一收集錯誤。創建虛擬機時會生成日誌,若出錯會產生日誌,及時建立模型,可以分析問題。在大量虛擬機環境下,可以對日誌進行聚合分析,進行業務分析。估算vm創建的最大值,預知用戶在什麽時候創建vm,創建vm失敗情況。 篩選有價值的日誌塞到elasticsearck中,如果 沒有日誌可以自己創造日誌,通過腳本的方式。 下一代智能運維:智能報警,預測報警,在問題出現之前進行報警,當呈現某種趨勢時進行報警。elasticsearch:elasticsearch來存儲日誌信息.Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。做搜索和數據分析,實時的,只支持json格式。做數據分析價值更大。底層是lunce,是java編寫的。
二、如何安裝部署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三、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-patternsELK日誌收集與監控