我的ELK搭建笔记(阿里云上部署)

文章转载:http://www.jianshu.com/p/797073c1913f
仅用作个人学习,收藏

我的
ELK
搭建笔记(基于阿里云)
“不是最好的,但一定是有良心的操作记录。”目录一览
0 重不重要都得有的开头
1 安装配置
1.1 CentOS 7.x环境准备
1.1.1 安装操作系统
1.1.2 更新系统软件包(可选)
1.1.3 更改主机名(可选)
1.1.4 创建应用账号(必选)
1.1.5 安装Java运行环境(可选)
1.2 ELK安装
1.2.1 安装ElasticSearch with x-pack
1.2.2 Trouble shooting for elasticsearch
1.2.3 安装Logstash
1.2.4 Trouble Shooting for Logstash
1.2.5 安装Kibana with x-pack
1.2.6 Kibana界面日志检索
2 最佳实践
2.1 Logstash & JDBC
2.1.1 安装jdbc-input插件
2.1.2 下载jdbc-mysql连接驱动
2.1.3 配置jdbc日志收集参数
2.1.4 启动Logstash连接数据库收集日志
2.2 Kibana相关
2.2.1 获取指定索引下指定类型日志的映射表
2.2.2 修改数据类型映射mappings
2.2.3 判断字段是否存在
3 参考资料

0重不重要都得有的开头
下面一段摘抄自互联网 http://baidu.blog.51cto.com/71938/1676798ELK平台是当前应用比较广泛的一套开源实时日志分析解决方案。ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站: https://www.elastic.co/products
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

1安装配置
1.1 CentOS 7.x环境准备
1.1.1 安装操作系统以阿里云
ECS
主机为例,
安装系统时选择
CentOS 7.2 64
位版本。

1.1.2 更新系统软件包(可选)[root@elk-test ~]# yum update1.1.3 更改主机名(可选)[root@iZ2ze1filcblgjr9dcoxioZ ~]# hostnameelk-test[root@iZ2ze1filcblgjr9dcoxioZ ~]# hostname# elk-test[root@elk-test ~]# 1.1.4 创建应用账号(必选)以应用账号身份启动
ElasticSearch、
Logstash和
Kibana[root@elk-test ~]# useradd elk-test1.1.5 安装Java运行环境(可选)下载
JRE安装包
,并上传到服务器
root
用户目录


root身份安装
JRE:
yum localinstall jre-8u121-linux-x64.rpm
配置
Java环境变量:
编辑文件
/etc/profile
在文件末尾增加如下内容

验证
Java环境,
执行命令
java -version查看
Java版本信息,
如果一切正常的话,能看到如下信息:

java version 1.8.0_121Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

如有需要,也可
下载
Server JRE手工安装。
**1.2 ELK安装
1.2.1 安装ElasticSearch with x-pac执行命令
su - elk-test切换到应用账户
elk-test,下载和安装
ElasticSearch和
x-pack安全组件。如果你不需要安全认证,
x-pack组件可以不用安装,相应的配置参数也不必设置。

根据需要,修改文件
ElasticSearch目录下
config/jvm.options文件,调整
jvm内存参数。

修改监听端口,允许外部系统远程访问:
编辑文件
config/elasticsearch.yml
修改参数
network.host的数值

启动
ElasticSearch[elk-test@elk-test elasticsearch-5.0.0]$bin/elasticsearch

验证
ElasticSearch服务,执行命令:
curl http://elastic:changeme@10.0.0.136:9200
期待返回内容如下:

1.2.2 Tr**ouble shooting for elasticsearch**max file descriptors

max file descriptors [65535] forelasticsearch process likely too low, increase to at least [65536]修改文件/etc/security/limits.conf,末尾增加如下内容
soft nofile 65536 hard nofile 65536max virtual memory

max virtual memory areas vm.max_map_count[65530] likely too low, increase to at least [262144]

修改文件
/etc/sysctl.conf
设置参数
vm.max_map_count= 262144
执行命令
sysctl -p

