ELKstack简介及环境部署
Posted guigujun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELKstack简介及环境部署相关的知识,希望对你有一定的参考价值。
ELK工作流程图
环境准备
安装Logstash依赖包JDK
Logstash的运行依赖于Java运行环境,?Logstash 1.5以上不低于java 7推荐使用最新版本的Java。由于只是运行Java程序,而不是开发,下载JRE即可。
yum 安装
??[[email protected] ~]#yum install java-1.8.0-openjdk ?-y? ? ?
设置yum安装的java_home(可以不执行)? ?
? [[email protected] ~]#?export?JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-1.b14.el6.x86_64
源码安装
JDK的安装方式比较简单,只需将下载回来的程序包解压到相应的目录即可。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html?
下载页面,因为需要证书,Linux无法下载,建议window下载,然后上传
[[email protected] ~]#mkdir?/usr/local/java
[[email protected] ~]#tar?-zxf?jdk-8u45-linux-x64.tar.gz?-C?/usr/local/java/
#设置JDK的环境变量(/etc/profile)添加如下:
export?JAVA_HOME=/usr/local/java/jdk1.8.0_45
export?PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
#检查jdk是否安装成功
[[email protected] ~]#java?-version
java?version?"1.8.0_45"
Java(TM)?SE?Runtime?Environment?(build?1.8.0_45-b14)
Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.45-b02,mixed?mode)
安装logstash
安装logstash
只需将它解压的对应目录即可,例如:/usr/local下:
?https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz
https://artifacts.elastic.co/downloads/logstash/logstash-5.6.11.tar.gz
[[email protected] ~]#?tar -zxf?logstash-5.6.11.tar.gz?-C?/usr/local/
安装完成后运行如下命令测试:
[[email protected] ~]#?/usr/local/logstash-5.6.11/bin/logstash?-e?'input?{?stdin?{?}?}?output?{?stdout?{}?}'
Logstash?startup?completed
Hello?World! ? ? ? ? ?#输入一个hello world。
2018-09-01T14:48:35.902Z dev-online hello world?#处理了输出的内容,格式:时间 主机名 ?输入的信息
codec =>rubydebug 格式化输出
[[email protected] ~]# ./bin/logstash?-e??'input { stdin{} } output { stdout {?codec=>rubydebug} }'
Logstash?startup?completed
hello?world
{
??????"message"?=>?"hello?world",
??????"@version"?=>?"1",
# ?logstash采用的是UTC时间,即0时区,所以输出的结果,比北京时间少8小时
? ??"@timestamp"?=>?"2018-09-01T06:48:47.348Z", ? ? ? ?? ?
??????"host"?=>?"dev-online"
}
安装Elasticsearch
(https://www.elastic.co/?官网)
?https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.11.tar.gz
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
下载Elasticsearch后,解压到对应的目录就完成Elasticsearch的安装。
[[email protected] ~]#?tar?-zxf?elasticsearch-5.6.11.tar.gz?-C?/usr/local/
ES的配置文件
[[email protected] ~]#cat?/usr/local/elasticsearch-5.6.11/config/elasticsearch.yml?
cluster.name: my-application #集群名
node.name: node-1 #节点名
path.data:/data/db # 默认存放安装路径下的data目录
network.host:10.1.19.18 ? ? ? ? ? ? ? ? ? ? ? ? ? # 默认是0.0.0.0:9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "10.1.19.18"] #集群单播发现
discovery.zen.minimum_master_nodes: 1
启动Elasticsearch
[[email protected] ~]# useradd es ? ? ? ? ? ?#?2.*版本之后不允许root启动
[[email protected] ~]$ /usr/local/elasticsearch-5.6.11/bin/elasticsearch -d ?# 后台运行
[[email protected] ~]$ /usr/local/elasticsearch-5.6.11/bin/elasticsearch-plugin install x-pack # 插件安装
# 确认elasticsearch的9200端口已监听,说明elasticsearch已成功运行
?[[email protected] ~]$netstat?-anp?|grep?:9200
?tcp????????0??????0?:::9200?????????????????????:::*????????????????????????LISTEN??????3362/java
?[[email protected] ~]$ curl http://ip:9200 ? # 返回json结果
常见报错
https://www.cnblogs.com/xxoome/p/6663993.html
内存不足
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配
#?vim?config/jvm.options??
-Xms2g??
-Xmx2g??
修改为??
-Xms512m?
-Xmx512m??
线程数不够
max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
修改?/etc/security/limits.d/90-nproc.conf?
* ? ? ? ? ?soft ? ?nproc ? ? 1024
改为
* ? ? ? ? ?soft ? ?nproc ? ? 2048
max_map_count不足
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf配置文件,
cat /etc/sysctl.conf | grep vm.max_map_count
vm.max_map_count=262144
sysctl -p
最大打开文件数不足
max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]
vim?/etc/security/limits.conf?
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
阿里云服务器问题
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决方法:在es配置中加入下面命令即可
bootstrap.system_call_filter: false
Kibana
安装
下载kibana后,解压到对应的目录就完成kibana的安装
https://artifacts.elastic.co/downloads/kibana/kibana-5.6.11-linux-x86_64.tar.gz
https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
[[email protected] ~]#?tar?-zxf?kibana-5.6.11-linux-x64.tar.gz?-C?/usr/local/
简单配置? ?
?vim?config/kibana.yml?
port:5601 ? ? ? ? ? ? ? ? ? ? ?#对外访问端口
host:"0.0.0.0" ? ? ? ? ? ? ? ? ? ? ?#对外访问ip
elasticsearch.url: "http://localhost:9200"? ? #数据源ES地址
启动kibana
[[email protected] ~]# ?/usr/local/kibana-5.6.11-linux-x64/bin/kibana
访问测试
? http://kibanaServerIP:5601?? ??
访问Kibana,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。? ? ??
小栗子
? ?在logstash安装目录下创建一个logstash-es-simple.conf文件,用于测试logstash使用elasticsearch作为后端存储的例子,该文件中定义了stdout和elasticsearch同时输出,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中。
实际应用
配置logstash作为Indexer
将logstash配置为索引器,并将logstash的日志打印输出到屏幕,本范例主要是索引本地系统日志。
[[email protected] ~]#cat?/usr/local/logstash-5.6.11/logstash-indexer.conf
input?{
??file?{
????type?=>"syslog"
?????path?=>?["/var/log/messages",?"/var/log/syslog"?]
??}
}
output?{
??stdout?{?codec=>?rubydebug?}
}
[[email protected] ~]#/usr/local/logstash-5.6.11/bin/logstash?-f logstash-indexer.conf
使用echo命令模拟写入日志,命令执行后看到如下图的信息
[[email protected] ~]#?echo?"`date` 你好"?>>/var/log/messages
就可以在logstash终端看到进来的日志了
学习的文章
https://www.elastic.co/guide/index.html? ? ? ? ? ?官方文档
http://kibana.logstash.es/content/? ? elk中文指南
http://www.ttlsa.com/elk/? ? ? ? ?运维生存时间 elk 系列 ?
http://www.wklken.me/posts/2015/04/26/elk-for-nginx-log.html?? 非常棒 博主有才华
http://ckl893.blog.51cto.com/8827818/1772287? ? ?简单版的elk实现nginx日志分析
http://www.ywnds.com/?p=9776 5.4.1版本 ? 运维那点事 ?文章真棒
https://www.cnblogs.com/jiu0821/p/7695149.html 5.6.3比较新多版本了
http://blog.51cto.com/13527416/2049173 沪江网搜索平台的实践
http://blog.51cto.com/zero01/2079879 6.0版本
http://blog.51cto.com/13676067/2154285 涉及到调优
以上是关于ELKstack简介及环境部署的主要内容,如果未能解决你的问题,请参考以下文章