中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

搭建ELK實時日志分析平臺

發布時間:2020-06-21 12:59:59 來源:網絡 閱讀:511 作者:居思涵 欄目:云計算

一、ELK簡介

ELK是一套完整的日志分析解決方案,由ElasticSearch、Logstash、Kibana這三款開源軟件組成。Elasticstash是基于Lucene開發的分布式存儲檢索引擎,用來存儲各類日志;Logstash對日志進行收集、分析,并將其存儲供以后使用;Kibana是基于Node.js開發的展示工具,為Logstash和ElasticSearch提供用于日志展示的Web界面,還用于幫助匯總、分析和搜索重要日志數據。
ELK的工作原理如下:
在所有需要收集日志的服務上部署Logstash,作為Logstash agent用于監控并過濾所收集的日志,將過濾后的內容整合在一起,最終全部交給ElasticSearch檢索引擎;可以用ElasticSearch進行自定義搜索,在通過kibana結合自定義搜索內容生成圖標,進行日志數據展示。
搭建ELK實時日志分析平臺

二、搭建環境

兩臺CenostOS 7
IP:192.168.80.100 安裝:elasticsearch、logstash、Kibana
IP:192.168.80.110 安裝:elasticsearch

三、部署ElasticSearch

Elasticsearch是實時全文搜索和分析引擎,提供搜集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分布式系統。它構建于Apache Lucene搜索引擎庫之上。
1、安裝ElasticSearch

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch      //安裝elasticsearch的yum源密鑰
vi /etc/yum.repos.d/elasticsearch.repo      //配置elasticsearch的yum源

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1

yum install elasticsearch -y        //安裝
yum install java -y     //安裝java環境必須是1.8以上
java -version   //查看版本

搭建ELK實時日志分析平臺
vi /etc/elasticsearch/elasticsearch.yml //修改配置文件
17行 集群名稱
cluster.name: abner
23行 節點名稱
node.name: linux-node1
33行 修改data和日志存放的路徑
path.data: /data/es-data
path.logs: /var/log/elasticsearch/
43行 防止交換swap分區
bootstrap.memory_lock: true
54行 開啟監聽網絡
network.host: 0.0.0.0
58行 開啟監聽的端口
http.port: 9200

mkdir -p /data/es-data  //新建data存放目錄
chown -R elasticsearch:elasticsearch /data/es-data  //修改目錄權限
systemctl start elasticsearch       //啟動服務
netstat -ntap | grep 9200   //查看端口狀態

搭建ELK實時日志分析平臺
瀏覽器訪問測試頁192.168.80.100:9200
搭建ELK實時日志分析平臺
2、實現與ElasticSearch交互
第一種:JAVA APO
第二種:RESTful API(通過json格式 交互)

curl -i -XGET 'http://192.168.80.100:9200/_count?pretty' -d '{
"query": {
    "match_all": {}
}
}'

搭建ELK實時日志分析平臺
3、安裝elasticsearch-head插件
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head //安裝插件,該安裝方式是從git的方式拉取的也可以用docker pull
瀏覽器訪問測試插件是否安裝成功
http://192.168.80.100:9200/_plugin/head/
搭建ELK實時日志分析平臺
4、ElasticSearch集群部署(在另外一臺虛擬機上安裝)
1)安裝ElasticSearch(步驟同上)
2)Linux-node1開啟集群自動發現機制
vi /etc/elasticsearch/elasticsearch.yml //修改配置文件
搭建ELK實時日志分析平臺
systemctl restart elasticsearch //重啟node1服務
3)Linux-node2開啟集群自動發現機制
vi /etc/elasticsearch/elasticsearch.yml //修配置文件
搭建ELK實時日志分析平臺
systemctl restart elasticsearch //重啟node2服務
4)瀏覽器訪問會看到主節點和副節點
http://192.168.80.100:9200/_plugin/head/
搭建ELK實時日志分析平臺
5、安裝監控組件
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf //安裝
瀏覽器訪問監控頁面
http://192.168.80.100:9200/_plugin/kopf/#!/cluster
搭建ELK實時日志分析平臺

四、部署Logstash

Logstash是一個用來搜集、分析、過濾日志的工具。它支持幾乎任何類型的日志,包括系統日志、錯誤日志和自定義應用程序日志。它可以從許多來源接收日志,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。
1、安裝Logstash

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch      //下載yum源密鑰
vim logstash.repo       //配置logstash的yum源

[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1

yum install logstash -y //安裝
2、Logstash的使用

ln -s /opt/logstash/bin/logstash /usr/bin/  //對logstash命令做軟連接
logstash -e 'input { stdin{} } output { stdout{} }' //執行logstash命令定義輸入和輸出流,類似管道

搭建ELK實時日志分析平臺
注釋: -e:執行操作
input:標準輸入
{ input }:插件
output:標準輸出
{ stdout }:插件

logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } }' //通過rubydebug來輸出下更詳細的信息
搭建ELK實時日志分析平臺
logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.80.100:9200"] } stdout { codec => rubydebug } }' //輸入到elasticsearch中
搭建ELK實時日志分析平臺
http://192.168.80.100:9200/_plugin/head/ //訪問elastic的web頁面查看
搭建ELK實時日志分析平臺
3、Logstash配置文件的使用
vi 01-logstash.conf //編輯配置文件收集系統日志
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}