完成以上步骤,重新
su - elk-test
再来启动
ElasticSearch

1.2.3 安装Logstash下载
Logstash

测试一段
syslog日志文本。在
logstash主目录创建配置文件
sample.conf,内容如下

执行命令
bing/logstsh -f sample.comf
,启动
Logstash。

**启动后,输入以下内容:

Jan 19 12:28:31 elk-test sshd[13990]:pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=sshruser= rhost=92.246.190.31 user=root
可以看到
Logstash在
Console返回的输出内容,同时以上内容也发送到了
ElasticSearch。
1.2.4 Trouble Shooting for Logstash**为什么Logstash启动特别缓慢?

原因可能是
JVM的随机数字生成参数导致,诊断和修改方式:
修改文件
$JAVA_HOME/jre/lib/security/java.security
设置参数
securerandom.source=file:/dev/urandom

重新启动
Logstash,是不是快多了?
为什么要这么做,我已经帮你搜好了,请参考以下文档:

StackOverflow-Logstashstartup time #5491 -
Orace官方
-Avoiding JVM Delays Caused byRandom Number Generation
1.2.5 安装Kibana with x-pack**执行命令
su - elk-test切换到应用账户
elk-test,下载和安装
Kibana和
x-pack安全组件。

设置
Kibaba对外开放的
IP和
ElasticSearch的
url编辑文件
config/kibana.yml
设置参数
server.host和
elasticsearch.url

启动
Kibana[elk-test@elk-testkibana-5.0.0-linux-x86_64]$ bin/kibana**

访问
Kibanna,验证服务,用户名
/密码:
elastic/changeme

看到如下界面,即表示成功,稍后再来配置。

1.2.6 Kibana界面日志检索只有当第一条日志通过
Logstash进入
ElasticSearch后,才能配置
Kibana索引
pattern。
操作方法是:进入
Kibana设置界面,点击
Create按钮。
其中
Index Pattern名称必须与
Logstash中
output参数设置的一致。如果
output参数没有设置,则默认为
logstash-*

**如果你的日志中有特定的时间字段,这里可以单独设置。 如果
Logstash的
output中已经配置了
index的名称,则必须在新的日志进入
ElasticSearch后,才能在
Kibana上创建新的
index pattern。进入
Kibana的
Dashboard,搜索日志,认真体验。
**

2最佳实践
2.1 Logstash & JDBC**2.1.1 安装jdbc-input插件**进入
Logstash目录,执行命令
bin/logstash-plugin install logstash-input-jdbc安装
JDBC输入插件。
2.1.2 下载jdbc-mysql连接驱动访问
MySQL网站,
https://dev.mysql.com/downloads/connector/j/,下载
mysql-connector-java-5.1.40,或执行命令下载。

2.1.3 配置jdbc日志收集参数创建文件
jdbc-login-logs-logstash.conf,并设置
Logstash每隔
5分钟(
/5 )连接一次数据库,将新增的日志发送到
ElasticSearch服务器。

2.1.4 启动Logstash连接数据库收集日志*执行命令
bin/logstash -f jdbc-login-logs-logstash.conf

2.2 Kibana相关
2.2.1 获取指定索引下指定类型日志的映射表Kibana主界面左侧,点击开发工具按钮。

进入
Console界面,执行如下命令:
GET logstash-nginx/_mappings/alm注意:替换
alm字符串为你自己的日志类型(来自
Logstash的
output参数)
返回如下:

2.2.2 修改数据类型映射mappings已经创建的
mappings是不能直接修改的。通常是删除后再创建一个新的修改后的
mappings版本。参考文档
:ChangingMapping with Zero Downtime2.2.3 判断字段是否存在搜索执行 exists:field_name,如: exists:login_ip3参考资料
折腾过程中,得到了以下参考资料的帮助,一并感谢! Elastic中文社区
官方网站
ELK 部署指南
分布式日志收集之
Logstash 笔记(一)
Elasticsearch 权威指南(中文版)
初探
ELK-logstash使用小结
logstash服务启动脚本
ELK安装配置之集群相关介绍及搭建
ELK日志管理之
——logstash部署
How to Delete Data from Elasticsearch
Experiments with Kibana Timelion
Geo数据类型问题

