ELK平台搭建及日志监控

一、使用背景

当生产环境有很多服务器、很多业务模块的日志需要每时每刻查看时

二、环境

系统:centos 6.5

JDK:1.8

Elasticsearch-5.0.0

Logstash-5.0.0

kibana-5.0.0

三、安装

1、安装JDK

下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

本环境下载的是64位tar.gz包,将安装包拷贝至安装服务器/usr/local目录

[root@localhost ~]# cd /usr/local/ 
[root@localhost local]# tar -xzvf jdk-8u111-linux-x64.tar.gz

配置环境变量

[root@localhost local]# vim /etc/profile

将下面的内容添加至文件末尾(假如服务器需要多个JDK版本,为了ELK不影响其它系统,也可以将环境变量的内容稍后添加到ELK的启动脚本中)

JAVA_HOME=/usr/local/jdk1.8.0_111
JRE_HOME=/usr/local/jdk1.8.0_111/jre
CLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export  JAVA_HOME
export  JRE_HOME

ulimit -u 4096

[root@localhost local]# source /etc/profile

配置limit相关参数

[root@localhost local]# vim /etc/security/limits.conf
添加以下内容

* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536

创建运行ELK的用户

[[email protected] local]# groupadd elk

[[email protected] local]# useradd -g elk elk

创建ELK运行目录

[[email protected] local]# mkdir /elk
[[email protected] local]# chown -R elk:elk /elk

关闭防火墙:

[[email protected] ~]# iptables -F

以上全部是root用户完成

2、安装ELK

以下由elk用户操作

以elk用户登录服务器

下载ELK安装包:https://www.elastic.co/downloads,并上传到服务器且解压,解压命令:tar -xzvf 包名

配置Elasticsearch

修改如下内容:

保存退出

启动Elasticsearch

查看是否启动成功

用浏览器访问:http://192.168.10.169:9200

Elasticsearch安装完毕

安装logstash

logstash是ELK中负责收集和过滤日志的

编写配置文件如下:

解释:

logstash的配置文件须包含三个内容:

input{}:此模块是负责收集日志,可以从文件读取、从redis读取或者开启端口让产生日志的业务系统直接写入到logstash

filter{}:此模块是负责过滤收集到的日志,并根据过滤后对日志定义显示字段

output{}:此模块是负责将过滤后的日志输出到elasticsearch或者文件、redis等

本环境采用从文件读取日志,业务系统产生日志的格式如下:

