ELK集群安装及简单使用

节点信息(角色)

192.168.1.105  es-2   /elk(目录)

192.168.1.108  es-1   logstash  kibana  /mydata/elk

192.168.1.106 es-3 /elk

 

一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

我介绍的方式都是离线安装的方式

ES

  1. 官网下载安装包tar

5.4.0

  1.  解压

 tar -zxvf 包名

  1.  编辑配置文件

vi /xx/config/elasticsearch.yml

改变几个地方

cluster.name : ELK

node.name: es-1

network.host: 192.168.1.106

http.port : 9200

discovery.zen.ping.unicast.hosts :["192.168.1.105","192.168.1.106","192.168.1.108"]

保存,退出;

 启动服务

创建es用户,把es文件夹权限分配过去

useradd elk

passwd elk

chown -R elk:elk /elk/elasticsearch

用户必须用elk用户开启es,不然会出现root不能进行启动es的错误

为了方面启动我们在/etc/profile里面加上export es

查看端口状态

ss -tnl

有无ip+端口(9200,9300)

至此,节点es-1配置完成。

之后几台,同样方式添加

查询版本

elasticsearch -V

启动

sh elasticsearch -d

停止

直接kill掉

重启

Kill 杀掉

sh elasticsearch -d

查询集群状态方法①

curl -XGET 'http://192.168.1.106:9200/_cat/nodes'

查询集群健康状况

curl http://localhost:9200/_cat/health?v

curl -XGET 'http://192.168.1.106:9200/_cat/nodes?v' //同上在后面添加 ?v ,表示详细显示

查询集群状态方法②

curl -XGET 'http://192.168.1.106:9200/_cluster/state/nodes?pretty'

查询集群中的master

curl -XGET 'http://192.168.1.106:9200/_cluster/state/master_node?pretty'   

curl -XGET 'http://192.168.1.106:9200/_cat/master?v'

查询集群的健康状态

curl -XGET 'http://192.168.1.106:9200/_cat/health?v'

curl -XGET 'http://192.168.1.106:9200/_cluster/health?pretty'

elasticsearch rest api遵循的格式为:

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

Logstash

官网下载logstash 5.4.0

并解压

tar -zxvf logstash 5.4.0

构建离线插件包:bin/logstash-plugin prepare-offline-pack logstash-input-beats

安装离线插件包: bin/logstash-plugin install file:///elk/logstash/logstash 5.4.0

配置 5044 端口作为 Filebeat 的连接和创建 ES 索引。新建 logstash.conf 配置文件,

input {

  beats {

    port => 5044

  }

}

 

output {

  elasticsearch {

    hosts => "192.168.1.108:9200"

    manage_template => false

    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"

    document_type => "%{[@metadata][type]}"

  }

}

 

Logstash 使用该配置使用 ES 的索引,和 Filebeat 做的事情是一样的,不过拥有了额外的缓存以及强大丰富的插件库。

启动 logstash :

./bin/logstash -f config/logstash.conf &

Kibana

vi /kibana/config/kibana.yml

改变几个地方

server.port:5601

server.host:"ip"

elasticsearch.url:"http://192.168.1.105:9200"

保存后,退出;

./bin/kibana &

ss -tnl

查看有无端口5601,或者看日志

如果此法出现插件错误,把进程kill掉,重启动kibana

X-Pack安装

Kibana是一个为 ElasticSearch 提供的数据分析的 Web 接口(5601)。可使用它对日志进行高效的搜索、可视化、分析等各种操作。Kibana目前最新的版本5.3.

X-Pack是Kibana中单独的一个组件,在5.x之前各种单独的组件(Shield, Watcher, Marvel, Graph, Reporting),现在都集成到X-Pack中.

KIbana+X-Pack实现集群的监控

安装

在ES 安装x-pack,ES停用状态下执行

在ES目录下

elasticsearch-plugin install x-pack   

在Kibana中安装 x-pack ,Kibana停用状态下执行

 zip包大小约120MB,注意您的网络。。。耐心等待!

在 kibana目录下

kibana-plugin install x-pack

启动ES,启动kibana 

验证x-pack

在浏览器上输入: http://localhost:5601/ ,可以打开Kibana,此时需要输入用户名和密码登录,默认分别是 elastic 和 changeme。

登录到Kibana会发现 elastic是一个最高级别的user,拥有所有权限,其角色是superuser。当然在这里我们也可以添加自定义的用户,并为其分配角色,不同的角色对应不同的功能。

我们不仅可以通过kibana可视化的界面来管理用户

另外我们也可以通过ES的Reset Password API来管理用户。

PUT _xpack/security/user/elastic/_password

{

"password": "elasticpw"

}

PUT _xpack/security/user/kibana/_password

{

"password": "kibanapw"

}

修改了kibana的密码之后,还需要修改kibana.yml的配置文件中

elasticsearch.password:kibanapw

因为x-pack插件其实是收费的,所以我们要把他破解掉,也可以直接交钱

 

说明:其实我们一般不会用logstash去采集数据,一般采集数据是用Filebeat去采集,

轻量级,资源占比很少,很好用,当然beat分几种下回详说

 

 

 

 

发布了2 篇原创文章 · 获赞 1 · 访问量 61

猜你喜欢

转载自blog.csdn.net/qq_41379739/article/details/86154712
今日推荐