以上内容只是最基础的
Hello World版本
ELK部署说明,还不涉及到集群、分布式收集、
grok高级技巧等。关于复杂场景下的
ELK部署和应用,等我功力提升后再来分享啦!

为解决文中部分图片不够清晰问题,您也可以通过以下链接查看原文(高清)内容:
https://pan.baidu.com/s/1nv15BWt

https://bbs.ichunqiu.com/thread-19741-1-2.html

作者:创Chen
链接:http://www.jianshu.com/p/797073c1913f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HBase regions分布不均匀的解决

1、先确定master页面是否还有region in transition,如果有并且长时间未变化,可以考虑重启master,重新触发容灾。 2、region都加载后进入hbase shell balance_swith ture 开启balancer balancer 手动触发balance 即可。

莫队分块

今天兔哥讲了一波莫队,比较有趣,先加一个链接,这是她的教程 rabbithu.cnblogs.com 这里就不详细说了,其实就是两个指针来优化的暴力。一开始排序函数有问题,没用上莫队的核心思想:把查询区间先排序,第一关键…

Linux Kettle 闪退问题解决方案

我们在搭建kettle平台时,往往会搭建两种平台,一种win、一种是linux。在windows上进行kettle ETL测试工作,测试成功之后,会发布到linux服务器上,这就出现了一下问题——linux执行ktr文件,界面闪退&#xff0…

django-总体

纲领 建立项目时,首先需要以规范的方式对项目进行描述,再建立虚拟环境,以便在其中创建项目。 创建项目后,创建app,并在项目的settings.py中“安装”该app 随后,就是根据项目描述编写urls.py、view层、model…

Python的元组被设计成不可变的影响

实际上元组是跟列表非常相近的另一种容器类型,元组和列表看起来不同的一点是元组用的是圆括号而列表用的是方括号。而功能上,元组和列表相比有一个很重要的区别,元组是一种不可变类型。正是因为这个原因元组能做一些列表不能做的事情……用做…

JS将数字转换为中文

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>JS将数字转换为中文</title> </head> <body> <script>// 定义转换函数function transform(tranvalue){try{var i1;var dw2 new Array("&quo…

IE上ORACLE OEM 证书错误 , 导航阻止,无法”继续浏览此网站”

文章转载自&#xff1a;http://blog.51cto.com/cswggod/1193266 仅用于个人学习&#xff0c;知识收藏 本文是我安装ORACLE11g后客户端IE访问不了是出现的&#xff0c;无奈下找OTN上help&#xff0c; 结果很lucky的被解脱了。 网站是&#xff1a;https://forums.oracle.com/for…

testng使用DataProvider+Excel实现DDT

DDT&#xff0c;即数据驱动测试 Data Driver Test&#xff0c;我曾经记录了一篇关于python的DDT框架&#xff08;ExcelDDT数据驱动实例&#xff09;&#xff0c;那么java中的DDT是怎么样的呢&#xff1f;在java中&#xff0c;可以用testng的DataProvider和Excel实现。 首先建一…

Linux安装Oracle12C 过程及遇到的问题

一、环境介绍 1、系统环境&#xff1a;CentOS7.1 Oracle版本&#xff1a;12C 12.1.0 二、安装过程 1、安装过程文档见百度云上的文档 链接&#xff1a;https://pan.baidu.com/s/1nvd07NF 密码&#xff1a;mey9 2、安装完后登录数据库 su oracle source ~/.bash_profiel…

sqlserver服务启动后停止,传递给数据库 'master' 中的日志扫描操作的日志扫描号无效...

