Linux 下ELK环境搭建

参考博客:https://www.cnblogs.com/arnoLixi/p/10402684.html

https://blog.csdn.net/zy517863543/article/details/102591180

一、简介

1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 在elasticsearch中,所有节点的数据是均等的。

2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
 

Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。

ELK工作演示图:

  1. Filebeat在APP Server端收集日志
  2. Logstash处理过滤Filebeat收集过来的日志
  3. Elasticsearch存储Logstash提供的处理之后的日志,用以检索、统计
  4. Kibana提供web页面,将Elasticsearch的数据可视化的展示出来

二、yum安装步骤

1、前置工作准备:

java环境配置: jdk8
关闭防火墙:systemctl stop firewalld
关闭selinux:setenforce 0

系统优化:
vim /etc/security/limits.conf
末尾添加:
*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096
vim  /etc/sysctl.conf
末尾添加:vm.max_map_count=655360
使其生效:sysctl -p

导入Elasticsearch GPG KEY 秘钥:rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
配置ELK yum源,使用清华的yum源镜像

vim /etc/yum.repos.d/elk.repo
添加以下内容
[ELK]
name=ELK-Elasticstack
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-6.x/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

2、安装elasticsearch

2.1 yum install -y elasticsearch

2.2 配置elasticsearch:

vim /etc/elasticsearch/elasticsearch.yml

节点名称:
node.name: node-1
#绑定IP地址
network.host: 127.0.0.1
#端口号
http.port: 9200

按需修改jvm内存设置

vim /etc/elasticsearch/jvm.options
-Xms128m  
-Xmx128m 

2.3 启动,测试

which java
/usr/java/jdk1.8.0_211/bin/java
建立软连接:
ln -s  /usr/java/jdk1.8.0_211/bin/java /usr/bin/java

systemctl start elasticsearch        #启动
systemctl status elasticsearch         #查看
systemctl enable elasticsearch        #开机启动
systemctl stop elasticsearch        #停止

curl http://127.0.0.1:9200,访问成功

3、安装Kibana

3.1 yum install -y kibana

安装目录:/usr/share/kibana

配置文件路径:/etc/kibana/

3.2 修改kibana配置

vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]

修改为中文:

3.3 启动,测试

# 查看版本号
rpm -qa elasticsearch kibana

systemctl start kibana        #启动
systemctl enable kibana        #开机启动
systemctl status kibana        #查看
systemctl stop kibana        #停止
访问:http://ip:5601 ,

4、安装Logstash

4.1 yum install -y logstash

安装目录:/usr/share/logstash

配置文件路径:/etc/logstash/

日志文件路径:/var/log/logstash/

systemctl start logstash        #启动
systemctl enable logstash        #开机启动
systemctl status logstash        #查看
systemctl stop logstash        #停止

解决:sudo /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

监听端口: netstat -lptnu|grep java

4.2 配置logstash

https://www.cnblogs.com/xishuai/p/elk-logstash-filebeat.html

https://blog.csdn.net/mazhiwb/article/details/105775199

https://www.cnblogs.com/cheyunhua/p/11238489.html

采集日志数据,需要有个数据源,这里我们使用 /var/log/message进行测试。

chmod 777 /var/log/messages

vim /etc/logstash/conf.d/system.conf

添加以下内容:

#input日志输入模块:日志的获取方式和路径
input {
    file {
       path => "/var/log/messages"
       type => "system-log"
       start_position => "beginning"
    }
}
#output日志的输出模块:导出你的数据
output {
    elasticsearch {
      hosts => "127.0.0.1:9200"
      index => "system_log-%{+YYYY.MM.dd}"
    }
}

如果conf.d 下有多个配置文件需要修改pipelines.yml(管道)文件

vim pipelines.yml

- pipeline.id: main
  path.config: "/etc/logstash/conf.d/system.conf"
- pipeline.id: sec
  path.config: "/etc/logstash/conf.d/sec.conf"
 

验证配置文件,是否有效:

cd /usr/share/logstash/bin

./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/system.conf --config.test_and_exit

查询索引:curl http://127.0.0.1:9200/_cat/indices?v

5、安装filebeat

logstash占用的资源比较大,没有beats轻量,所以官方也推荐使用beats来作为日志采集工具。而且beats可扩展,支持自定义构建。

5.1 yum install filebeat -y

5.2 vim /etc/filebeat/filebeat.yml

- type: log

  paths: - /var/log/messages # 指定需要收集的日志文件的路径

  output.elasticsearch:

     hosts: ["127.0.0.1:9200"] # 配置 Elasticsearch 服务器的 IP 地址


systemctl start filebeat        #启动
systemctl enable filebeat        #开机启动
systemctl status filebeat        #查看
systemctl stop filebeat        #停止

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章