CentOS 7搭建ELK开源实时日志分析系统

Elasticsearch 是个开源分布式搜索引擎它的特点有分布式零配置自动发现索引自动分片索引副本机制 restful 风格接口多数据源自动搜索负载等。
Logstash 是一个完全开源的工具他可以对你的日志进行收集、分析并将其存储供以后使用如搜索。
kibana 也是一个开源和免费的工具他 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面可以帮助您汇总、分析和搜索重要数据日志。
日志从客户端到服务端处理后在传递给客户的数据流流向如下
Logstash-forwarder--->Logstash--->Elasticsearch--->kibana--->nginx--->客户浏览器
其中Logstash-forwarder是客户端的日志收集工具将日志发送给服务端Logstash后Logstash通过使用grok匹配规则对日志进行匹配切割然后保存在Elasticsearch中通过kibana从Elasticsearch中读取数据并转交给nginx来处理后返回给客户。
好了下面就是ELK系统的安装过程了。

下面是elasticsearch/logstash 所需JVM版本

CentOS 7搭建ELK开源实时日志分析系统

首先安装Java环境

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2FOracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm"
rpm -Uvh jdk-8u65-linux-x64.rpm

或者直接yum安装jdk也行不过要保证安装好对应的版本。
当然也可以源码安装不过源码安装需要注意设置好环境变量
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2F%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz"
tar zxvf jdk-8u65-linux-x64.tar.gz
mv jdk1.8.0_65 java
vi /etc/profile
JAVA_HOME="/usr/local/java"
PATH=$JAVA_HOME/bin:$PATH 
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export JAVA_HOME 
export PATH 
export CLASSPATH
source /etc/profile

安装好jdk环境之后需要安装Elasticsearch
rpm --import
wget -c https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm
rpm -ivh elasticsearch-1.7.2.noarch.rpm

修改配置文件如下

cd /usr/local/elasticsearch/
vim config/elasticsearch.yml
path.data: /data/db
network.host: 192.168.100.233

安装Elasticsearch插件如下

cd /usr/share/elasticsearch/ &&  ./bin/plugin -install mobz/elasticsearch-head && ./bin/plugin -install lukas-vlcek/bigdesk/2.5.0

之后启动Elasticsearch
systemctl start elasticsearch

然后开始安装kibana
去https://www.elastic.co/downloads/kibana 找合适的版本每个版本下面有这么一行内容一定要注意这些内容Compatible with Elasticsearch 1.4.4 - 1.7
我这里选择的是kibana-4.1.3-linux-x64.tar.gz
wget https://download.elastic.co/kibana/kibana/kibana-4.1.3-linux-x64.tar.gz 
tar xf kibana-4.1.3-linux-x64.tar.gz
mv kibana-4.1.3-linux-x64 /usr/local/kibana
cd !$
vim config/kibana.yml 
port: 5601
host: "192.168.100.233"
elasticsearch_url: "http://192.168.100.233:9200"

配置文件中指明kibana侦听5601端口并且通过9200端口从elasticsearch里面获取数据。
再安装nginx可以选择源码安装这里为了图方便就使用yum安装了。

yum -y install nginx
vim /etc/nginx/nginx.conf
将server改成如下
 server {
        listen      80 default_server;
        listen      [::]:80 default_server;
        server_name _;
        location / {
        proxy_pass :5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
            }
}

将日志保存格式修改为如下
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $upstream_response_time $request_time $body_bytes_sent '
            '"$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$request_body" '
            '$scheme $upstream_addr';

修改日志格式是为了匹配后面的Logstash的grok匹配规则
启动nginx和kibana
systemctl start nginx
nohup /usr/local/kibana/bin/kibana -l /var/log/kibana.log &

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3c34aa3fe3c5bf8d1f7835fad27fc51c.html