电脑异常重启&#xff0c;导致SqlServer服务启动后&#xff0c;自动停止&#xff0c;在【计算机管理】-【事件查看器】-【windows日志】中进行查看系统错误日志&#xff0c;在【应用程序】下发现可能的错误信息有以下两条&#xff1a; 1、错误&#xff1a;传递给数据库 master …

云监控 Ganglia 安装步骤 (含python module)

文章转载自&#xff1a;https://my.oschina.net/duangr/blog/181585 &#xff0c;仅用于个人学习、收藏&#xff0c;转载请注明原作者地址。 前言 最近在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群整体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多…

container-with-most-water(最大蓄水问题)

题目描述&#xff1a; Given n non-negative integers a1 , a2 , ..., an , where each represents a point at coordinate (i, ai ). n vertical lines are drawn such that the two endpoints of line i is at (i, ai ) and (i, 0). Find two lines, which together with x-a…

使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决

一、参考文档&#xff1a; 1、https://www.rittmanmead.com/blog/2014/03/using-sqoop-for-loading-oracle-data-into-hadoop-on-the-bigdatalite-vm/ 2、http://www.cnblogs.com/bjtu-leefon/archive/2013/06/28/3160549.html 二、使用脚本 ----sqoop import zdsd 使用注…

POJ1426-Find The Multiple(DFS)

给出一个整数n&#xff0c;(1 < n < 200)。求出任意一个它的倍数m&#xff0c;要求m必须只由十进制的0或1组成。 #include <iostream>using namespace std;int N,flag;void DFS(int m,long long n) {if(m19) return;if(flag) return;if(n%N0){flag1;cout<<n&…

Spark集群,多个版本Python/Python Package管理

文章转载自&#xff1a;http://blog.csdn.net/gongbi917/article/details/52369025 仅用于个人学习备忘收藏&#xff0c;转载请注明原文地址 进年来&#xff0c;越来越多的数据科学家、分析人员、数据工程师运用Python语言进行数据分析和机器学习。Spark在0.7版本开始支持Pyth…

【网络流24题】【LOJ6224】深海机器人问题(最大费用最大流)

problem 给定一个n*m的网格&#xff0c;每条边上有一个权值给定每个机器人的出发位置和目标位置求权值最大solution 拆边&#xff0c;每条边拆成2条&#xff0c;第一条容量1&#xff0c;费用c[i]&#xff0c;第二条容量inf,费用0&#xff1b;建超级源汇&#xff08;s到每个出发…

Oracle创建表空间、用户、分配权限、导出、导入数据

文章转载&#xff1a;https://segmentfault.com/a/1190000006704150 仅用于个人学习、收藏自查&#xff0c;谢谢原作者。 以系统管理员登录&#xff0c;命令&#xff1a;sqlplus / as sysdba #首先需要 su - oracle 进入到oracle用户下 一、分为四步 /第1步&#xff1a;创…

函数简介

一、函数 函数就是一个功能&#xff0c;一个方法&#xff0c;简化代码。#一个函数只做一件事#重复的代码就是低级的#实现同样的功能&#xff0c;代码越少越好 函数必须得调用才能执行。 1、函数的简单介绍&#xff0c;如下 1 def say(name):# 函数&#xff0c;形参&#xff0c;…

ORA-65096: 公用用户名或角色名无效引发的思考

解决方式&#xff1a; alter session set "_ORACLE_SCRIPT"true; alter session set containerPDBORCL;原因&#xff1a;查官方文档得知“试图创建一个通用用户&#xff0c;必需要用C##或者c##开头”&#xff0c;这时候心里会有疑问&#xff0c;什么是common user&am…

VS封装给Unity使用的DLL

首先: 注意两点,一个是选择3.5,Unity最高支持到3.5 然后要选择第二个FrameWork类库 第一个会报错 然后导入Unity dll 我Unity安装在F:\AppLicationWorkSpace\Unity5.6.2\Unity\Editor\Data\Managed 用哪个导入哪个 然后生成 Ok 把生成的DLL放到Unity里就可以使用了 继续写…