1、shell三剑客同居、分析nginx日志:
1)在企业生产环境中,日志内容主要用来做什么? 日志内容主要用于运维人员、开发人员、DBA排错软件服务故障的,因为通过日志内容能够第一时间找到软件服务的异常或者故障原因,从而第一时间解决问题,降低企业的损失。
 
2)日志内容在企业中,除了用于排错、定位问题之外。运维u人员、开发人员还可以对日志内容进行分析、统计、过滤,评估网站访问量、PV(Page Veiw)、UV(uniq visitor)、IP(独立IP)、用于访问行为等。
 
3)基于SHELL编程三剑客awk、sed、grep来分析、统计线上nginx日志、统计nginx访问日志全天总的请求数:
  1. wc -l access_20200228.log|cut -d" " -f1
  2. awk '{print $0}' access_20200228.log|wc -l
  3. awk '{print NR}' access_20200228.log|tail -1
  4. sed = access_20200228.log|tail -2|head -1
  5. grep -aic "" access_20200228.log

4)基于SHELL编程三剑客awk、sed、grep来分析、统计线上nginx日志,统计nginx访问日志全天(09:00-11:00)总的请求数:

  1. grep "2020:09:00" access_20200228.log|wc -l|more
  2. grep "2020:11:00" access_20200228.log|wc -l
  3. sed -n '/2020:09:00/'p access_20200228.log
  4. awk "/2020:09:00/,/2020:11:00/" access_20200228.log|wc -l
  5. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|wc -l

5)基于SHELL编程三剑客awk、sed、grep来分析、统计线上nginx日志,统计nginx访问日志全天(09:00-11:00)总的请求数,将访问的用户IP打印出来, 将访问量排前20名IP打印:
将访问用户IP打印出来:

  1. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|cut -d" " -f1
  2. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|awk '{print $1}'
  3. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"

将访问量排前20名的IP打印出来:

  1. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c
  2. sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|head -20
2、ELK日志企业概念:
1)根据如上的三剑客awk、sed、grep统计、分析线上nginx日志,发现执行效率和结果很低,速度很慢,尤其是日志量非常庞大的时候,效率极低,在企业中要求实时统计、分析,awk、sed、grep显然不可取的。
2)在企业生产环境中,常见的日志种类:
 
系统日志;
 
内核日志;
 
审计日志;
 
安全日志;
 
应用日志;
3)ELK不是一款软件组成,是由三款软件组成的,分别是:ElasticSearch、Logstash、Kibana,其中ES、Logstash均是基于Java语言开发的,所以底层需要依赖JAVA JDK工具包。
 
ElasticSearch
ElasticSearch是基于JAVA语言开发的开源的、分布式、搜索存储引擎,主要是用于持久化存储日志内容(硬盘上)、同时具备实时的检索、分析、统计功能。类似百度搜索引擎的功能。
 
Logstash
Logstash是基于JAVA语言开发的开源的、免费的日志收集工具,主要是用于收集客户端的日志内容(系统、内核、安全、应用日志),同时可以过滤日志内容,最终将日志内容持久化存储到ElsticSearch服务器。 每个客户端主机均需要安装Logstash日志收集插件。
 
Kibana
Kibana是基于Nodejs语言开发的WEB程序(UI界面:web前端框架),主要是为ElasticSearch、Logstash提供WEB界面操作,方便运维人员、开发人员更加直观的对ELK平台配置、日志分析、日志统计等。
 
4)ELK分布式日志平台工作原理:
客户端安装Logstash日志收集工具,通过Logstash收集客户端应用程序的日志内容,将所有的日志过滤出来,并且存入ElasticSearch搜索引擎里,然后通过Kibana UI在WEB前端展示给用户,用户需要可以进行查询指定的ES引擎中日志内容。

3、ELasticsearch配置实战(5.3版本):
部署配置ES,需要配置JDK 环境,JDK(Java Development Kit)是Java 语言的软件开发工具包(SDK):
分别下载ELK软件包:

  1. wget   https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
  2. wget   https://artifacts.elastic.co/downloads/logstash/logstash-5.3.0.tar.gz
  3. wget   https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-linux-x86_64.tar.gz

