logstash是一个数据分析软件,主要目的是分析log日志。整一套软件能够看成一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。首先将数据传给logstash,它将数据进行过滤和格式化(转成JSON格式),而后传给Elasticsearch进行存储、建搜索的索引,kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。logstash和Elasticsearch是用Java写的,kibana使用node.js框架。前端
logstash架构java
ogstash工做时,主要设置3个部分的工做属性。
input:设置数据来源
filter:能够对数据进行必定的加工处理过滤,可是不建议作复杂的处理逻辑。这个步骤不是必须的
output:设置输出目标 node
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具备搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为如下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再经过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。 linux
三、kibana数据库
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,能够经过各类图表进行高级数据分析及展现。bootstrap
Kibana让海量数据更容易理解。它操做简单,基于浏览器的用户界面能够快速建立仪表板(dashboard)实时显示Elasticsearch查询动态。vim
应用 | 版本 | 节点 |
---|---|---|
logstash | 7.3 | 192.168.11.11 |
elasticsearch | 7.3 | 192.168.11.十一、192.168.11.十二、192.168.11.13 |
kibana | 7.3 | 192.168.11.13 |
安装包下载地址:连接:https://pan.baidu.com/s/17BeXEOIAWCTcr-qCI_1cpA 提取码:9uk4跨域
vi /etc/security/limits.conf 增长的内容 root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 * soft memlock unlimited * hard memlock unlimited
vi /etc/security/limits.d/20-nproc.conf 调整成如下配置 * soft nproc 65535 root soft nproc unlimited
vi /etc/sysctl.conf 增长的内容 vm.max_map_count=655360 fs.file-max=655360
reboot
firewall-cmd --add-port=9200/tcp --permanent firewall-cmd --add-port=9300/tcp --permanent 从新加载防火墙规则 firewall-cmd --reload 或 systemctl stop firewalld systemctl enable firewalld
mkdir /data01/elk/
yum -y install jdk-8u162-linux-x64.rpm #查看java版本 java -version
#一、rpm包安装 yum -y install logstash-7.3.0.rpm #二、修改配置文件 cp logstash.yml{,.bak} #改后 logstash.yml path.data: /data01/elk/logstash/data pipeline.workers: 4 pipeline.batch.size: 1024 path.config: /data01/elk/logstash/config/conf.d path.logs: /data01/elk/logstash/logs http.host: "0.0.0.0" http.port: 9600 #改后 startup.options文件 可选择不改 LS_PIDFILE=/data01/elk/logstash/logstash.pid LS_GC_LOG_FILE=/data01/elk/logstash/logs/gc.log #、可根据主机内存大小,适当调整一下参数 vim jvm.options -Xms1g -Xmx1g
建立对应的路径浏览器
mkidr -pv /data01/elk/logstash/{data,logs,config} chown -R 1000:1000 /data01/elk/logstash
启动logstash架构
systemctl start logstash systemctl enable logstash
本次是3master3节点的部署
安装elasticsearch
yum -y install elasticsearch
配置elasticsearch
#elasticsearch.yml cluster.name: elk node.name: elk02 # 自定义属性添加到节点上 node.attr.rack: r1 node.master: true #node.voting_only: true node.data: true #node.ingest: true #node.ml: false #开启监控xpack xpack.monitoring.enabled: true #机器学习关闭 xpack.ml.enabled: false # 是否使用http协议对外提供服务,默认为true,开启 #http.enabled: true cluster.remote.connect: false path.data: /data01/elasticsearch/lib,/data02/elasticsearch/lib path.logs: /data01/elasticsearch/logs #锁定物理内存地址,防止es内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会致使IOPS变高 bootstrap.memory_lock: true network.host: 192.168.11.12 http.port: 9200 ##discovery.zen.ping.unicast.hosts旧版配置 discovery.seed_hosts: ["192.168.11.11","192.168.11.12","192.168.11.13"] #Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就能够被选为主节点 cluster.initial_master_nodes: ["192.168.11.11","192.168.11.12","192.168.11.13"] # 设置集群中N个节点启动时进行数据恢复,默认为1。 gateway.recover_after_nodes: 2 #设置是否能够经过正则或者_all删除或者关闭索引 action.destructive_requires_name: true network.tcp.no_delay: true network.tcp.keep_alive: true network.tcp.reuse_address: true network.tcp.send_buffer_size: 128mb network.tcp.receive_buffer_size: 128mb #transport.tcp.port: 9301 transport.tcp.compress: true http.max_content_length: 200mb #开启跨域访问 http.cors.enabled: true http.cors.allow-origin: "*" cluster.fault_detection.leader_check.interval: 15s discovery.cluster_formation_warning_timeout: 30s cluster.join.timeout: 120s cluster.publish.timeout: 90s cluster.routing.allocation.cluster_concurrent_rebalance: 16 cluster.routing.allocation.node_concurrent_recoveries: 16 cluster.routing.allocation.node_initial_primaries_recoveries: 16
另外两个只须要修改node.name
,network.host
为相应的节点
让init启动的程序解除限制,和系统limit一致
sed -i 39c\LimitMEMLOCK=infinity /usr/lib/systemd/system/elasticsearch.service
建立相应目录
mkdir -pv /data01/elk/elasticsearch/{lib,logs} chown -R elasticsearch:elasticsearch /data01/elk/elasticsearch
启动elasticsearch服务
#重载系统服务 systemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch
安装kibana
yum -y install kibana-7.3.0-x86_64.rpm
配置kibana
注:修改配置最好先备份后修改
#vim kibana.yml server.port: 5601 server.host: "192.168.11.13" elasticsearch.hosts: ["http://192.168.11.12:9200"] i18n.locale: "zh-CN"
启动kibana
systemctl start kibana systemctl enable kibana
排错可经过如下方式排查
journalctl -u elasticsearch -f tail -500f /data01/elk/elasticsearch/logs/elk.log