一佳一

记录像1+1一样简洁的代码

导航

ASP.NET CORE ELK最简教程 亲测

Posted on 2022-06-09 11:00  一佳一  阅读(157)  评论(0编辑  收藏  举报

1.拉取镜像 elasticsearch

docker pull elasticsearch:7.7.1

2.运行镜像(single-node 单节点启动) 网上建议设置是512M内存 可以根据虚拟机大小调整 我的虚拟机只有2G  所以我这里设置成128M   如果小伙伴出现容器自动退出一般就是内存设置太大

docker run -p 192.168.0.240:9200:9200 -p 192.168.0.240:9300:9300 -d -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx128m" --name els elasticsearch:7.7.1 

 3.拉取镜像 kibana

docker pull kibana:7.7.1 

4.因为要用kibana连接els所以先看看自己的docker网络名称 我电脑查到的是 bridge

docker network  ls

5.使用查询到的网络名称bridge 进行连接 els的ip地址

docker run --name kib  --net bridge  -p 192.168.0.240:5601:5601 -d -e "ELASTICSEARCH_HOSTS=http://192.168.0.240:9200" kibana:7.7.1

6.如果发现一段时候后 访问kibana 还是一直提示  Kibana server is not ready yet  可能内部网络没接通 具体用logs 日志可以查 

7.这里再推荐一款快速查询els谷歌插件 "Multi Elasticsearch Head")

8.启动rabbitmq作为日志输入来源  步骤 拉取镜像 -> 启动容器 -> 加载网页端插件

docker pull rabbitmq

docker run -d -p 15672:15672 -p 5672:5672 --hostname myRabbit --name rabbitmq rabbitmq

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management

访问 http://192.168.0.240:15672 

如果出现 Stats in management UI are disabled on this node 错误 则需要修改下rbmq的配置

#进入rabbitmq容器
docker exec -it rabbitmq /bin/bash

#进入容器后,cd到以下路径
cd /etc/rabbitmq/conf.d/

#修改 
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf

#退出容器
exit

#重启rabbitmq容器
docker restart rabbitmq

9.拉取 logstash

docker pull logstash:7.7.1

 10.添加两个配置文件放在Linux的/root/elk文件夹下 用于启动的时候读取自定义配置

logstash.conf

input {
 
  rabbitmq {
       durable => true
       exchange => "rabbitTextlog"
       exchange_type => "direct"
       key => "credit_log"
       host => "192.168.0.240" 
       port => 5672
       user => "guest"
       password => "guest"
       queue => "rabbitTextlogqueue"
       auto_delete => false
  
  }
 
}
 
output{
    elasticsearch {
        hosts=>["192.168.0.240:9200"]
        index => "myrabbitmqlog" 
    }
 
}

logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.0.240:9200" ]

11.启动容器

docker run  --name richard_logstash -p 5044:5044 -p 9600:9600 -e "discovery.type=single-node" -v /root/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml logstash:7.7.1

 

 测试数据有正常到Els 则部署成功

另外可以用 docker compose 自动部署

1.先安装compose

# 下载docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 将文件copy到 /usr/bin/目录下
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看版本
docker-compose --version


2.编写部署文件
version: '3.3'
services:
  service1:
    image: rabbitmq:latest
    ports:
      - 15672:15672  
      - 5672:5672   
    container_name: "lyj_rabbit"  #容器名称

  service2:
    depends_on:       
      - service1 
    image: elasticsearch:7.7.1   
    environment:
      - "ES_JAVA_OPTS=-Xms128m -Xmx128m"
      - discovery.type=single-node  
    ports:                    
      - 9200:9200
      - 9300:9300
    container_name: "lyj_es"  #容器名称

  service3:
    depends_on:       
      - service2 
    image: kibana:7.7.1   
    environment:
      - ELASTICSEARCH_HOSTS="http://192.168.0.240:9200" 
    ports:                    
      - 5601:5601 
    container_name: "lyj_kibana"  #容器名称 

  service4:
    depends_on:       
      - service3 
    image: logstash:7.7.1   
    environment:
      - discovery.type=single-node   
    volumes:
      - /root/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
      - /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml
    ports:                    
      - 5044:5044 
      - 9600:9600 
    container_name: "lyj_logstash"  #容器名称
  
3.到文件目录执行 
docker-compose up