Elasticsearch+Kibana日誌分析系統搭建

Donjan發表於2019-12-10

由於我們的服務分佈在各個節點,日誌寫入本地已經不能很好的訪問了,所以需要一個日誌中心集中分析日誌,本來Elasticsearch+Kibana+Logstash是一整套,但我們目前使用的兩個框架已經可以直接寫入日誌到Elasticsearch,所以不需要Logstash了。

安裝Elasticsearch

在管理節點主機修改vm.max_map_count

vim /etc/sysctl.conf #加一行
vm.max_map_count=262144
sysctl -p #立即生效

Elasticsearch是可以建立多節點叢集的,但我們僅為收集日誌,就啟用了一個主節點。

新建一個目錄儲存資料

mkdir -p /home/data/elasticsearch/data
docker run -d --name es01 --restart=always \
  --network my-net \
  -v /home/data/elasticsearch/data:/usr/share/elasticsearch/data \
  --ulimit memlock="-1:-1"  \
  -e node.name=es01 -e cluster.initial_master_nodes=es01 -e cluster.name=docker-cluster \
  -e bootstrap.memory_lock=true -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  docker.elastic.co/elasticsearch/elasticsearch:7.4.0

寫入許可權

chmod 777 /home/data/elasticsearch/data

如果要加入其他節點,只需要指定cluster.initial_master_nodes=es01

安裝Kibana皮膚

注意elasticsearch 和 kibana要版本一至。在管理節點主機新建一個配置檔案

vim /home/data/kibana/kibana.yml

內容為

server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://es01:9200"] #這就是我們elasticsearch的地址
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN

建立容器

docker run -d --name kibana --restart=always \
    --network my-net \
    -v /home/data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
    docker.elastic.co/kibana/kibana:7.4.0

kibana皮膚是沒有賬號密碼的,執行在私有網路,但我們可以在nginx代理的時候為其設定一個賬號密碼。

檢視日誌,只需進入皮膚,點選“使用 Elasticsearch 資料”,然後檢查新資料,如果有日誌傳送過來的,就能檢視到,建立索引就行了。

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

《PHP微服務練兵》系列索引部落格:《PHP 微服務練兵》系列教程

相關文章