[2016-11-05 00:00:03,731  INFO] [http-nio-8094-exec-10] [filter.LogRequestFilter] - /merchant/get-supply-detail.shtml, IP: 121.35.185.117, [device-dpi = 414*736, version = 3.6, device-os = iOS8.4.1, timestamp = 1478275204, bundle = APYQ9WATKK98V2EC, device-network = WiFi, token = 393E38694471483CB3686EC77BABB496, device-model = iPhone, device-cpu = , sequence = 1478275204980, device-uuid = C52FF568-A447-4AFE-8AE8-4C9A54CED10C, sign = 0966a15c090fa6725d8e3a14e9ef98dc, request = {
  "supply-id" : 192
}]
[2016-11-05 00:00:03,731 DEBUG] [http-nio-8094-exec-10] [filter.ValidateRequestFilter] - Unsigned: bundle=APYQ9WATKK98V2EC&device-cpu=&device-dpi=414*736&device-model=iPhone&device-network=WiFi&device-os=iOS8.4.1&device-uuid=C52FF568-A447-4AFE-8AE8-4C9A54CED10C&request={
  "supply-id" : 192

output直接输出到Elasticsearch

本环境需处理两套业务系统的日志

type:代表类型,其实就是将这个类型推送到Elasticsearch,方便后面的kibana进行分类搜索,一般直接命名业务系统的项目名

path:读取文件的路径

这个是代表日志报错时,将报错的换行归属于上一条message内容

start_position => "beginning"是代表从文件头部开始读取

filter{}中的grok是采用正则表达式来过滤日志,其中%{TIMESTAMP_ISO8601}代表一个内置获取2016-11-05 00:00:03,731时间的正则表达式的函数,%{TIMESTAMP_ISO8601:date1}代表将获取的值赋给date1,在kibana中可以体现出来

本环境有两条grok是代表,第一条不符合将执行第二条

其中index是定义将过滤后的日志推送到Elasticsearch后存储的名字

%{type}是调用input中的type变量(函数)

启动logstash

代表启动成功

安装kibana

保存退出

启动kibana

其中api-app-*和api-cxb-*从来的,*代表所有

代表实时收集的日志条数

红色框内的就是在刚才filter过滤规则中定义的

原文地址:https://www.cnblogs.com/guarderming/p/10249838.html

时间: 2024-08-02 09:11:55

ELK平台搭建及日志监控的相关文章

开源日志分析系统ELK平台搭建部署

开源日志分析系统ELK平台搭建部署 一.前言 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理

日志分析ELK平台搭建

当服务器数量以及应用达到一定的数量后,操作系统日志以及应用软件日志数量庞大,遇到问题时日志是第一手资料.平时用的sed.grep.awk已经难以满足我们的需求.随着互联网技术的发展,好多大型互联网公司研发了不同的日志分析产品,例如开源的Graylog.ELK还有Splunk等,同时Splunk也是一个商业产品,功能很强大,但是在目前的互联网领域里ELK的使用应该是更广泛.接下来会根据官网资料搭建ELK平台. 环境介绍: 操作系统  CentOS 7.4 Java版本:openjdk 1.8.0_

ELK 平台收集Tomcat日志记录

简介 目前大多数中小型企业使用tomcat 服务作为后端服务器,因为tomcat支持java代码.但是每次查看tomcat的日志(catalina.out),不仅庞大,还特别不方便查询,所以应用ELK平台监控tomcat日志是很有必要的. 部署过程 一.安装ELK平台 详细安装过程参考博客: https://blog.51cto.com/13760351/2471799 二.安装tomcat服务 1.安装过程 可以参考博客 https://blog.51cto.com/13760351/2160

elk平台搭建

很多时候我们需要对日志做一个集中式的处理,但是通常情况下这些日志都分布到n台机器上面,导致一个结果就是效率比较低,而ELK平台可以帮助我们解决这么一件事情: ELK下载:https://www.elastic.co/downloads/ 组件说明: 1)Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. 2)Logstash是一个完全开源的工具,他可以对你的日志进行收集.过滤,并将

使用elk+redis搭建nginx日志分析平台

logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录.其次,需要有个队列,redis的list结构正好可以作为队列使用.然后分析使用elasticsearch就可以进行分析和查询了. 我们需要的是一个分布式的,日志收集和分析系统.logstash有agent和indexer两个角色.对于agent角色,放在单独的web机器上面,然后这个agent不断地读取nginx的日志文件

ELK平台搭建 ES

系统环境: System: Centos 6.5 ElasticSearch: 2.3.3 Logstash: 2.3.3 Kibana: 4.5.1 Java: jdk_1.8.0_71 新建用户: ELK不允许root用户启动 #useradd elk JDK或JRE下载安装: java也可到这个地址下载https://www.reucon.com/cdn/java/ # mkdir /usr/java/  # cd /usr/java # tar -zxvf jdk-8u71-linux-

linux监控平台搭建(3)添加自定义监控项目、配置邮件告警、测试警报、不发邮件的问题处理

添加自定义监控项目 很多的监控项,我们都是在配置的模板中设置的,但是模板的选择是不能完全满足到我们生产中 的实际需求.所以我们可以自定义监控项目,通过编写Shell脚本或者python脚本,在脚本中获取数据库中所需业务的数,然后在通过在监控项里添加这个脚本,将脚本获取到的数目以图表的形势展现.这样就有利于运维人员及时发现和分析问题. 需求: 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目:2)针对该监控项目以图形展现 对于第一步,需要到客户端定义脚本 1

elk架构-搭建一个日志收集系统

一.日志收集端 1.nginx:nginx-1.16.1.tar.gz 为了kibana收集nginx日志获取字段,先将日志转化为json格式.格式样式如下: log_format access_json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"clientip":"$remote_addr",' '&quo

ELK平台搭建部署

1.获取软件: 2.安装elasticsearch 修改几个文件: 2.1./etc/security/limits.conf: * soft nproc 2048 * hard nproc 4096 * soft nofile 65536 * hard nofile 131072 2.2./etc/sysctl.conf,添加如下: vm.max_map_count = 655360 2.3./etc/security/limits.d/20-nproc.conf: * soft nproc