Elasticsearch+Kibana日志分析系统搭建
由于我们的服务分布在各个节点,日志写入本地已经不能很好的访问了,所以需要一个日志中心集中分析日志,本来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 微服务练兵》系列教程
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: