阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Elasticsearch+Logstash+Kibana搭建日志收集分析系统

168次阅读
没有评论

共计 5244 个字符,预计需要花费 14 分钟才能阅读完成。

 ELK stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。目前都在 Elastic.co 公司名下。ELK 是一套常用的开源日志监控和分析系统,包括一个分布式索引与搜索服务 Elasticsearch,

一个管理日志和事件的工具 logstash,和一个数据可视化服务 Kibana

logstash_1.5.3                  负责日志的收集,处理和储存

elasticsearch-1.7.2            负责日志检索和分析

kibana-4.1.2-linux-x64.tar.gz  负责日志的可视化

redis-2.4.14                      DB 以及日志传输的通道来处理

用一张图来表示他们之间的关系

Elasticsearch+Logstash+Kibana 搭建日志收集分析系统

此文以两个服务器为例来部署

服务器 A:192.168.0.1  Java elasticsearch redis kibana logstash(agent indexer)

服务器 B:192.168.0.2  java logstash(agent)

首先安装服务器 A 相关软件

一、安装基础软件

yum -y install curl wget lrzsz axel

二、安装配置 redis 服务

1、安装 tcl8.6.1

a) tar -xf tcl8.6.1-src.tar.gz –strip-components=1
b) cd tcl8.6.1/unix
c) ./configure –prefix=/usr/local
d) make
e) make test
f) make install 
g) make install-private-headers 
h) ln -v -sf tclsh8.6 /usr/bin/tclsh 
i) chmod -v 755 /usr/lib/libtcl8.6.so(可选,并且如报找不到文件,没关系)

2、安装 redis-3.0.2

wget http://download.redis.io/releases/redis-3.0.2.tar.gz
tar xzf redis-3.0.2.tar.gz /usr/local/redis
cd redis-3.0.2
make MALLOC=libc
make test
make install

2、配置 redis

a) mkdir /etc/redis
b) mkdir /var/redis
c) cp utils/redis_init_script /etc/init.d/redis
d) vim /etc/init.d/redis
头部添加:
#chkconfig: 345 60 60
#!/bin/bash
e) mkdir /var/redis/6379
f) cp redis.conf /etc/redis/6379.conf
g) vim /etc/redis/6379.conf
        #设置 daemonize 为 yes
        #设置 pidfile 为 /var/run/redis_6379.pid
        #设置 loglevel
        #设置 logfile 为 /var/log/redis_6379.log
        #设置 dir 为 /var/redis/6379
h) sysctl vm.overcommit_memory=1
i) chkconfig –add redis
j) chkconfig redis on

3、重启服务

service redis start/stop

4、查看进程和端口
1) 查看进程

ps -ef |grep redis
root    31927 25099  0 18:26 pts/0    00:00:00 vi /etc/init.d/redis

2)查看端口

netstat -tupnl |grep redis
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                  LISTEN      31966/redis-server 
tcp        0      0 :::6379                    :::*                        LISTEN      31966/redis-server

三、安装 java 环境

1、安装包

yum -y list java*
yum -y install openjdk-7-jdk

2、查看版本

java -version
java version “1.7.0_91”
OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

 

四、安装 elasticsearch

1、下载 elasticsearch

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm

2、安装 elasticsearch

rpm -ivh elasticsearch-1.7.2.noarch.rpm

3、配置
1) 备份配置

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

2)修改配置

echo “network.bind_host: 192.168.0.1” >> /etc/elasticsearch/elasticsearch.yml

4、启动 elasticsearch 服务

/etc/init.d/elasticsearch start
/etc/init.d/elasticsearch stop

5、查看进程和端口

1)查看进程

ps -ef |grep java

2)查看端口

netstat -tupnl |grep java

6、测试