1)ELK安装环境信息:(其中Elasticcsearch与Kibana可以安装在一台机器上 )

  1. 192.168.1.11  Elasticsearch
  2. 192.168.1.13  Kibana
  3. 192.168.1.14  Logstash

2)192.168.1.12 安装ES(虚拟机最好给2G):
安装JDK:

  1. mkdir -p /usr/java
  2. tar xf jdk1.8.0_131.tar.gz -C /usr/java
  1. 配置环境变量:vim /etc/profile
  1. export JAVA_HOME=/usr/java/jdk1.8.0_131
  2. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  3. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  1. 使环境变量立刻生效,同时查看JAVA版本,显示版本信息,则证明安装成功:
  1. source /etc/prefile
  2. java -version
  1. 下载ES并配置:
  1. tar xf elasticsearch-5.3.0.tar.gz
  2. mv elasticsearch-5.3.0 /usr/local/elasticsearch

修改 /usr/local/elasticsearch/config/jvm.options文件
-xms最小使用内存,-xmx最大使用内存: 两个需要设置为一样,或者启动报错

  1. -xms最小使用内存,-xmx最大使用内存: 两个需要设置为一样,或者启动报错
  2. -xms 1g
  3. -xmx 1g
修改 /usr/local/elasticsearch/config/elasticsearch.yml文件:
设置监听地址为network.host:0.0.0.0全网地址:

创建elk普通用户,用来启动ES 服务: ES服务为了安全默认不允许root启动ES:

  1. useradd elk
  2. chmod -R elk. /usr/local/elasticsearch/
  3. su - elk
  1. 启动ES服务
  1. /usr/local/elasticserch/bin/elasticsearch -d

4、ELasticsearch配置故障演练:
查看日志:

  1. tailf /usr/local/elasticsearch/logs/elasticsearch.log
  1. 启动后可能会报错,需要修改如下内核参数设置:
  2. 1SecComp功能不支持: 以下为报错信息
  1. ERROR: bootstrap checks failed
  2. system call filters failed to install; check the logs and fix your
  3. configuration or disable system call filters at your own risk

  1. 因为Centos6不支持SecComp,而ES5.3.0默认bootstrap.system_call_filtertrue进行检测,所以导致检测失败,失败后直接导致ES不能启动。
  1. Seccpmp(全称securecomputing mode)是Linux Kernel2.6.23版本开始所支持的一种安全机制。
  2. Linux系统里,大量的系统调用(systemcall)直接暴露给勇敢态程序。但是并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。通过Seccomp,我们限制程序使用某些系统调用,这样可以减少系统的暴露免,同时使程序进入一种“安全”的状态。

  1. 解决方法:

    elasticsearch.yml文件中配置bootstrap.system_call_filterfalse,注意要在Memory下面
  1. bootstrap.memory_lock: false
  2. bootstrap.system_call_filter: false

2)内核参数设置问题:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

  1. 解决方法: /etc/security/limits.conf文件中最后添加:
    * soft nofile 65536
  2. * hard nofile 65536

max mumder of threads [1024] for user [hadoop] is too low,increase to at least [2048]

  1. 解决方法: /etc/security/limits.d/20-nproc.conf
  2. soft  nproc  2048
  1. max virtual memory areas vm.max_map_count[65530]is too low, increase to at least [262144]
  1. 解决方法: /etc/sysctl.conf 修改完 sysctl -p生效
  2. vm.max_map_count=262144

initial heap size [536870912] not equal to maximum heap size [1073741824];this can canuse resize pauses and prev ts mlockall from locking the entire heap

  1. 解决方法: /usr/local/elasticsearch/config/jvm.options
  2. -xms 1g
  3. -xmx 1g
Max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。再进程的生命周期中,没当程序尝试再内存中映射文件,链接到共享内存端,或者分配堆空间的时候,这些区域将被创建。
调优这个值将限制进程可拥有VMA的数量。限制一个进程拥有VMA的总数可能导致应用程序出错,因为当进程达到VMA上线但又只能释放少量的内存给其它的内核进程使用时,操作系统会抛出内存不足的错误。
如果你的操作系统再NORMAL区域仅占用少量的内存,那么调低这个值可以帮助释放内存给内核用。
sysctl -p 或者退出终端:

