ELK+filebeat企业级日志收集分析平台(非集群)
需要用到软件,
1、elasticsearch-6.5.4.tar.gz
2、kibana-6.5.4-linux-x86_64.tar.gz
3、logstash-6.5.4.tar.gz
4、phantomjs-2.1.1-linux-x86_64.tar.bz2
5、elasticsearch-head-master(es的插件)
6、filebeat-6.5.4-linux-x86_64.tar.gz
7、node-v10.19.0-linux-x64.tar.gz
8、jdk-8u231-linux-x64.tar.gz
192.168.1.158 | es+logstash+kibana+jdk+node |
192.168.1.10 | filebeat |
192.168.1.18 | filebeat |
环境配置(如果连这都不会就不用往下看了)
1、先配置java环境
2、配置node环境
开始安装配置es
[root@elk ~]# mkdir /usr/local/elk
[root@elk ~]# tar xf elasticsearch-6.5.4.tar.gz -C /usr/local/elk/
[root@elk ~]# useradd es
[root@elk ~]# chown -R es:es /usr/local/elk/
[root@elk ~]# cd /usr/local/elk/elasticsearch-6.5.4/
[root@elk elasticsearch-6.5.4]# su es
[es@elk elasticsearch-6.5.4]$ cd config/
[es@elk config]$ vim elasticsearch.yml
[es@elk config]$ cp elasticsearch.yml elasticsearch.yml_bck
[es@elk config]$ ls
elasticsearch.yml elasticsearch.yml_bck jvm.options log4j2.properties role_mapping.yml roles.yml users users_roles
[es@elk config]$ vim elasticsearch.yml 在该文件中的最后添加以下内容
cluster.name: elk
node.name: elk
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
##discovery.zen.minimum_master_nodes: 2
##discovery.zen.ping_timeout: 150s
##discovery.zen.fd.ping_retries: 10
http.cors.enabled: true
http.cors.allow-origin: "*"
2、设置JVM大小
[es@elk config]$ vim jvm.options
----将
-Xms1g ----修改成 -Xms2g
-Xmx1g ----修改成 -Xms2g
3、创建ES数据及日志存储目录
[es@elk elk]$ mkdir -p /data/elasticsearch/data
[es@elk elk]$ mkdir -p /data/elasticsearch/logs
4、系统优化
永久生效方法:
echo “* - nofile 65536” >> /etc/security/limits.conf
[es@elk elk]$ vim /etc/security/limits.conf ---在文件最后面添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3)增加最大内存映射数
[root@elk ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
vm.swappiness=0
[root@elk ~]# sysctl -p
启动es,启动es允许root用户启动,否则会启动失败
[root@elk ~]# su es
[es@elk root]$ cd /usr/local/elk/elasticsearch-6.5.4/
[es@elk elasticsearch-6.5.4]$ nohup ./bin/elasticsearch &
浏览器上输入http://192.168.1.143:9200
9200与9300端口号的区别
9300端口: ES节点之间通讯使用,是TCP协议端口号,ES集群之间通讯端口号。
9200端口: ES节点和外部通讯使用,暴露接口端口号。浏览器访问时使用
下载安装es的head插件
[root@elk ~]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
[root@elk ~]# cp master.zip /usr/local/elk/
[root@elk ~]# cd /usr/local/elk/
[root@elk elk]# unzip master.zip
[root@elk elk]# cd elasticsearch-head-master/
安装grunt
[root@elk elasticsearch-head-master]# npm config set registry https://registry.npm.taobao.org 更换一个淘宝镜像
[root@elk elasticsearch-head-master]# npm install -g grunt-cli 安装grunt
[root@elk elasticsearch-head-master]# grunt --version
grunt-cli v1.3.2
修改head源码
[root@elk elasticsearch-head-master]# vim Gruntfile.js 查找9100,添加hostname: "192.168.1.143"
下载head必要的文件
[root@elk elasticsearch-head-master]# mkdir /tmp/phantomjs/ 先创建该目录
[root@elk elasticsearch-head-master]# cd /tmp/phantomjs/ 将必要文件放在该目录下,否则在安装时会重新下载或者下载失败
[root@elk phantomjs]# wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 不要解压
[root@elk phantomjs]# cd /usr/local/elk/elasticsearch-head-master/
[root@elk elasticsearch-head-master]# npm config set registry https://registry.npm.taobao.org #先执行这条命令更换一个镜像
[root@elk elasticsearch-head-master]# npm install 直接这样安装会报错,如图
解决方法
[root@elk elasticsearch-head-master]# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
报什么版本错就对应什么版本
启动head插件
[root@elk elasticsearch-head-master]# chown -R es:es /usr/local/elk/
[root@elk elasticsearch-head-master]# nohup grunt server &
检测,浏览器输入:http://192.168.1.143:9100
状态信息
Red,表示有主分片没有分配,某些数据不可用。
Yellow,表示主分片都已分配,数据都可用,但是有复制分片没有分配。
Green,表示主分片和复制分片都已分配,一切正常。
安装配置kibana
[root@elk ~]# tar xf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/elk/
[root@elk ~]# cd /usr/local/elk/kibana-6.5.4-linux-x86_64/
[root@elk kibana-6.5.4-linux-x86_64]# cd config/
server.port: 5601 kinaba对外服务的端口
server.host: "192.168.1.143" kibana安装的主机ip
elasticsearch.url: "http://192.168.1.143:9200" 用来做查询的es节点的URL
kibana.index: ".kibana" kibana在Elasticsearch中使用索引来存储保存
启动kibana
[root@elk ~]# chown -R es:es /usr/local/elk/kibana-6.5.4-linux-x86_64/
[root@elk ~]# chown -R es:es /usr/local/elk/kibana-6.5.4-linux-x86_64/
[root@elk ~]# su es
[es@elk root]$ cd /usr/local/elk/kibana-6.5.4-linux-x86_64/
[es@elk kibana-6.5.4-linux-x86_64]$ nohup ./bin/kibana & 放在后台启动
检测,在浏览器输入:http://192.168.1.143:5601
安装logstash
[root@elk ~]# tar xf logstash-6.5.4.tar.gz -C /usr/local/elk/
[root@elk ~]# cd /usr/local/elk/logstash-6.5.4/
[root@elk logstash-6.5.4]# cd config/
[root@elk config]# vim logstash-filebeat.conf 配置接收日志并输出到es
input {
beats {
port => 5044 logstash的服务端口
}
}
output {
if "test-01-cs" in [tags] { 判断filebeat的标签并输出到es中创建索引
elasticsearch{
hosts => ["http://localhost:9200"]
index => "test-01-cs"
document_type => "log"
manage_template => false
}
}
if "test-02-cs" in [tags] {
elasticsearch{
hosts => ["http://localhost:9200"]
index => "test-02-cs"
document_type => "log"
manage_template => false
}
}
}
[root@elk ~]# chown -R es:es /usr/local/elk/
启动logstash
[root@elk ~]# su es
[es@elk root]$ cd /usr/local/elk/logstash-6.5.4/
[es@elk logstash-6.5.4]$ nohup ./bin/logstash -f config/logstash-filebeat.conf &
搭建配置filebeat 192.168.1.10 192.168.1.18
[root@hgd-tserver01 ~]# tar xf filebeat-6.5.4-linux-x86_64.tar.gz -C /usr/local/elk/
[root@hgd-tserver01 ~]# cd /usr/local/elk/filebeat-6.5.4-linux-x86_64/
[root@hgd-tserver01 filebeat-6.5.4-linux-x86_64]# vim filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /home/admin/logs/hanguda/hanguda.log 要收集的日志路径
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
tags: ["test-01-cs"] 为收集到的日志打成一个标签
setup.kibana:
output.logstash:
hosts: ["192.168.1.143:5044"] 将收集到的日志输出到 logstash中
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
启动filebeat
[root@hgd-tserver01 filebeat-6.5.4-linux-x86_64]# nohup ./filebeat -c filebeat.yml &
查看es中有没有出先自动创建的索引
浏览器输入 http://192.168.1.143:9100 进行查看
进入kibana中进行创建索引
至此,elk+filebeat创建完成