curl -X GET http://192.168.54.147:9200
{
  “status” : 200,
  “name” : “Miguel O’Hara”,
  “cluster_name” : “elasticsearch”,
  “version” : {
    “number” : “1.7.2”,
    “build_hash” : “e43676b1385b8125d647f593f7202acbd816e8ec”,
    “build_timestamp” : “2015-09-14T09:49:53Z”,
    “build_snapshot” : false,
    “lucene_version” : “4.10.4”
  },
  “tagline” : “You Know, for Search”
}

7、添加到开机启动

update-rc.d elasticsearch defaults
update-rc.d: using dependency based boot sequencing

五、安装 logstash

1、下载 logstash

wget  https://download.elastic.co/logstash/logstash/packages/CentOS/logstash-1.5.4-1.noarch.rpm

2、安装 logstash

rpm -ivh logstash-1.5.4-1.noarch.rpm

3、配置(默认没有这个配置文件)

vim /etc/logstash/conf.d/logstash_indexer.conf
input {
        redis {
                host => “192.168.0.1”
                data_type => “list”
                key => “logstash:redis”
                type => “redis-input”
        port => “6379”
        }
}
output {
        elasticsearch {
                host => “192.168.0.1”
        }
}

4、启动服务

/etc/init.d/logstash start

5、使用 jps -mlv 或 ps -ef 来查看下进程

ps -ef|grep logst

6、设置开机启动

update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing

六、安装 kibana(前端 web)

1、下载

wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz

2、解压到指定目录

tar zxvf kibana-4.1.2-linux-x64.tar.gz -C /opt

3、创建日志目录

mkdir -p /opt/kibanalog

4、配置
1) 备份配置

cp /opt/kibana-4.1.2-linux-x64/config/kibana.yml /opt/kibana-4.1.2-linux-x64/config/kibana.yml.bak

2)修改配置

sed -i ‘s!^elasticsearch_url: .*!elasticsearch_url: “http://192.168.0.1:9200”!g’ /opt/kibana-4.1.2-linux-x64/config/kibana.yml
sed -i ‘s!^host: .*!host: “192.168.0.1”!g’ /opt/kibana-4.1.2-linux-x64/config/kibana.yml

5、启动服务

cd  /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &

6、查看进程和端口
1) 查看进程

ps aux |grep kibana

2)查看端口

netstat -tupnl|grep 5601

7、在 Windows 上访问

http://192.168.0.1:5601

8、设置开机启动

echo “cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &” >> /etc/rc.local

到此服务器 A 的相关软件全部安装完成;

现在安装日志采集端的程序(服务器 B),可以有多个

clientB 安装配置 logstash(agent)

1、安装 java 环境

yum -y list java*
yum -y install openjdk-7-jdk

1、下载 logstash

wget  https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm

2、安装 logstash

rpm -ivh logstash-1.5.4-1.noarch.rpm

3、配置 (默认没有这个配置文件)
1) 配置 logstash_agent

vim /etc/logstash/conf.d/logstash_agent.conf

input {
    file {
        path => “/tmp/*.log”
        start_position => beginning
    }
}

output {
        redis {
                host => “192.168.0.1”
                data_type => “list”
                key => “logstash:redis”
        }
}

5、启动服务
 
/etc/init.d/logstash start
logstash started.

6、使用 jps -mlv 或 ps -ef 来查看下进程

ps -ef|grep logst

7、设置开机启动

update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing

至此服务器 B 也安装配置完成,根据日志采集端的需要可以配置 N 个服务 B

如何查看日志:

1、查看 redis 日志

cat /var/log/redis/redis-server.log

2、查看 elasticsearch 日志

cat /var/log/elasticsearch/elasticsearch.log
tail -300f  /var/log/elasticsearch/elasticsearch.log

3、查看 logstash 日志

cat /var/log/logstash/logstash.errtail -30f /var/log/logstash/logstash.err

4、查看 kibana 日志

cat /opt/kibanalog/nohup.out
tail -30f /opt/kibanalog/nohup.out

错误处理

1)unable to fetch mapping, do you have indices matching the pattem?

kibana 报这个错误就是因为没有从 logstash 过来任何数据一般检查一下数据传输

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150653.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计5244字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中