至此ES配置完毕,如果像配置ES集群模式,同样也非常简单,只需要拷贝ES副本即可,然后修改相对应的参数。

4、Kibana WEB安装配置:
部署安装Kibana 不需要安装JAVA JDK环境,直接下载源码,解压即可:

  1. tar xzf kibana-5.3.0-linux-x86_64.tar.gz
  2. mv kibana-5.3.0-linux-x86_64 /usr/local/kibana/
  1. 修改Kibana配置文件信息,设置ES地址:
  1. vim /usr/local/kibana/config/kibana.yml

启动Kibana服务:

  1. 后台启动:
  2. cd /usr/local/kibana/bin/
  3. nohup ./kibana &
  4. 查看监听:
  5. netstat -nutlp|grep -E "5601"

web浏览访问kibanaIP地址:5601端口:

5、Logstash客户端配置实战:

  1. 由于Logstash基于JAVA语言开发,Agent部署需要安装JDK运行环境库:
    mkdir -p /usr/java/
  2. tar xf jdk-1.8.0_131 -C /usr/java/
  3. vim /etc/profile添加如下代码:
  4. export JAVA_HOME=/usr/java/jdk1.8.0_131
  5. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  6. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  7. 解压Logstash软件:
  8. tar xf logstash-5.3.0.tar.gz
  9. mv logstash-5.3.0 /usr/local/logstash
6、ELK收集系统标准日志:
#创建收集日志配置目录:
  1. mkdir -p /usr/local/logstash/config/etc
    cd /usr/local/logstash/config/etc

创建ELK整合配置文件: vim elk.conf内容如下:

  1. input {
  2.  stdin { }
  3. }
  4. output {
  5.  stdout {
  6.  codec => rubydebug {}
  7. }
  8.  elasticsearch {
  9.  hosts => "192.168.1.11:9200" }
  10. }

启动logstash服务:

  1. /usr/local/logstash/bin/logstash  -f  elk.conf
  2. 后台启动:
  3. nohup /usr/local/logstash/bin/logstash -f elk.conf &
  4. ps -ef|grep java

7、ELK-WEB日志数据图表:
Logstah启动窗口中输入任意信息,会自动输出相应格式日志信息:
浏览器输入:http://KibanaIP地址:5601/
为了使用Kibana 你必须配置至少一个索引模式,索引模式是用于确认Elasticsearch index,用来运行搜索和分析,也可以用于配置字段。
index contains time-based events 索引基于时间的事件;
Use event times to create index names [DEPRECATED] 使用事件时间来创建索引名称【过时】
index name or pattern 索引名字或者模式;
模式允许你定义动态的索引名字 使用*作为通配符,例如默认:
logstash-*
选择:
 
Time field name;

 
单击Discover,可以搜索和浏览 Elasticsearch 中的数据,默认搜索的是最近15分钟的数据。 可以自定义选择时间。
  1.  
  1.  

 

