Linux与ShellSSM+shiro等elk

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

2017-07-18  本文已影响24932人  创Chen

我的
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 elasticsearchmax 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

上一篇 下一篇

猜你喜欢

热点阅读