日志收集ELK 实践

2019-07-27  本文已影响0人  zhaoxianqiang

ELK 是什么毋庸多说,下面是用filebeat 收集nginx的访问日志和错误日志的实践。

安装

前提条件

  1. 准备三台主机
    10.10.10.1
    10.10.10.2
    10.10.10.3
  2. 安装好docker,docker-compose
  3. 国内主机的话要配置好docker 加速

elasticsearch docker 安装

用普通的下载源码包安装也可以,但是有些设定不对的话,会报各种的错误,如文件描述符个数,进程数量,执行用户权限等等问题。
采用docker 安装非常省事,强烈推荐。
1.进入第一台主机,拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0
  1. 新建 docker-compose.yaml 文件
version: '2.2'
services:
 es01:
   image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
   container_name: es01
   environment:
     - node.name=es01
     - discovery.seed_hosts=0
     - network.host=0
     - cluster.initial_master_nodes=es01
     - cluster.name=docker-cluster
     - bootstrap.memory_lock=true
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
   ulimits:
     memlock:
       soft: -1
       hard: -1
   volumes:
     - esdata01:/usr/share/elasticsearch/data
   ports:
     - 9200:9200
   networks:
     - esnet
volumes:
 esdata01:
   driver: local
networks:
esnet:

  1. 启动
docker-compose up -d
  1. docker-compose ps 查看启动结果


    image.png

kibana 安装

  1. 进入第二台主机,拉取镜像
docker pull docker.elastic.co/kibana/kibana:7.2.0
  1. 新建 docker-compose.yaml 文件
version: '2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.0
    environment:
      SERVER_NAME: kibana
      ELASTICSEARCH_HOSTS: http://10.10.0.1:9200
    ports:
      - 5601:5601

ELASTICSEARCH_HOSTS 环境变量是elasticsearch 的主机地址,
5601 是对外公开的端口。

  1. 启动
docker-compose up -d
  1. docker-compose ps 查看启动结果


    image.png

5.浏览器查看kibana

http://公开ip:5601
image.png

看到这图就证明以上安装是OK的了。

filebeat 安装

  1. 进入第三台主机,安装filebeat
    kibana 主页面 点击add log data ,有各种log 收集安装的方法,
    我们这次收集nginx 日志,选择Nginx logs
  2. 首先安装 nginx
  3. 安装 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-darwin-x86_64.tar.gz
tar xzvf filebeat-7.2.0-darwin-x86_64.tar.gz
cd filebeat-7.2.0-darwin-x86_64/
  1. 编辑配置
    filebeat.yml
output.elasticsearch:
  hosts: ["10.10.0.1:9200"] 
setup.kibana:
  host: "10.10.0.2:5601"
  1. 对nginx 日志文件路径进行设定

module/nginx/access/manifest.yml

    default:
      - /usr/local/nginx/logs/access.log*

/usr/local/nginx/logs/access.log* 是对应nginx 文件的访问日志

module/nginx/error/manifest.yml

    default:
      - /usr/local/nginx/logs/error.log*

/usr/local/nginx/logs/error.log* 是对应nginx 文件的错误日志

  1. 启动日志收集
nginx 
./filebeat setup
./filebeat -e

生成nginx 日志

多访问几次第三台主机的URL ,
10.10.10.3
10.10.10.3/test

kibana 中查看日志数据

下面的路径进入
[Home] -> Add data -> Nginx logs
下面是效果,按请求地统计的访问数量,一目了然。


image.png image.png

是不是比看文本文件好多了呢?

总结

上一篇下一篇

猜你喜欢

热点阅读