ELK日志企业案例:(5.3版本)的更多相关文章

  1. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  2. ELK Stack企业日志平台文档

                                          ELK Stack企业日志平台文档           实验环境 主机名 IP地址 配置 系统版本 用途 controlno ...

  3. Asp-Net-Core-搭建ELK日志平台-Docker-Compose版本

    title: Asp.Net Core 搭建ELK日志平台(Docker-Compose版本) date: 2022-09-27 15:16:59 tags: - .NET 由于暂时用不上Logsta ...

  4. ES系列十七、logback+ELK日志搭建

    一.ELK应用场景 在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制.无论是开发人员还是运维人员都无法准确的定位服务.服务器上面出现的种种问题,也没有高效搜索日志内容 ...

  5. ELK 日志分析系统概述及部署

    ELK 日志分析系统概述及部署 1.ELK概述: ELK简介 : ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch.Logstash 和 Kiabana 三个开源工具配合使用 ...

  6. ELK 日志分析系统的部署

    一.ELK简介 ElasticSearch介绍Elasticsearch是一个基于Lucene的搜索服务器. 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. Elasti ...

  7. ELK 日志分析体系

    ELK   日志分析体系 ELK 是指 Elasticsearch.Logstash.Kibana三个开源软件的组合. logstash                       负责日志的收集,处 ...

  8. ELK日志分析系统的应用

    收集和分析日志是应用开发中至关重要的一环,互联网大规模.分布式的特性决定了日志的源头越来越分散, 产生的速度越来越快,传统的手段和工具显得日益力不从心.在规模化场景下,grep.awk 无法快速发挥作 ...

  9. ELK日志框架(2):log4net.ElasticSearch+ Kibana实现日志记录和显示

    环境说明 1. windows server 2012 R2 64位 2. log4net.ElasticSearch 3. kibana-5.5.0-windows-x86.zip 架构说明 数据采 ...

  10. 小白都会超详细--ELK日志管理平台搭建教程

    目录 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Logstash 五.安装Kibana 六.Kibana简单使用 系统环境:CentOS Linux release 7.4 ...

随机推荐

  1. Lifecycle解决了什么问题,以及它的基本用法

    1.为何要引入Lifecycle? 我首先来举个大家都比较常见的例子:我们在android开发的时候,经常需要在页面的onCreate()方法中对组件进行初始化,在onPause()方法中停止组件,而 ...

  2. 嵌入式低功耗WiFi设备保活功耗分析

    (一)嵌入式低功耗设备介绍 在物联网(IoT)领域,设备可以使用以太网和无线网进行网络连接. 以太网: 网络稳定,带宽高,延迟低,但是以太网需要拉网布线,设备安装邻活便利性能差. 无线网络:安装位置灵 ...

  3. eclipse在主题商城下载安装黑色主题

    Eclipse配置黑色主题方法: 1. 借用国外一个Elipse主题网站分享的主题配置文件来配置一个黑色的主题. 主题网址 2. 在这个网站下载自己喜欢的主题,单击主题进入下载页面,建议大家选择EPF ...

  4. UG NX实现叉车运输货物功能遇见的问题

    在前一段时间编写模拟叉车运输功能时遇到,货物无法跟随的问题(如下动图) 后面发现是速度太快的原因导致货物没有跟着动,类似于抽桌布的感觉 解决办法有两种:第一种解决办法很简单就是把速度降低到不超过  2 ...

  5. 2021-7-6 Vue实现记事本功能

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  6. Kitex微服务开发实践(ETCD服务注册)

    服务注册通常用于分布式系统或微服务架构中,是一种用于管理和发现这些分布式服务的机制.它的目标是让服务能够动态地找到其他服务,并能够与其进行通信,而无需显式地配置其位置信息 本文简单讲述使用etcd进行 ...

  7. 【译】All-In-One Search 在 Visual Studio 17.6 中可用

    一体化搜索体验是在17.2预览版中首次引入的,从那以后我们一直在改进它的质量.新的搜索将代码和特性搜索功能合并到一个 UI 中,因此您可以在一个地方找到所需的东西.实时结果和结果预览加速了这个过程,让 ...

  8. ArcMap时间滑块绘制遥感影像的动态变化过程

      本文介绍基于ArcMap软件,利用时间滑块功能,对大量多时相栅格遥感影像数据进行动态显示,并生成视频或动图的方法.   首先,我们需要在ArcMap软件中新建一个镶嵌数据集,并将全部的多时像遥感影 ...

  9. 【译】Silverlight 不会消亡 XAML for Blazor 到来

    Userware 正在使用早已消失的.令人怀念的微软 Silverlight Web 开发平台的遗留来支持其新的"XAML for Blazor"产品,该产品允许 .NET 开发人 ...

  10. centos7关闭防火墙后只有22端口可以telnet的解决方法

    1.问题描述 防火墙已经关闭 22端口可以telnet 其他端口无法telnet 2.解决方法 注意:下列命令要用root账号/权限执行 2.1.开启防火墙 systemctl start firew ...