centos6 搭建ELK

时间:2021-01-17 21:15:57

mark一下时间:2016年2月19日10:17:09

记录使用

Logstash: Logstash服务的组件,用于处理传入的日志。

Elasticsearch: 存储所有日志

Kibana 4: 用于搜索和可视化的日志的Web界面,通过nginx反代

环境:

2台机器都是centos6.5

ELK server:192.168.0.160

agent  :192.168.0.82

ELKserver上需要安装:ES、kibana、logstash、Redis、nginx、jdk

agent端      :jdk、logstash

(这里注意一点,服务器时间要同步,不然到后面kibana 不出图,找了半天原因都找不到,结果是系统时间没同步哦)

nginx和jdk安装就不讲了。这里我用的jdk为1.8.0_73

先下载ELK安装包。

wget https://download.elastic.co/kibana/kibana/kibana-4.4.1-linux-x64.tar.gz
wget http://nginx.org/download/nginx-1.8.1.tar.gz
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.2.0/elasticsearch-2.2.0.rpm
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
wget https://download.elastic.co/logstash/logstash/logstash-2.2.1.tar.gz

ELKserver上安装:

rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch    导入公钥
rpm -ivh elasticsearch-2.2.0.rpm RPM方式安装,用tar也一样
rpm -ql elasticsearch 查询安装路径 vim /etc/elasticsearch/elasticsearch.yml 修改配置文件 (注意空格)

centos6 搭建ELK

安装es插件head和kopf

/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

保存并启动es

/etc/init.d/elasticsearch start

这个时候我们可以浏览head插件或者kopf插件。如下图

centos6 搭建ELK

如果这个时候head界面没有logstash(前提是在agent端安装了logstash)的原因是因为agent的logstash没有传入数据给redis。so es也收不到redis output的并来自logstash的数据,当redis有数据之后,head就会显示logstash了。

es的插件可以在下图目录下查看

centos6 搭建ELK

安装nginx

useradd www
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make;make install

并将nginx配置文件修改成如下。

centos6 搭建ELK

将请求转给kibana。

安装kibana

tar zxf kibana-4.4.1-linux-x64.tar.gz
mv kibana-4.4.1-linux-x64 /usr/local/kibana

启动kibana

nohup /usr/local/kibana/bin/kibana -l /var/log/kibana.log &

redis安装

请转至另一篇博文

安装logstash

tar zxf logstash-2.2.1.tar.gz
mv logstash-2.2.1 /usr/local/logstash
cd /usr/local/logstash
mkdir conf log

配置logstash文件

vim /usr/local/logstash/conf/logstash.conf

如下

input {
redis {
host => "192.168.0.160"
data_type => "list"
port => "6379"
key => "logstash:redis"
type => "redis-input"
}
} output {
elasticsearch {
hosts => "192.168.0.160"
}
}

启动logstash  (启动比较慢)

/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf &

===============================================agent端=========================================================

jdk环境

nginx日志格式

    log_format main '{"@timestamp":"$time_iso8601",'

               '"@version":"1",'

               '"host":"$server_addr",'

               '"client":"$remote_addr",'

               '"size":$body_bytes_sent,'

               '"responsetime":$request_time,'

               '"domain":"$host",'

               '"url":"$uri",'

               '"status":"$status"}';

    access_log  logs/access.log  main;

安装logstash和上面一样,只是配置文件不同。

vim /usr/local/logstash/conf/logstash_agent.conf

input {

 file {
type => "nginx_access"
path => "/usr/local/nginx/logs/access.log"    #路径一定要写对哦- -之前进入kibana首页没有crate按钮就是因为 这里。还有redis monitor 没有数据。
} } output {
redis {
host => "192.168.0.160"
port => "6379"
data_type => "list"
key => "logstash:redis"
}
}

启动logstash

/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash_agent.conf &

这个时候用力刷nginx日志哦。

我们访问ELKserver

centos6 搭建ELK

然后点击Create

查看图形点击discover

centos6 搭建ELK

然后不停的刷新日志,(刷新才会出图哦,不然就是哭脸哟)等一段时间就会有绿色的柱状图。

centos6 搭建ELK

至此ELK简单部署已OK    有错误或者问题可以留言哦,多多指教

                                                          Author:V