标签:测试
《 Elasticsearch 》设置监听地址:vim /etc/elasticsearch/elasticsearch.yml
cluster.name: 集群名字,统一的。(很多不允许数字开头)
node.name: Node名字,自定义,自己的。
node.attr.rack: r1 机架名 ,根据生产环境定义,实验测试可放在同一台。
path.data: /var/lib/elasticsearch 数据存放路径,习惯性的在/data/下做一个软链:
(mv /var/lib/elasticsearch /data/ ln -s /data/elasticsearch /var/lib/elasticsearch)
path.logs: /var/log/elasticsearch 日志存放路径
discovery.zen.ping.unicast.hosts: 改版以后需要填域名,必须能解析 ,中括号里的第一个主机一般都是master
在页面里 * 代表master ,做过群集的服务器状态低于%70说明数据不同步,旧的服务器认为以前的NODE节点不在了便不会同步新的服务器。
node 节点数最好是单数,防止脑裂(双数的群集在master)
discovery.zen.ping.unicast.hosts: ["yxlxixi", "yxlhaha"]
network.host: 0.0.0.0 网络主机
重启:systemctl restart elasticsearch
ss -anl |grep 9200 elasticsearch 端口 9300 :ESC群集之间通讯的 9100:图形界面端口
查看 elasticsearch的信息(版本) :curl http://localhost:9200
"lucene_version" : "7.2.1": elasticsearch的版本信息,群集之间的版本要相同,不然会导致数据不同步,为了防止版本的不同步,在配置完elasticsearch.yml后改成备份的名字,ESC不认识的文件名,就可以防止yum update后的版本不一致导致数据不同步的现象。
curl 访问ESC 的语法 :curl -X<VERB> ‘<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>‘ -d ‘<BODY>‘
说明:
VERB HTTP方法: GET , POST , PUT , HEAD , DELETE
PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用
HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
PORT Elasticsearch HTTP服务所在的端口,默认为9200
PATH API路径(例如count将返回集群中文档的数量),PATH可以包含多个组件,例如cluster/stats或者
_nodes/stats/jvm
QUERY_STRING 一些可选的查询请求参数,例如 ?pretty 参数将使请求返回更加美观易读的JSON数据 BODY 一个JSON格式的请求主体(如果请求需要的话)
查看master和node的状态 :curl -X GET localhost:9200/_cat/nodes
查看群集的状态:curl -X GET localhost:9200/_cluster/state/nodes?pretty 或
curl -X GET localhost:9200/_cat/health
Logstash架构收集日志
原理:监控nginx apache 等日志,然后将收集的日志(filter过滤)输出(output)给本机的ESC或其他服务器的logstash,也可以是redis:<分层解决 层级之间松耦合 不xianghu依赖>
多台服务器上都部署有logstash收集日志(日志收集的代理),写在多个或一个redis(解耦合的队列),后边的logstash(集中日志)从redis上读取日志数据再写到ESC(存储日志)里。因为logstash收集的日志太多太快,通过redis(慢)给后边的logstash或者ESC减轻前台Logstash的压力,前台的logstash只管把数据交给Redis其他的不管,这就是队列服务器,Redis后边的logstash或者ESC先进先出的顺序来读取数据。不产生依赖,一个坏掉不影响其他的。(这就是解耦合也就是松耦合的架构,两个程序模块有关联就叫做耦合,也叫做生产者消费模型)如果没有队列,前台的loastash得发送一个数据等后边的服务器接收到才继续下一个动作。
Logstash 安装与测试:之前配置的elasticsearch.repo即可,yum -y install logstash
测试:/usr/share/logstash/bin/logstash -e ‘input {stdin{}} output{stdout{codes=>rubydebug}}‘ --path.settings /etc/logstash
Logstash收集nginx log:
测试:/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf --path.settings /etc/logstash &(后台)
Kibana(图形化操作界面)
filebeat:一个插件,也可以监控日志,相当于agent和logstash,filebeat讲数据传输给logstash或者redis,losstash再把数据存储到ESC上:
配置filebeat:
重启logstash . systemctl restart logstash
安装: 在另一台服务器上装 rpm -ivh filebeat-6.2.4-x86_64.rpm
配置:
Hosts: server端logstash:ip 以及filebeat端口
vim /etc/firebeat/filebeat.yml : 注释Outputs的hosts行 ,开启logstash output行的hosts: ["server端的ip:5044"]
开启: systemctl start filebeat
测试: curl http://localhost:9200/_cat/indices
浏览器测试:firebeat端ip 出现Apache的网页多刷进行测试,再次查看,curl http://localhost:9200/_cat/indices ,发现日志数量增多了。
有许多图片没上传,暂时不上传了。
标签:测试
原文地址:http://blog.51cto.com/13576471/2105103