单机部署ELK(Elasticsearch+Logstash+Kibana)并采集Nginx日志

本方案采用docker-compose的方式部署,docker-compose在ubuntu下可直接使用apt-get install docker-compose -y安装

一. 部署ELK服务

1. 先创建logstash.conf文件

input {
 beats {
    port => 5045
    type => "snaptobook-nginx"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}
output {
  elasticsearch {
    hosts => ["http://my-elast:9200"]  # 替换为你的 Elasticsearch 地址
    index => "nginx_logs"
  }
  stdout {
    codec => rubydebug  # 用于调试
  }
}

2. 在同级目录下创建docker-compose.yaml文件

# docker-compose.yaml
version: '3'
services:
  # elasticsearch 配置,该服务用于数据存储
  my-elast:
    image: 'elasticsearch:8.14.3'
    container_name: my-elast
    volumes:
      - ./data:/usr/share/elasticsearch/data # 映射数据卷,如果提示权限问题,可先创建目录,再给予其 777权限 即 mkdir data && chmod 777 -R data
    environment:
      - ES_JAVA_OPTS=-Xms512m -Xmx512m # 限制内存大小为1G
      - discovery.type=single-node # 模式为单节点
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
      - xpack.security.enabled=false # 关闭安全
    restart: always # 自动启动
    # 日志配置
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    # 网络配置
    networks:
      - elk
  # kibana配置,该服务是用于数据展示,其会提供一个可视化的操作页面
  my-kibana:
    image: 'kibana:8.14.3'
    container_name: my-kibana
    ports:
      - "80:5601" # 端口映射,最终访问是通过 http://ip:80 访问
    environment:
      - ELASTICSEARCH_HOSTS=http://my-elast:9200 # 配置elasticsearch的地址
      - LANG=C.UTF-8
      - LC_ALL=C.UTF-8
    networks:
      - elk
  # logstash配置,该服务用于数据清洗,其会提供一个清洗数据的工具
  my-logstash:
    image: 'logstash:8.14.3'
    container_name: my-logstash
    ports:
      - "5555:5045" # 端口映射,数据采集工具将会把数据推送到5555端口内,其中的5045是在配置文件logstash.conf中定义的
    volumes:
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf # 配置文件映射
    environment:
      - LOGSTASH_JAVA_OPTS=-Xms256m -Xmx256m # 限制内存大小为1G
      - xpack.monitoring.elasticsearch.hosts=http://my-elast:9200  # 配置elasticsearch的地址
    networks:
      - elk
# 网络配置
networks:
  elk:
    driver: bridge

3. 启动服务

docker-compose up -d
服务启动后,可以通过docker ps查看已经启动的容器,也可以通过docker-compose logs -f --tail 100的方式查看日志.
此时浏览器打开http://<你的IP>来访问控制面板

配置日志收集脚本

在需要被采集的服务器上,使用docker安装filebeat来收集日志,并将其发送给logstash.
filebeat的配置文件

# filebeat.yml
filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/access.log
output.logstash:
  hosts: ["192.168.23.2:5555"] # `192.168.23.2`为ELK部署服务器的IP,若采集的是本机的日志,可以使用127.0.0.1

运行docker采集日志

docker run -d \
  --name=filebeat \
  --user=root \
  --volume="xxx/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/log/nginx/access.log:/var/log/nginx/access.log:ro" \
  docker.elastic.co/beats/filebeat:8.14.3 filebeat -e -strict.perms=false

其中
--volume="xxx/filebeat.yml:/usr/share/filebeat/filebeat.yml"是将配置文件映射到容器中,xxx部署需要依照实际情况替换
--volume="/var/log/nginx/access.log:/var/log/nginx/access.log:ro"是将需要采集的日志文件映射到容器中

运行完成后,即可打开kibana控制台去查看日志

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,362评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,577评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,486评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,852评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,600评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,944评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,944评论 3 447
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,108评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,652评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,385评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,616评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,111评论 5 364
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,798评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,205评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,537评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,334评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,570评论 2 379

推荐阅读更多精彩内容