CentOS7安装ELK6.5.3日志分析系统搭建
elk是指ElasticSearch,Logstash,Kibana。
系统:CentOS7
JAVA环境:8以上
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
ELK 关系:LEK:logstatsh 收集日志,存到elasticserach (存储,产生索引,搜索) 到kibana展现(view)
下载地址:
https://www.elastic.co/downloads
一.Elasticsearch安装配置
1.解压
新建目录/usr/local/elk/
进入目录 cd /usr/local/elk/
解压文件 tar -xvf elasticsearch-6.5.3.tar.gz
2.修改配置文件
cd elasticsearch-6.5.3/
vim ./config/elasticsearch.yml
# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: skynet_es_cluster
node.name: skynet_es_cluster_dev1
# 数据目录
path.data: /data/elk/data
# log 目录
path.logs: /data/elk/logs
# 修改一下ES的监听地址,这样别的机器也可以访问
network.host: 0.0.0.0
# 默认的端口号
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.0.0.1", "192.168.160.128"]
# discovery.zen.minimum_master_nodes: 3
# enable cors,保证_site类的插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
# Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
3.修改系统的资源参数
(1)直接命令添加
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 131072" >> /etc/security/limits.conf
echo "* soft nproc 65536" >> /etc/security/limits.conf
echo "* hard nproc 131072">> /etc/security/limits.conf
echo "vm.max_map_count = 6553600" >>/etc/sysctl.conf
(2)设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited
elasticsearch soft nproc 65536
4. 添加启动用户,设置权限
启动ElasticSearch要非root用户,需要新建一个用户来启动elasticsearch
useradd elasticsearch #创建用户elk
groupadd elasticsearch #创建组elk
useradd elasticsearch -g elasticsearch #将用户添加到组
mkdir -pv /data/elk/{data,logs} # 创建数据和日志目录
# 修改文件所有者
chown -R elasticsearch:elasticsearch /data/elk/
chown -R elasticsearch:elasticsearch /usr/local/elk/elasticsearch-6.5.3/
5.启动ES
使用elasticsearch 用户启动elasticsearch服务
su elasticsearch
./bin/elasticsearch #后面加上-d,后台运行
6.测试
(1)查看9200端口 netstat -plntu
(2)访问9200端口 curl http://192.168.160.128:9200/
有返回,能导出就说明通过了。
二、安装 Logstash
1.解压
进入目录 cd /usr/local/elk/
解压文件 tar -xvf logstash-6.5.3.tar.gz
2.测试
测试一、快速启动,标准输入输出作为input和output,没有filter
./bin/logstash -e 'input { stdin {} } output { stdout {} }'
此时命令窗口停留在等待输入状态,键盘键入任意字符
hello world
测试二、在测试一堆基础上加上codec进行格式化输出
./bin/logstash -e 'input{stdin{}} output{stdout{codec=>rubydebug}}'
此时命令窗口停留在等待输入状态,键盘键入任意字符
hello world
3.测试Elasticsearch 和 Logstash 来收集日志数据
前提要保证elasticsearch和logstash都正常启动(需要先启动elasticsearch,再启动logstash)
cd logstash-6.5.3
vim config/logstash-test.conf
内容如下:
input { stdin { } }
output {
elasticsearch {hosts => "192.168.160.128:9200" } #elasticsearch服务地址
stdout { codec=> rubydebug }
}
开启服务,执行如下命令:
./bin/logstash -f ./config/logstash-test.conf
可以使用 curl 命令发送请求来查看 ES 是否接收到了数据:
curl 'http://192.168.160.128:9200/_search?pretty'
至此,你已经成功利用 Elasticsearch 和 Logstash 来收集日志数据了。
三、kibana的安装
1.解压
进入目录 cd /usr/local/elk/
解压文件 tar -xvf kibana-6.5.3-linux-x86_64
2.配置kibana
cd kibana-6.5.3-linux-x86_64
vim ./config/kibana.yml
内容如下:
server.port: 5601 #开启默认端口5601
server.host: "192.168.160.128" #站点地址
elasticsearch.url: "http://192.168.160.128 :9200" #指向elasticsearch服务的ip地址
kibana.index: “.kibana”
3.启动
./bin/kibana
访问:http://192.168.160.128:5601
出现页面,则说明安装成功了
参考:https://blog.csdn.net/qq_34646817/article/details/81177154