Elasticsearch
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
FileBeat
隶属于Beats,轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择,目前Beats包含四种工具:
- 1.Packetbeat(搜集网络流量数据)
- 2.Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。)
- 3.Filebeat(搜集文件数据)
- 4.Winlogbeat(搜集 Windows 日志数据)
为什么用 Filebeat ,而不用原来的 Logstash 呢?
原因很简单,资源消耗比较大。
**由于 Logstash 是跑在 JVM 上面,资源消耗比较大,后来作者用 GO 写了一个功能较少但是资源消耗也小的轻量级的 Agent 叫 Logstash-forwarder。**后来作者加入 elastic.co 公司, Logstash-forwarder 的开发工作给公司内部 GO 团队来搞,最后命名为 Filebeat。
Kibana
Kibana可以为 Logstash 、Beats和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
安装Java JDK
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1536892035_945cb24c750d0971b8c5b1925cc723a9
mv jdk-8u181-linux-x64.tar.gz?AuthParam=1536892035_945cb24c750d0971b8c5b1925cc723a9 java
解压
tar -zxvf jdk-8u181-linux-x64.tar.gz
编辑环境变量
vim /etc/profile
在文件末尾加上
JAVA_HOME=/usr/local/jdk1.8.0_181/ JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
使配置生效,并查看版本。
source /etc/profile java -version
安装es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
解压
tar -zxvf elasticsearch-6.2.4.tar.gz
进入Elasticsearch主目录,修改配置
vi config/elasticsearch.yml
添加以下配置,或者将对应的配置注释取消修改
network.host: 0.0.0.0 http.port: 9200
由于Elasticsearch不能使用root用户打开,所以需要专门创建一个用户来启动Elasticsearch
useradd elastic #设置密码 passwd elastic #需要输入2次密码 #授权 chmod -R 777 /usr/local/elasticsearch-6.2.4 #切换用户 su elastic
创建的用户名为elastic,其中/usr/local/elasticsearch-6.2.4为解压出来的Elasticsearch主目录
启动Elasticsearch
./bin/elasticsearch
如果遇到错误:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[root@mes-1 config]# vim jvm.options ----将 -Xms1g ----修改成 -Xms2g -Xmx1g ----修改成 -Xms2g
增加最大文件打开数 echo "* - nofile 65536" >> /etc/security/limits.conf 增加最大进程数 vim /etc/security/limits.conf ---在文件最后面添加如下内容 * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 解释: soft xxx : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。 hard xxx : 代表严格的设定,不允许超过这个设定的值。 nofile : 是每个进程可以打开的文件数的限制 nproc : 是操作系统级别对每个用户创建的进程数的限制 增加最大内存映射数(调整使用交换分区的策略) +++++++++++++++++++++++++++++++++++++++++ vim /etc/sysctl.conf ---添加如下 vm.max_map_count=262144 vm.swappiness=0 +++++++++++++++++++++++++++ [root@mes-1 ~]# sysctl -p 解释:在内存不足的情况下,使用交换空间。 [root@mes-1 ~]# sysctl -w vm.max_map_count=262144 增大用户使用内存的空间(临时)
curl 127.0.0.1:9200
会得到类似以下json
{
"name" : "dQIO4Ad",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "P8KtmO3vQdactRW1jX9JnQ",
"version" : {
"number" : "6.2.4",
"build_hash" : "ccec39f",
"build_date" : "2018-04-12T20:37:28.497551Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
安装Kibana
下载Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
解压
tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz
进入主目录,修改配置
vi config/kibana.yml
添加以下配置或者取消注释并修改
elasticsearch.url: "http://es节点ip:9200" server.host: "0.0.0.0" kibana.index: ".kibana"
其中elasticsearch.url为Elasticsearch的地址,server.host默认是localhost,如果只是本地访问可以默认localhost,如果需要外网访问,可以设置为0.0.0.0
启动Kibana
./bin/kibana
安装FileBeat
下载FileBeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
解压
tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz
进入主目录,修改配置
vi filebeat.yml
找到类似以下的配置并修改
filebeat.prospectors:
- type: log
enabled: true #默认是false,改为true才能收集日志
paths:
- /var/xxx/*.log #需要收集日志的路径,注意 - 后面要有空格,注意空格,yaml格式
- /var/xxx/*.out
multiline.pattern: ^[
multiline.negate: true
multiline.match: after
setup.kibana:
host: "localhost:5601"
output.elasticsearch:
hosts: ["es的ip:9200"]
启动FileBeat
./filebeat -c /usr/local/filebeat/filebeat.yml
/usr/local/filebeat/filebeat.yml为filebeat 的配置文件地址,需要根据实际情况修改,启动后FileBeat就会自动收集日志了
配置Kibana
访问kibana
kibana的ip+5601



