ELK日志分析系统搭建使用

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。但现在新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,但此次并不添加filebeat,仍然以es、logstash、kibana做搭建使用。

使用环境:centos6.5 192.168.253.138作为日志来源服务器 apache

​ centos7 192.168.253.139 作为显示终端服务器

安装jdk

首先安装Java,版本1.8以上。

安装Elasticsearch

下载elasticsearch ,

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz

修改解压文件中的config/elasticsearch.yml 文件

# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现

cluster.name: es_cluster
node.name: es_cluster_1 

# 数据目录

path.data: /data/data

# log 目录

path.logs: /data/logs

# 修改一下ES的监听地址,这样别的机器也可以访问

network.host: 192.168.253.139

# 默认的端口号

http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.253.138", "192.168.253.139"]

在使用中可能会因为系统内存等问题导致启动失败,所以可以预调整系统参数。

设置内核参数

vi /etc/sysctl.conf
# 增加以下参数
vm.max_map_count=655360
执行以下命令,确保生效配置生效:

sysctl -p
设置资源参数

vi /etc/security/limits.conf
# 修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
设置用户资源参数

vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk    soft    nproc     65536

启动elk需要非root用户,所以创建elk用户。

useradd elk         #创建用户elk
groupadd elk        #创建组elk
useradd elk -g elk  #将用户添加到组

mkdir  -pv  /data/{data,logs} # 创建数据和日志目录

# 修改文件所有者
chown -R elk:elk /data/
chown -R elk:elk /etc/elasticsearch/

切换到elk用户,启动服务

启动文件  /etc/elasticsearch/bin/elasticsearch
服务器要关闭防火墙
systemctl stop firewalld.service

这时候可以看到log输出,节点正常启动.

1540283021102

用浏览器访问,同时可以正常使用

1540283045137

安装Logstash

下载解压

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz

在解压后目录执行

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

在命令行输入什么内容讲原样输出,比如:

1540283339125

显示正常以后再去修改配置文件,需要自己添加,创建如下内容文件。

cat logstash-simple.conf

input{
    file {
          path => "/var/log/httpd/*"
          start_position => beginning
     }
}

output {
    stdout { codec=> rubydebug }
    elasticsearch {
          hosts => "192.168.253.132:9200"
          protocol => "http"
          index  => "logstash-%{+YYYY-MM}"
    }
}

开启服务,执行如下命令:

/usr/share/logstash/bin/logstash  -f /usr/share/logstash/config/logstash-simple.conf 

我们可以查看 ES 是否接收到了数据:

1541323006347

Kibana的安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz

编辑kibana.yml配置文件
vi /usr/share/kibana/config/kibana.yml 

修改以下参数:
server.port: 5601           #开启默认端口5601,本文修改默认端口为5602
server.host: “192.168.253.139”   #站点地址
elasticsearch.url: http://192.168.253.139:9200   #指向elasticsearch服务的ip地址
kibana.index: “.kibana”

启动

执行以下命令启动:
/usr/share/kibana/bin/kibana

测试浏览器访问

访问:http://192.168.253.139:5602

1541323089099

正常启动后,需要配置索引,设置logstash-* ,添加索引和Available fields后,点击Discover就可以看到logstash传输过来的日志信息。

1541323158320

然后可以手动添加fields参数或者创建图表。

yum 安装

以上安装方式为下载配置安装,可以使用yum安装。

# 导入私钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# 添加yum源
vim /etc/yum.repos.d/es.repo

yum源内容:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

执行安装:

# 安装java + ELK
yum install java-1.8.0-openjdk.x86_64 elasticsearch.noarch kibana.x86_64 logstash.noarch -y

# 修改配置文件
vi /etc/logstash/logstash.yml
vi /etc/elasticsearch/elasticsearch.yml
vi /etc/kibana/kibana.yml

# 启动服务
systemctl start logstash.service elasticsearch.service kibana.service

配置文件和上文相同修改,如若无法访问,关闭防火墙 。

参考链接:

https://blog.csdn.net/KingBoyWorld/article/details/78555120

https://www.cnblogs.com/yuhuLin/p/7018858.html

https://www.elastic.co/products





# web安全  

tocToc: