ELK+Filebeat流程:
Filebeat->Logstash->(Elasticsearch<->Kibana)
Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。
Logstash: 数据收集引擎,它支持动态的的从各种数据源获取数据,并对数据进行过滤,分析,丰富,统一格式等操作,然后存储到用户指定的位置。
Kibana: 数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。
Filebeat: 轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装Filebeat,并指定目录与日志格式,Filebeat就能快速收集数据,并发送给logstash进行解析,或是直接发给Elasticsearch存储
root用户建议不直接启动es
useradd es
mkdir -p /data/elk/es/data
mkdir -p /data/elk/es/logs
chown es:es -R /data/elk/es
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
vi /etc/sysctl.conf
vm.max_map_count=655360
配置生效
sysctl -p
上传安装包 elasticsearch-6.3.0.tar.gz to 到目录/opt
tar -zxvf elasticsearch-6.3.0.tar.gz
chown es:es -R elasticsearch-6.3.0
cd /opt/elasticsearch-6.3.0/config
vim elasticsearch.yml
cluster.name: es-log #集群名称
node.name: "node-1" #该节点名称
path.data: /data/elk/es/data #数据存储路径
path.logs: /data/elk/es/logs #日志文件路径
network.host: 192.168.2.129 #绑定监听IP,一般为本机
http.port: 9200 #es服务端口号
discovery.zen.ping.unicast.hosts: ["192.168.2.129","192.168.2.130"] #配置自动发现
node.master: true #该节点为主节点,默认集群中第一台服务器为master,如果这台机器停止会重新选举master
node.data: true #允许该节点存储数据(默认开启)
su es
cd /opt/elasticsearch-6.3.0/bin
./elasticsearch -d
重复上述步骤至相应服务器,修改相应配置文件的node.name
、network.hosts
。
http://ip:9200/_cluster/health?pretty=true
此次安装在es主服务器上
上传安装包kibana-6.3.0-linux-x86_64.tar.gz 到目录/opt
tar -xzvf kibana-6.3.0-linux-x86_64.tar.gz
useradd elk
mkdir -p /data/elk/kibana/pid
mkdir -p /data/elk/kibana/logs
chown elk:elk -R kibana-6.3.0-linux-x86_64
chown elk:elk -R /data/elk/kibana
cd /opt/kibana-6.3.0-linux-x86_64/config
vim kibana.yml
server.port: 5601 #默认端口是5601,
server.host: "ip" #本机地址,访问此地址+端口显示kibana界面
server.name: "kibana" #
elasticsearch.url: "http://ip:9200" #es集群地址和端口
pid.file: /data/elk/kibana/pid/kibana.pid
logging.dest: /data/elk/kibana/logs/stdout.log
i18n.defaultLocale: "zh-CN"
su elk
cd /opt/kibana-6.3.0-linux-x86_64/bin
nohup ./kibana &
上传安装包 logstash-6.3.0.tar.gz 到目录 /opt
tar -xzvf logstash-6.3.0.tar.gz
chown elk:elk -R logstash-6.3.0
cd /opt/logstash-6.3.0/config
mkdir conf.d
vim logstash.yml
path.config: /opt/elk/logstash-6.3.0/config/conf.d
vim conf.d/logback-2-es.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://ip:9200","http://ip:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
chown elk:elk -R conf.d
su elk
cd /opt/logstash-6.3.0/bin
nohup ./logstash -f …/config/conf.d/logback-2-es.conf &
ps -ef |grep logstash
登陆需要拉取日志文件的服务器
上传安装包 filebeat-6.3.0-linux-x86_64.tar.gz 到目录 /opt
tar -xzvf filebeat-6.3.0-linux-x86_64.tar.gz
chown elk:elk -R filebeat-6.3.0-linux-x86_64
cd /opt/filebeat-6.3.0-linux-x86_64
vim filebeat.yml
- type: log
enabled: true
paths:
- /var/log/*.log #监控日志
fields: #新增标签,用于分类展示
hospital: clsyy
logtype: mainlog
multiline.pattern: ^(\d{4}\d{2}\d{2})\s(\d{2}:\d{2}:\d{2}) #配置时间格式为yyyymmdd hh:mi:ss
multiline.negate: true
multiline.match: after
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
output.logstash:
# The Logstash hosts
hosts: ["ip:5044"] #需要配置logstash所在服务器IP
su elk
cd /opt/filebeat-6.3.0-linux-x86_64
nohup ./filebeat -c ./filebeat.yml &
如下图在kibana的management菜单中配置index,填写索引名
在discover菜单中,可以预览查询数据,可以通过添加过滤条件来筛选数据
1、scan_frequency:1s #小于1s可能导致filebeat在频繁的循环中扫描磁盘