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 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
5.4.0
tar -zxvf 包名
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
官网下载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 &
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
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分几种下回详说