elastic 5.2集群安装笔记
 
设计架构如下:
nginx_json_log -》filebeat -》logstash -》elasticsearch -》kibana

系统版本Centos7.2
nginx格式为json,如何定义为json请自行百度。
kibana展示如下
 
 
rpm -ivh elasticsearch-5.2.0.rpm 
rpm -ivh kibana-5.2.0-x86_64.rpm 
rpm -ivh logstash-5.2.0.rpm 
yum install  java-1.8.0-openjdk -y   #logstash 和 elasticsearch启动需要jdk1.8以上版本,推荐使用oracle的jdk。
 
 
ES启动前系统调试
关闭ESlinux
暂时关闭iptables
 
修改IO调度算法为noop #不是SSD不用调整
cat /sys/block/sda/queue/scheduler 
noop deadline [cfq](默认是cfq)
echo "noop" >/sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler 
[noop] deadline cfq(变为noop)
 
#增大文件描述符
ulimit -n 65536
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf
 
#修改系统线程限制
echo -ne "
* soft nproc 2048
* hard nproc 4096
" >>/etc/security/limits.conf
 
修改系统限制一个进程可以拥有的VMA(虚拟内存区域)的数量
若无参数请增加
vim /etc/sysctl.conf
vm.max_map_count = 262144
设置降低交换分区的使用优先级
vim /etc/sysctl.conf
vm.swappiness = 1
 
 
 
 
ES启动前elasticsearch.yml配置
cat /etc/elasticsearch/jvm.options
-Xms16g
-Xmx16g
注:按需调整,配置物理机内存的50%,但不要超过31G。
 
cat /etc/elasticsearch/elasticsearch.yml
#集群名称
cluster.name: ESTACK
#节点名称
node.name: ESTACK01
#数据路径
path.data: /opt/elk/elasticsearch-data/
 
#若有交换分区,请开启此项配置(我的服务器没有交换分区,故没有打开)

#禁用swap内存交换
##若开启此选项,你需要修改/usr/lib/systemd/system/elasticsearch.service文件,并设置LimitMEMLOCK=infinity,
##修改/etc/sysconfig/elasticsearch文件,设置MAX_LOCKED_MEMORY=unlimited,最后执行systemctl daemon-reloa & systemctl restart elasticsearch

#bootstrap.memory_lock: true

#监听地址
network.host: 10.1.74.53
#最小成集群节点数,防止脑裂
discovery.zen.minimum_master_nodes: 2
#单播ES节点地址。
discovery.zen.ping.unicast.hosts:
   - 10.1.73.229
   - 10.1.74.53 
   - 10.1.74.54
 
配置完毕启动即可  systemctl start elasticsearch
 
logstash安装与使用
安装包完毕后,将配置文件放入目录
/etc/logstash/conf.d   下
配置文件举例
cdnlogs.conf
input {
    beats {
        port => 5044
      }
}
 
filter{
    json{
        source => "message"
    }
 
    geoip {
        source => "ip"
        #geoip是从IP字段中,获取IP地址,并匹配这个地址的地方,最后生成地区的索引和坐标新增到ES的数据中。
        #logstash5x以上的geoip库已直接集成在logstash中,2.x需要单独指定,建议直接用logstash5x以上版本
        target => "geoip"
    }
}
 
output {
  elasticsearch {
    hosts => "10.1.74.53:9200"
    manage_template => false
    index => "cdnlogs-%{+YYYY.MM}"
    document_type => "cdnlogs"
  }
}
 
 
启动logstash
screen -S logstash
screen这个命令请先百度学习一下。
./bin/logstash -f routerlogs.conf
 
启动后的logstash会监听5044端口,beats发送过来的数据会被logstash进行接收,处理(geoip增加访问用户的地址)和输出到elasticsearch中。
 
 
 
配置kibana
主要配置
vim /etc/kibana/kibana.yml
#server.port: 5601
#server.host: "127.0.0.1"
#elasticsearch.url: "http://127.0.0.1:9200"
配置完毕后启动即可 systemctl start kibana
 
 
 
 
 
配置filebeat
在需要收集日志的服务器上安装filebeat
注意,收集的日志必须为json格式!
安装完毕后修改配置文件
vim /etc/filebeat/filebeat.yml
 
filebeat.prospectors:
# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.
- input_type: log
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/nginx/cdn.log
  json.keys_under_root: true
 
