elk日志系统的搭建

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
日志服务 SLS,月写入数据量 50GB 1个月
简介:

环境:centos6.5
准备好ELK三个安装包,去官网下载最新版


1、安装jdk网上有的教程叫下载oracle的jdk,其实没必要,系统自带的openjdk就行了,不过需要先
看下版本,1.7是不行的,要1.8以上

升级到1.8
先删除1.7版本
# yum remove -y java-1.7.0-openjdk

2、安装elasticsearch
下载安装包(tar)
https://www.elastic.co/downloads/elasticsearch

直接解压到/usr/local下面
tar -xzvf elasticsearch-1.5.2.tar.gz -C /usr/local

加载模块
execstack -c /usr/local/elasticsearch-1.5.2/lib/sigar/libsigar-x86-linux.so

启动
/usr/local/elasticsearch-1.5.2/bin/elasticsearch -d


检查启动状态
[iyunv@nginx ~]# curl 127.0.0.1:9200

说明启动成功


如果你看到报错信息如下:

[2015-05-13 16:18:01,985][WARN ][bootstrap               ] jvm uses the client vm, make sure to run`java` with the server vm for best performance by adding `-server` to thecommand line
[2015-05-13 16:18:01,992][ERROR][bootstrap               ] Exception
java.lang.RuntimeException: Java version: 1.7.0_45 suffers from critical bug 
https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption.
Please upgrade the JVM, see 
http://www.elastic.co/guide/en/e .../_installation.html for currentrecommendations.
If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JVM_OPTSenvironment variable.
Upgrading is preferred, this workaround will result in degraded performance.


解决办法,安装1.8以上版本:
Yum install -y java-1.8.0-openjdk

3、安装redis,下载2.8版本的
下载redis
http://redis.io/  
如果下载2.8以上版本,依赖解决起来会麻烦很多

Wget 
https://github.com/antirez/redis/archive/2.8.20.tar.gz

安装依赖tcl

# yum install -y tcl


编译安装
make
make test
   make install
cp redis.conf /etc/

配置redis
# vim /usr/local/redis/etc/redis.conf 
daemonize yes#设置后台运行

启动redis
# redis-server /redis.conf 



4、安装logstash

直接解压过去就行了

[iyunv@nginx elk]# tar -xzvf logstash-1.4.2.tar.gz -C/usr/local/

 

创建日志推送配置文件

[iyunv@nginx elk]# mkdir /usr/local/logstash-1.4.2/etc

 

[iyunv@nginx elk]# vim/usr/local/logstash-1.4.2/etc/logstash_agent.conf

 

input {

        file {

               type => "nginx_access log"#这里定义的是日志文件名

               path =>["/usr/local/nginx/logs/host.access.log"]#这里定义的是日志文件路径

        }

}

output {

        redis {

               host => "localhost"#这里定义redis主机地址,这里是本机

               data_type => "list"

               key => "logstash:redis"

        }

}

 

创建indexer配置文件

[iyunv@nginx elk]# vim /usr/local/logstash-1.4.2/etc/logstash_indexer.conf

 

input {

        redis {

               host => "localhost"

               data_type => "list"

               key => "logstash:redis"

               type => "redis-input"

        }

}

filter {

        grok {

               type => "nginx_access"

               match => [

                       "message","%{IPORHOST:http_host} %{IPORHOST:client_ip} \[%{HTTPDATE:timestamp}\]\"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?:HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\"%{NUMBER:http_status_code} (?:%{NUMBER:bytes_read}|-) %{QS:referrer}%{QS:agent} %{NUMBER:time_duration:float}%{NUMBER:time_backend_response:float}",

                       "message","%{IPORHOST:http_host} %{IPORHOST:client_ip} \[%{HTTPDATE:timestamp}\]\"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?:HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\"%{NUMBER:http_status_code} (?:%{NUMBER:bytes_read}|-) %{QS:referrer}%{QS:agent} %{NUMBER:time_duration:float}"

        }

}

output {

        elasticsearch {

               embedded => false

               protocol => "http"

               host => "localhost"

               port => "9200"

        }

}

启动logsyash

 

nohup /usr/local/logstash-1.4.2/bin/logstash -f /usr/local/logstash-1.4.2/etc/logstash_agent.conf&

 

nohup /usr/local/logstash-1.4.2/bin/logstash -f/usr/local/logstash-1.4.2/etc/logstash_indexer.conf &





5
、安装kibana

同样不需要安装,解压就能用

[iyunv@nginx elk]# tar -xzf kibana-4.0.2-linux-x86.tar.gz-C /usr/local/


启动

[iyunv@nginx elk]# nohup /usr/local/kibana-4.0.2-linux-x86/bin/kibana &


然后打开浏览器输入IP加端口5601即可访问


这个如果你装完kibana你那个日志文件要是一直没有新的日志产生呢这里就一直是灰的,这个时候你只需要去访问一下你的网站,然后就行了
然后你就可以看到下面的情况了,选择timestamp,点击create创建,完成



 

搭建成功

 



6
、客户机配置

上面我们是获取本机的日志而已,其他客户机怎么配置呢?
客户机只需要安装logstash

解压

[iyunv@nginx elk]# tar -xzvf logstash-1.4.2.tar.gz -C/usr/local/

 

创建日志推送配置文件

[iyunv@nginx elk]# mkdir /usr/local/logstash-1.4.2/etc

 

[iyunv@nginx elk]# vim/usr/local/logstash-1.4.2/etc/logstash_agent.conf

 

input {

        file {

               type => "nginx_access log"#这里定义的是日志文件名

               path =>["/usr/local/nginx/logs/host.access.log"]#这里定义的是日志文件路径

        }

}

output {

        redis {

               host => "10.1.1.231"#这里定义redis主机地址

               data_type => "list"

               key => "logstash:redis"

        }

}

 

启动logsyash

 

nohup /usr/local/logstash-1.4.2/bin/logstash -f /usr/local/logstash-1.4.2/etc/logstash_agent.conf&


完成!!!!


本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1731934

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
3月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
154 1
|
2月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
6月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
469 90
|
7月前
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
2301 70
Grafana Loki,轻量级日志系统
|
6月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
253 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
6月前
|
网络安全
window系统下安装elk
本文介绍了Elasticsearch、Logstash和Kibana(统称ELK栈)8.17.3版本的安装与配置流程。主要内容包括: - **Elasticsearch**:详细描述了从下载到启动服务的步骤,以及`elasticsearch.yml`的关键配置项,并提供了Postman操作示例及常见问题解决方案。 - **Logstash**:涵盖了插件安装、配置文件`logstash.conf`编写及其启动命令。 - **Kibana**:讲解了下载、配置`kibana.yml`和启动过程,确保与Elasticsearch正确连接。
|
6月前
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
103 10
|
8月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
506 8
|
9月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
297 2