elk简介:
- elasticsearch: 分布式搜索引擎
- logstash: 日志收集与过滤,输出给elasticsearch
- Kibana: 图形化展示
elasticsearch简介
- Elasticsearch(简称ES)是一个分布式、RESTful 风格的搜索和数据分析引擎,
- 用于集中存储日志数据。
Elasticsearch术语:
- Index:索引是多个文档的集合
- document:Index里每条记录称为document,若干文档构建一个Index
- Type:一个Index可以定义一种或多种类型,将document逻辑分组
- Field:ES存储的最小单元
Logstash简介
Logstash能够将采集日志、格式化、过滤,最后将数据推送到Elasticsearch存储。
- Input:输入,输入数据可以是Stdin、File、TCP、Redis、Syslog等。
- Filter:过滤,将日志格式化。有丰富的过滤插件:Grok正则捕获、Date时间处理、Json编解码、Mutate数据修改等。
- Output:输出,输出目标可以是Stdout、File、TCP、Redis、ES等。
| 部署服务 | IP |
|---|---|
| elasticsearch | 192.168.112.10 |
| elasticsearch | 192.168.112.11 |
| elasticsearch | 192.168.112.12 |
| logstash | 192.168.112.13 |
| kibana | 192.168.112.14 |
el
elasticsearch集群安装 下载地址https://www.elastic.co/cn/downloads/elasticsearch
选择二进制包部署启动先决条件:
• 调整进程最大打开文件数数量
vi /etc/security/limits.conf * hard nofile 65535 * soft nofile 65535
• 调整进程最大虚拟内存区域数量
echo "vm.max_map_count=262144" >> /etc/sysctl.conf sysctl -p解压软件包
# 因为二进制包中自带jdk所以无需另外安装 cd /usr/local/elk tar zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz mv elasticsearch-7.9.3 elasticsearch useradd es # 出于安全考虑,默认不能用root账号启动 chown -R es:es elasticsearch修改配置
# vim config/elasticsearch.yml cluster.name: elk-cluster # 集群名称 node.name: node-1 # 集群节点名称 path.data: /path/to/data # 数据目录 path.logs: /path/to/logs # 日志目录 network.host: 0.0.0.0 # 监听地址 http.port: 9200 # 监听端口 # transport.tcp.port: 9300 #内部节点之间通信端口 discovery.seed_hosts: [“192.168.112.10”, “192.168.112.11”,“192.168.112.12”] # 集群节点列表 cluster.initial_master_nodes: [“node-1”] # 首次启动指定的Master节点
注意:在其他es节点不启用cluster.initial_master_nodes参数,注释掉
配置systemd管理服务# cat /usr/lib/systemd/system/elasticsearch.service [Unit] Description=elasticsearch [Service] User=es LimitNOFILE=65535 ExecStart=/usr/local/elk/elasticsearch/bin/elasticsearch ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target # systemctl daemon-reload # systemctl start --now elasticsearch
查看集群节点:curl -XGET 'http://127.0.0.1:9200/_cat/nodes?pretty' 查询集群状态: curl -i -XGET http://127.0.0.1:9200/_cluster/health?prettyLogstash安装 jdk安装
cd /usr/local/ tar zxvf jdk-8u221-linux-x64.tar.gz mv jdk-8u221 jdk vi /etc/profile JAVA_HOME=/usr/local/jdk PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATHlogstash部署
cd /usr/local/elk tar zxvf logstash-7.9.3.tar.gz mv logstash-7.9.3 logstash # 配置systemd管理 # vi /usr/lib/systemd/system/logstash.service [Unit] Description=logstash [Service] ExecStart=/usr/local/elk/logstash/bin/logstash ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target配置修改
# vim config/logstash.yml pipeline: # 管道配置 batch: size: 125 delay: 5 path.config: /usr/local/elk/logstash/conf.d # conf.d目录自己创建 # 定期检查配置是否修改,并重新加载管道。也可以使用SIGHUP信号手动触发 # config.reload.automatic: false # config.reload.interval: 3s # http.enabled: true http.host: 0.0.0.0 http.port: 9600-9700 log.level: info path.logs: /usr/local/elk/logstash/logs启动logstash
systemctl start logstash systemctl enable logstash



