ELK環境搭建


ELK 學習筆記
一、學習ELK之前,先了解一下什么是ELK;
ELK是由 Elasticsearch、Logstash和Kibana 三部分組件組成。
Elasticsearch 是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash 是一個完全開源的工具,它可以對你的日志進行收集、分析,並將其存儲供以后使用 

Kibana 是一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數據日志。

Filebeat 是用於單用途數據托運人的平台。它們以輕量級代理的形式安裝,並將來自成百上千台機器的數據發送到 Logstash 或 Elasticsearch,可以替換Logstash的客戶端搜集日志信息,降低Logstash客戶端搜集日志的性能消耗問題。

二、環境安裝
注意安裝時必須保證版本的一致性,避免出現兼容問題(我選擇的是7.1.1),同時采用docker的形式搭建環境;
安裝之前先通過docker創建一個ELK環境的自定義網絡,方便后期通信
docker network create mynetwork
1.安裝ES
# 下載鏡像 查看鏡像
docker pull elasticsearch:7.1.1
docker images
 
#docker run 啟動
docker run -d --name es --net mynetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1
# 配置掛載啟動方式
sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPS="-Xms256m -Xmx256m" \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.1.1
注意:
chmod -R 777 /data/elasticsearch
要有訪問權限
https://segmentfault.com/a/1190000023605284?utm_source=tag-newest

#docker ps查看容器狀態 # 檢測 elasticsearch 是否啟動成功 curl 127.0.0.1:9200
設置配置文件x-pck登陸驗證:
修改elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0

xpack.security.enabled: true   #這一步是開啟x-pack插件
在bin文件夾下
elasticsearch-setup-passwords interactive     #此步為手動設置密碼
然后設置密碼即可

2.安裝Kibana # 下載鏡像 查看鏡像 docker pull kibana:7.1.1 docker images # 運行 Kibana docker run -d --name es_kibana --net mynetwork -p 5601:5601 kibana:7.1.1 # 查看容器啟動狀態 docker ps 修改kibana配置kibana.yml設置連接es的密碼:

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://es:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

elasticsearch.username: "elastic"

  elasticsearch.password: "123456"

修改 hosts 為es的container 名字

3.安裝Logstash
# 下載鏡像 查看鏡像 docker pull logstash:7.1.1 docker images
docker run -it -d -p 5044:5044 --name logstash --net mynetwork -v {自定義主機掛載目錄}/logstash.yml:/usr/share/logstash/config/logstash.yml -v {自定義主機掛載目錄}/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1
#通過docker exec修改配置
docker exec -it es_logstash /bin/bash
#logstash.yml
http.host: "0.0.0.0"
找到"/usr/share/logstash/pipeline"的logstash.conf
修改redis輸入源配置:
input {
        redis {
           host => "ip"
           port => "6379"
           db => "0"
           password => "***"
           key => "logstash-***"
           data_type => "list"
        }
}
filter {
  #定義數據的格式

}
output {
   elasticsearch{
     hosts=> "http://es:9200" # es文件名不要帶_
     index => "logstash-***-%{+yyyy.MM}"
  user => "elastic"
     password =>  "123456"

} } 到此ELK環境基本搭建完畢(采用的redis輸入源代替filebeat) 三、項目使用 引入pom依賴 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> <!-- <classifier>jr</classifier>--> </dependency> <!-- ELK日志系統需要的包 --> <!-- ELK日志系統需要的包 里面包含redis.clients--> <dependency> <groupId>com.cwbase</groupId> <artifactId>logback-redis-appender</artifactId> <version>1.1.5</version> </dependency> 添加logback-spring.xml日志配置: <appender name="LOG_STASH" class="com.cwbase.logback.RedisAppender"> <source>***</source> <type>online</type> <host>127.0.0.1</host> <port>6379</port> <password>***</password> <key>logstash-***</key> <tags>online</tags> <mdc>true</mdc> <location>true</location> <callerStackIndex>0</callerStackIndex> </appender>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM