网站建设的标语,做设计需要素材的常用网站,wordpress登录链接修改,网站调优一、ELK说明
ELK是Elasticsearch#xff08;ES#xff09; Logstash Kibana 这三个开源工具组成#xff0c;官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic
简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…一、ELK说明
ELK是ElasticsearchES Logstash Kibana 这三个开源工具组成官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic
简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
Kibana: 可以对 Elasticsearch 进行可视化还可以在 Elastic Stack 中进行导航这样便可以进行各种操作了从跟踪查询负载到理解请求如何流经您的整个应用都能轻松完成。
Logstash: 是开源的服务器端数据处理管道能够同时从多个来源采集数据转换数据然后将数据发送到您最喜欢的“存储库”中。一般用在日志的搜集、分析、过滤支持大量的数据获取方式。
Filebeat:收集文件数据。
二、基础环境
1. 准备以下几台机器 主机 服务器角色 主机系统 软件版本 es-node1 Elasticsearch搜索引擎 Centos7 Elasticsearch:7.15.5 es-node2 Elasticsearch搜索引擎 Centos7 Elasticsearch:7.15.5 es-node3 Elasticsearch搜索引擎 Centos7 Elasticsearch:7.15.5 kibana Kibana(界面展示) Centos7 Kibana:7.15.5 logstash Logstash(日志处理) Centos7 Logstash:7.15.5 filebeat Filebeat(日志收集) Centos7 Filebeat:7.15.5
2. 关闭selinux
3.主机之间同步时间
三、Elasticsearch集群部署
3.1 前提准备
3.1.1 安装包下载
https://www.elastic.co/cn/downloads/past-releases#elasticsearch 进行下载相应的产品版本点击“Download”后选择需要的方式包进行下载本文以linux 二进制方式进行部署 3.1.2 创建用户及授权注每个节点都需要操作
ElasticSerach要求以非root身份启动在每个节点创建用户及用户组 1 2 groupadd elasticsearch useradd elasticsearch -g elasticsearch
解压安装包并附所属权
tar -xvzf elasticsearch-7.17.5-linux-x86_64.tar.gz -C /home/elasticsearch chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.5 在每个节点上创建数据data和logs目录 1 2 mkdir -p /data/elasticsearch/{data,logs} 3.1.3 java环境
配置环境变量 ## 在/etc/profile 下添加 ## set java environment JAVA_HOME/home/elasticsearch/elasticsearch-7.17.5/jdk CLASSPATH$JAVA_HOME/lib/ PATH$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH
使环境变量生效并验证 1 2 source /etc/profile java -version
3.1.4 内存不能锁定问题可选 1 2 3 4 ## 在配置 ElasticSearch 服务过程中我们一般要设置 bootstrap.memory_lock 为 true避免内存数据被交换到 SWAP 分区中。 cat /etc/systemd/system.conf |grep DefaultLimitMEMLOCK ## 需要修改为 DefaultLimitMEMLOCKinfinity
注需要重启机器
3.1.5 修改vm.max_map_count 修改一个进程可以拥有的VMA(虚拟内存区域)的数量
vim /etc/sysctl.conf 调整
vm.max_map_count262144
执行sysctl -p 生效 3.2 配置
3.2.1 修改elasticsearch配置文件
配置elasticsearch.yml文件说明
node.name: node-1 #每个节点不一样#节点是否具有成为主节点的资格
node.master: true#节点是否存储数据
node.data: true#ES 数据保存目录
path.data: /data/elasticsearch/data#ES 日志保存目
path.logs: /data/elasticsearch/logs#服务启动的时候锁定足够的内存防止数据写入
swapbootstrap.memory_lock: true#监听
IPnetwork.host: 0.0.0.0#监听端口
http.port: 9200#集群中 node 节点发现列表
discovery.seed_hosts: [10.10.100.110, 10.10.100.111,10.10.100.112]#集群初始化那些节点可以被选举为
mastercluster.initial_master_nodes: [10.10.100.110, 10.10.100.111,10.10.100.112]#一个集群中的 N 个节点启动后,才允许进行数据恢复处理默认是 1
gateway.recover_after_nodes: 2####设置是否可以通过正则或者_all 删除或者关闭索引库
####默认 true 表示必须需要显式指定索引库名称
####生产环境建议设置为 true
####删除索引库的时候必须指定否则可能会误删索引库中的索引库。
action.destructive_requires_name: truenode1节点 1 grep -Ev ^$|^[#;] elasticsearch.yml node2节点
grep -Ev ^$|^[#;] elasticsearch.yml node3节点 1 grep -Ev ^$|^[#;] elasticsearch.yml 3.2.2 修改JVM内存限制 1 2 3 4 在vm.options 中调整 -Xms2g -Xmx2g #最小和最大内存限制 #官方配置文档最大建议 30G 以内默认是1G根据实际情况进行调整
3.2.3 开启跨域访问支持可选 1 2 3 4 5 在elasticsearch.yml文件中配置一下2个参数 #开启支持跨域访问 http.cors.enabled: true #指定允许访问范围 http.cors.allow-origin: * 3.3 启动并验证 1 2 3 ## 启动 su - elasticsearch ./elasticsearch-7.17.5/bin/elasticsearch -d 查看监听端口分别是9200和9300 netstat -ant|grep 9200 netstat -ant|grep 9300 浏览器访问查看
查看集群健康状态http://IP:9200/_cluster/health?pretty 查看集群详细信息http://IP:9200/_cluster/state?pretty
查看索引列表http://IP:9200/_cat/indices?v
四、Kibana部署
本文复用ES的一台机器进行部署实际环境可以单独部署一台。
4.1 前提准备
4.1.1 安装包下载
在https://www.elastic.co/cn/downloads/past-releases#kibana 进行下载相应的软件版本 4.1.2 创建用户及授权 1 2 groupadd kibana useradd kibana -g kibana 4.1.3 解压安装包并附所属权 1 tar -xzvf kibana-7.17.5-linux-x86_64.tar.gz -C /home/kibana chown -R kibana:kibana /home/kibana/kibana-7.17.5-linux-x86_64 4.1.4 创建日志目录并附所属权 1 2 mkdir -p /data/kibana/logs/ chown -R kibana:kibana /data/kibana 4.2 配置 1 grep -Ev ^$|^[#;] kibana.yml 4.3 启动并验证
使用kibana账号启动
4.3.1 启动 1 2 su - kibana ./kibana-7.17.5-linux-x86_64/bin/kibana --allow-root /data/kibana/logs/kibana.log 停止 kill -9 lsof -i :5601 -t
4.3.2 验证 1 2 ## 端口验证 netstat -ant|grep 5601 浏览器验证http:IP:5601 五、Logstash部署
5.1 准备
5.1.1 安装包下载
通过官网下载链接 https://www.elastic.co/cn/downloads/past-releases#logstash 选择对应的版本 5.1.2 创建数据和日志目录 1 mkdir -p /data/logstash/{logs,data} 5.2 配置
5.2.1 修改logstash配置文件可以不修改 1 grep -Ev ^$|^[#;] logstash.yml 5.2.2 创建监控日志的配置文件
Logstash可以直接采集日志文件本文采用filebeat收集日志logstash处理日志
input {beats {port 5044codec plain{ charset GB2312 }}
}
filter{grok {match { message %{TIMESTAMP_ISO8601:logdate} }}date {match [ logdate,ISO8601]target timestamp}mutate{remove_field logdate}
}
output {elasticsearch {hosts [10.211.55.5:9200] # 定义es服务器的ipindex emqx-%{YYYY.MM.dd} # 定义索引}
} grep -Ev ^$|^[#;] logstash.conf 5.3 启动
## 默认端口9600,执行命令后需要等一会儿启动成功。
./bin/logstash -f config/logstash.conf 5.4 验证 六、Filebeat部署
6.1准备
官网下载安装包链接https://www.elastic.co/cn/downloads/past-releases#filebeat 选择对应版本 6.2 配置
filebeat安装后,只需要配置好监控的日志。包含input和output 等。
filebeat.inputs:
# 第一个输入
- type: log
#是否启用enabled: true# 自定义标签tags: [qgzhdc-px-data-node]# 收集日志的文件路径可以使用通配附*等paths:- /home/bagpipes/emqx/log/emqx.log.*- /home/bagpipes/emqx/log/abc.*.txtencoding: GB2312####fields 自定义字段与值这个在检索日志时使用###会给每条日志增加此key与value能够标识出日志来源。fields:ip: 10.211.55.5# fields_under_root如果为false,则fields下的key会挂到fields下true的话fields_under_root: truemultiline:type: patternpattern: ^\d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{1,2}:\d{1,2}.\d{6}\\d{1,2}:\d{1,2}negate: truematch: after
output.logstash:hosts: [10.211.55.5:5044] 6.3 启动 1 2 ## 后台启动 nohup ./filebeat -e -c filebeat.yml /dev/null 21
6.4 验证
进程启动验证 七、完整应用验证
首先所有服务都正常启动。
7.1 Filebeat验证
如何通过filebeat数据正常处理完成并输出符合预期的内容可以采用输出到控制台进行调试验证在filebeat.yml配置文件中调整输出为控制台方式 7.2 Logstash验证
如何通过logstash数据正常处理完成并输出符合预期的内容可以采用输出到控制台进行调试验证在logstash.conf 配置文件中调整输出为控制台方式 7.3 ES验证
通过地址api查看是否有相应的索引自动创建并占用存储http://IP:9200/_cat/indices?v 7.4 Kibana验证
7.4.1 创建索引模版
按照截图中进入management 中选择“stack management” 7.4.2 查看索引
点击“Discover” 进入日志查询界面