1、ELK简介
1.1、ELK是什么
- Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
- Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤、并将其存储供以后处理(如,搜索)
- Kibana也是一个开源和免费的工具,它可以为Logstash和Elasticsearch提供日志分析友好的web界面,可以帮助您汇总,分析和搜索重要的数据日志。
1.2、集中式的日志管理系统
ELK针对多态服务器日志不统一问题,提供多种检索规则,方便可视化展示,解决多点日志查询问题。
简单的业务实现
1.3、ELK
服务 | 语言 | 功能 |
Elasticsearch | java | 实时的分布式搜索和分析引擎,他可以用于全文检索,结构化搜索以及分析,lucene。Solr |
Logstash | JRuby | 具有实时渠道能力的数据收集引擎,包含输入、过滤、输出模块,一般在过滤模块中做日志格式化的解析工作 |
Kibana | JavaScript | 为ElasticSerach提供分析平台和可视化的Web平台。他可以ElasticSerach的索引中查找,呼唤数据,并生成各种维度的表图 |
2、ELK的安装
我是自己用虚拟机搭的,穷
2.1、安装Centos7
centos7下载地址 建议内存2G以上
2.2、基本设置
- 设置IP地址
• vi /etc/sysconfig/network-scripts/ifcfg-eno33
service network restart• 添加用户并授权
[root@localhost ~]# adduser elk1
[root@localhost ~]# passwd elk1
[root@localhost ~]# whereis sudoers
[root@localhost ~]# ls -l /etc/sudoers
[root@localhost ~]# chmod -v u+w /etc/sudoers
[root@localhost ~]# vi /etc/sudoers
root ALL=(ALL) ALL
linuxidc ALL=(ALL) ALL #这个是新增的用户
[root@localhost ~]# chmod -v u-w /etc/sudoers
[root@localhost ~]# su elk1
3、Elsticsearch安装
3.1JAVA环境安装
- 解压安装包
• [root@localhost jdk1.8]# tar -zxvf jdk-8u171-linux-x64.tar.gz
• 设置Java环境变量
[root@localhost jdk1.8.0_171]# vi /etc/profile
在文件最后添加
export JAVA_HOME=/home/elk1/jdk1.8/jdk1.8.0_171
export JRE_HOME=JAVA_HOME/LIB:CLASSPATH
export PATH=JRE_HOME/bin:$PATH• 使环境变量生效
[root@localhost jdk1.8.0_171]# source /etc/profile
[root@localhost jdk1.8.0_171]# java -version
java version “1.8.0_171”
Java™ SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot™ 64-Bit Server VM (build 25.171-b11, mixed mode)
3、ElasticSearch单机安装
[root@localhost elasticserach]# tar -zxvf elasticsearch-6.3.1.tar.gz
[root@localhost elasticserach]# cd elasticsearch-6.3.1/bin
[root@localhost bin]# ./elasticsearch
注:elasticsearch启动不能用root用户,这也是上面创建用户的原因
切换用户启动
[root@localhost bin]# su elk1
[elk1@localhost bin]$ ./elasticsearch
注:上面的错误是该用户没有权限,授权后启动
[root@localhost bin]# chown -R elk1:elk1 /home/elk1/elasticsearch
[elk1@localhost bin]$ ./elasticsearch
[elk1@localhost config]$ vi jvm.options
• 进入elasticSearch配置文件中,更改jvm参数
[elk1@localhost config]$ vi jvm.options
[elk1@localhost bin]$ ./elasticsearch
通过http访问测试
[root@localhost jdk1.8.0_171]# curl 127.0.0.1:9200• 后台启动
[elk1@localhost bin]$ ./elasticsearch -d• 关闭程序
[elk1@localhost bin]$ ps -ef|grep elastic
[elk1@localhost bin]$ kill 10097• 设置windows下浏览器访问
[root@localhost bin]systemctl stop firewalld
[root@localhost bin]vi config/elasticsearch.yml
更改为你虚拟机的ip• 还需要更改两个配置文件,linux自带的
1. [root@localhost bin]# vi /etc/security/limits.conf
文件中新增如下配置
#* hard nofile 65536
#* soft nofile 131072
#* hard nproc 4096
#* hard nproc 2048
#号是注释不要粘贴2. [root@localhost bin]# vi /etc/sysctl.conf
文件中新增如下配置
vm.max_map_count=655360
fs.file-max=655360
保存后执行如下命令
[root@localhost bin]# sysctl -p
3.3、ElasticSerach集群安装
- 修改配置文件elasticserach.yml
vim /elasticsearch.yml
cluster.name: aubin-cluster#必须相同
#集群名称(不能重复)
node.name: els1(必须不同)
#节点名称,仅仅是描述名称,用于在日志中区分(自定义)
#指定了该节点可能成为 master 节点,还可以是数据节点
node.master: true
node.data: true
path.data: /var/lib/elasticsearch
#数据的默认存放路径(自定义)
path.logs: /var/log/elasticsearch
#日志的默认存放路径
network.host: 192.168.0.1
#当前节点的IP地址
http.port: 9200
#对外提供服务的端口
transport.tcp.port: 9300
#9300为集群服务的端口
discovery.zen.ping.unicast.hosts: [“172.18.68.11”, “172.18.68.12”,“172.18.68.13”]
#集群个节点IP地址,也可以使用域名,需要各节点能够解析
discovery.zen.minimum_master_nodes: 2
#为了避免脑裂,集群节点数最少为 半数+1
注意:清空data和logs数据
192.168.14.12:9200/_cat/nodes?v
未完待续。。。。。