output {
elasticsearch {
hosts => ["192.168.175.132:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}

logstash -f 01-logstash.conf //指定配置文件進行過濾匹配
搭建ELK實時日志分析平臺
vi 02-logstash.conf //編輯配置文件同時收集系統日志和安全日志
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
file {
path => "/var/log/secure"
type => "secure"
start_position => "beginning"
}
}

output {
if [type] == "system" {
elasticsearch {
hosts => ["192.168.1.202:9200"]
index => "nagios-system-%{+YYYY.MM.dd}"
}
}
if [type] == "secure" {
elasticsearch {
hosts => ["192.168.1.202:9200"]
index => "nagios-secure-%{+YYYY.MM.dd}"
}
}
}
logstash -f 02-logstash.conf //指定配置文件進行過濾匹配
搭建ELK實時日志分析平臺

五、部署Kibana

Kibana是一個基于Web的圖形界面,用于搜索、分析和可視化存儲在 Elasticsearch指標中的日志數據。它利用Elasticsearch的REST接口來檢索數據,不僅允許用戶創建他們自己的數據的定制儀表板視圖,還允許他們以特殊的方式查詢和過濾數據。
1、下載安裝Kibana

wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz        //下載kibana程序包
tar zxvf kibana-4.3.1-linux-x64.tar.gz  //解壓
mv kibana-4.3.1-linux-x64/ /usr/local/kibana    //將程序包移動并且改名
vi /usr/local/kibana/config/kibana.yml      //修改配置文件

#服務端口
server.port: 5601
#服務地址
server.host: "0.0.0.0"
#elasticsearch對應的地址和端口
elasticsearch.url: "http://192.168.175.132:9200"
#數據字段類型
kibana.index: ".kibana"

yum install screen -y   //安裝screen,以便于kibana在后臺運行(當然也可以不用安裝,用其他方式進行后臺啟動)
/usr/local/kibana/bin/kibana        //啟動
netstat -antp |grep 5601    //監聽端口

2、瀏覽器訪問192.168.80.100:5601
填寫對應的日志索引
搭建ELK實時日志分析平臺
點擊Discover根據時間選擇器來篩選日志
搭建ELK實時日志分析平臺

六、ELK實戰

輸出nginx、apache、message、secrue的日志到前臺展示
1、編輯nginx配置文件,修改以下內容(在http模塊下添加)

log_format json '{"@timestamp":"$time_iso8601",''"@version":"1",'
br/>'"@version":"1",'
'"url":"$uri",'
'"status":"$status",'
'"domian":"$host",'
'"host":"$server_addr",'
'"size":"$body_bytes_sent",'
'"responsetime":"$request_time",'
'"referer":"$http_referer",'
'"ua":"$http_user_agent"'
'}';

修改access_log的輸出格式為剛才定義的json
access_log logs/elk.access.log json;

2、修改apache的配置文件

LogFormat "{ \
\"@timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \
\"@version\": \"1\", \
\"tags\":[\"apache\"], \
\"message\": \"%h %l %u %t \\"%r\\" %>s %b\", \
\"clientip\": \"%a\", \
\"duration\": %D, \
\"status\": %>s, \
\"request\": \"%U%q\", \
\"urlpath\": \"%U\", \
\"urlquery\": \"%q\", \
\"bytes\": %B, \
\"method\": \"%m\", \
\"site\": \"%{Host}i\", \
\"referer\": \"%{Referer}i\", \
\"useragent\": \"%{User-agent}i\" \
}" ls_apache_json

一樣修改輸出格式為上面定義的json格式
CustomLog logs/access_log ls_apache_json;

3、編輯logstash配置文件,進行日志收集
vi full.conf //編輯日志收集配置文件
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
file {
path => "/var/log/secure"
type => "secure"
start_position => "beginning"
}
file {
path => "/var/log/httpd/access_log"
type => "http"
start_position => "beginning"
}
file {
path => "/usr/local/nginx/logs/elk.access.log"
type => "nginx"
start_position => "beginning"
}

}
output {
if [type] == "system" {
elasticsearch {
hosts => ["192.168.80.100:9200"]
index => "nagios-system-%{+YYYY.MM.dd}"
}
}
if [type] == "secure" {
elasticsearch {
hosts => ["192.168.80.100:9200"]
index => "nagios-secure-%{+YYYY.MM.dd}"
}
}
if [type] == "http" {
elasticsearch {
hosts => ["192.168.80.100:9200"]
index => "nagios-http-%{+YYYY.MM.dd}"
}
}
if [type] == "nginx" {
elasticsearch {
hosts => ["192.168.80.100:9200"]
index => "nagios-nginx-%{+YYYY.MM.dd}"
}
}
}

logstash -f /etc/logstash/conf.d/full.conf //運行logstash過濾日志并且訪問elasticsearch的web頁面查看

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长泰县| 临清市| 翼城县| 色达县| 盖州市| 北宁市| 嘉义县| 雷波县| 蓬溪县| 高密市| 桂林市| 潜山县| 安福县| 贵南县| 徐汇区| 安西县| 余干县| 汕尾市| 定边县| 高雄市| 台山市| 长顺县| 盐山县| 禹城市| 福建省| 新龙县| 丹东市| 长寿区| 祁阳县| 奉新县| 沙雅县| 望谟县| 宁都县| 本溪市| 青龙| 罗城| 临颍县| 金山区| 中方县| 永平县| 富阳市|