output.logstash:
  # The Logstash hosts
  hosts: ["42.15.38.132:5044"]
 
配置完毕启动即可,
至此,日志会经过
filebeat -》logstash -》 elasticsearch -》kibana 展示到你的面前,祝玩的愉快。
 

谢土豪

如果有帮到你的话,请赞赏我吧!

 

ELASTIC 5.2部署并收集nginx日志的更多相关文章

  1. Docker 部署 ELK 收集 Nginx 日志

    一.简介 1.核心组成 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引 ...

  2. ELK Stack (2) —— ELK + Redis收集Nginx日志

    ELK Stack (2) -- ELK + Redis收集Nginx日志 摘要 使用Elasticsearch.Logstash.Kibana与Redis(作为缓冲区)对Nginx日志进行收集 版本 ...

  3. ELK日志系统之使用Rsyslog快速方便的收集Nginx日志

    常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...

  4. ELK 二进制安装并收集nginx日志

    对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我们将这三个组合起来的技 ...

  5. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  6. ELK filter过滤器来收集Nginx日志

    前面已经有ELK-Redis的安装,此处只讲在不改变日志格式的情况下收集Nginx日志. 1.Nginx端的日志格式设置如下: log_format access '$remote_addr - $r ...

  7. 安装logstash5.4.1,并使用grok表达式收集nginx日志

    关于收集日志的方式,最简单性能最好的应该是修改nginx的日志存储格式为json,然后直接采集就可以了. 但是实际上会有一个问题,就是如果你之前有很多旧的日志需要全部导入elk上查看,这时就有两个问题 ...

  8. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  9. 第七章·Logstash深入-收集NGINX日志

    1.NGINX安装配置 源码安装nginx 因为资源问题,我们先将nginx安装在Logstash所在机器 #安装nginx依赖包 [root@elkstack03 ~]# yum install - ...

随机推荐

  1. dedecms列表页调用文章正文内容的方法

    谁说dede:list 标签不能调用body内容,现在就告诉你,直接就可以调用 第一步,打开后台 核心-->频道模型-->内容模型管理-->普通文章,在列表附加字段中添加body. ...

  2. MySql数据库表的查询操作

    http://www.cnblogs.com/whgk/p/6149009.html 优化:http://www.ihref.com/read-16422.html MYSQL常用的几种连接查询方法

  3. Docker学习笔记一 概念、安装、镜像加速

    本文地址:https://www.cnblogs.com/veinyin/p/10406378.html  Docker 是一个容器,可以想象成一个轻便的虚拟机,但不虚拟硬件和操作系统. 优点:启动快 ...

  4. python 的print和特殊方法 __str__和__repr__

    先提出一个疑问,为什么print函数可以直接打印参数呢?即使是数字?例如print 1,就会打印1.我们知道1的类型是整型(题外话,在python中1是常量,也是类int的对象,而java中1只是常量 ...

  5. Oracle中Inventory目录作用以及如何重建此目录 oraInst.loc 文件

    inventory 英 [ˈɪnvəntri] 美 [ˈɪnvəntɔ:ri] n. 清查; 存货清单; 财产目录,财产目录的编制; 存货总值; vt. 盘存; 编制…的目录; 开列…的清单; 总结 ...

  6. 首发:极简的Centos主机监控方法,分分钟即可使用【转】

    需求天天有,今年事更多.硬盘测试刚刚完成,就又来了性能监控的需求.一般我们生产就用zabbix了,用起来还行,就是蛮多脚本要写.开发和测试都是分散的,经常还要重装系统,用zabbix就算了,开发和测试 ...

  7. [转]使用 mitmproxy + python 做拦截代理

    使用 mitmproxy + python 做拦截代理   本文是一个较为完整的 mitmproxy 教程,侧重于介绍如何开发拦截脚本,帮助读者能够快速得到一个自定义的代理工具. 本文假设读者有基本的 ...

  8. elasticsearch安装ik分词器(非极速版)

    1.下载下载地址为: https://github.com/medcl/elasticsearch-analysis-ik 2.解压把下载的 elasticsearch-analysis-ik.zip ...

  9. 一个无锁消息队列引发的血案(六)——RingQueue(中) 休眠的艺术 [续]

    目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...

  10. CentOS版本区别及 Linux目录结构及其详解

    CentOS 7.0体验与之前版本的不同http://www.linuxidc.com/Linux/2014-07/104196.htm CentOS版本选择http://www.centoscn.c ...