CentOS7 安装ELK+Filebeat

原创 0301  2018-01-22 17:09 

一、先安装Java8

在http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载对应版本

然后安装 yum -y localinstall jdk-8u73-linux-x64.rpm

二、安装 Elasticsearch

rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch ##从官网导入gpgkey

然后编辑一个文件

vim /etc/yum.repos.d/elasticsearch.repo

把下面的输入进去

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

然后安装
yum -y install elasticsearch ##YUM安装Elasticsearch

vi /etc/elasticsearch/elasticsearch.yml network.host: localhost #修改为仅本地接触到9200端口 
注:为了安全起见,只允许本地访问9200端口。防止外部通过http api恶意操作9200端口。

三、启动并激活

systemctl start elasticsearch 
systemctl enable elasticsearch

四、安装Kibana

由于Kibana的rpm包与Elasticsearch共用一个GPG Key,所以不用再重新下载 gpg key.

vim /etc/yum.repos.d/kibana.repo 

输入以下内容

[kibana-4.4] name=Kibana repository for 4.4.x packages 
baseurl=http://packages.elastic.co/kibana/4.4/centos 
gpgcheck=1 
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch 
enabled=1

然后安装
yum -y install kibana

vim /opt/kibana/config/kibana.yml 
修改以下内容
server.host: "localhost" 
注:同样为了安全起见,只将本地访问

激活并设置开机运行
systemctl start kibana 
chkconfig kibana on

五、因为我们设置让Kibana倾听本地端口,但我们必须要让外部访问到。我们需要安装nginx,并且配置反向代理。

yum -y install nginx httpd-tools 
htpasswd -c /etc/nginx/htpasswd.users kibanaadmin   
注:此举为访问Kibana设置密码。

vim /etc/nginx/nginx.conf ##注释原有80端口

vim /etc/nginx/conf.d/kibana.conf ##创建kibana的nginx配置文件 
server { 
listen 80; server_name IP或者是域名; 
auth_basic "Restricted Access"; 
auth_basic_user_file /etc/nginx/htpasswd.users; 
location / { 
proxy_pass http://localhost:5601; ##当外部访问80时,反向代理到本地5601端口,使其访问kibanan 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; 
} 
}

启动进程
systemctl start nginx 

systemctl enable nginx

注:配置nginx后要确保selinux处于disabled状态,或者是执行:
setsebool -P httpd_can_network_connect 1  ##使selinux信任http

六、安装 Logstash
vim /etc/yum.repos.d/logstash.repo 
输入以下内容:
[logstash-2.2] 
name=logstash repository for 2.2 packages 
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos 
gpgcheck=1 
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch 
enabled=1

生成 SSL Certificates

vim /etc/pki/tls/openssl.cnf
subjectAltName = IP: ELK_server_private_ip ##在[ v3_ca ]部分找到

cd /etc/pki/tls
openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

注:生成此证书,用于Filebeats与Logstash通信

配置Logstash

配置Filebeat输入文件,02-beats-input.conf

vi /etc/logstash/conf.d/02-beats-input.conf 
input { 
beats { 
port => 5044 
ssl => true 
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" 
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" 
} 
}

配置日志过滤文件以及格式化处理,10-syslog-filter.conf

vim /etc/logstash/conf.d/10-syslog-filter.conf
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
 }
} 
}

注:grok 过滤与定义日志格式,能从github上下载很多样本用来参考。


配置30-elasticsearch-output.conf 输出日志文件到elasticsearch。


vim /etc/logstash/conf.d/30-elasticsearch-output.conf

output { 
elasticsearch { 
hosts => ["localhost:9200"] 
sniffing => true 
manage_template => false 
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 
document_type => "%{[@metadata][type]}" 
} 
}

可以通过以下命令来测试logstash配置文件是否正确。
service logstash configtest

如果输出是Configuration OK,则代表配置文件修改没有问题

systemctl restart logstash 

chkconfig logstash on

七、加载Kibana仪表盘

cd ~

curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

unzip beats-dashboards-1.1.0.zip

cd beats-dashboards-1.1.0

./load.sh ##在Elasticsearch加载仪表盘,可视化,和默认的beats插件

  • [packetbeat] 搜集网络数据
  • [topbeat] 搜集系统cpu,ram负载相关信息
  • filebeats 搜集系统日志信息
  • winlogbeat 搜集windows系统日志信息

注:当我们使用kibana时,我们默认将Filebeat设为默认的选项。

 

八、在Elasticsearch上加载Filebeat默认模板

我们是计划收集数据到Elasticsearch进行存储,所以我们需要在Elasticsearch加在一个Filebeat模板。这个默认的模板将会配置Elasticsearch cd ~
curl -O    https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json   ##下载json模板
curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json   ##加载模板到Elasticsearch
 如果模板加载正确,将会看到如下的输出。 { "acknowledged" : true } 九、客户端安装Filebeat

复制ELK server端生成的elk-forward证书

scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

注:确保证书复制过来准确无误。因为这个证书用于Filebeat客户端与ELK服务端通信。

sudo mkdir -p /etc/pki/tls/certs

sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

安装Filebeat package

rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch ##导入gpg-key秘钥

vim /etc/yum.repos.d/elastic-beats.repo ##导入FILEBEAT安装的REPO文件

[beats]

name=Elastic Beats Repository

baseurl=https://packages.elastic.co/beats/yum/el/$basearch

enabled=1

gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch

gpgcheck=1

 

 

yum -y install filebeat

修改配置文件/etc/filebeat/filebeat.yml

修改收集log文件

vim /etc/filebeat/filebeat.yml

systemctl start filebeat

 

systemctl enable filebeat

 

 

注:启动过后查看Filebeat的状态。如果没有启动可以参照如下检测配置文件。

 

在ELK server上检测Filebeat是否与Logstash成功通信

curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

如果看到total与successful不为0。代表成功从client端取到日志。

注:如果看到total与hits为0,代表通信受阻,无法从客户端取到日志。可以参照以下两个方式解决:
(1)查看Filebeat客户端配置是否正确,Filebeat是否成功启动。
(2)查看ELK_SERVER的安全组,确认5044端口是打开的。

十、连接到Kinaba

在浏览器里面输入Kinaba服务端的公有ip地址,默认使用80端口即可。因为我们之前已经配置过nginx反向代理。将kibana的5601端口代理到nginx80端口。

(1)将Filebeat设置为默认选项

(2)查看kibana是否成功可视化日志数据

在笔者搭建部署ELK+Filebeat的过程中,参考了许多文章,这些文章使我受益匪浅,茅塞顿开。
https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7

https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html)

 

以上文章转自:http://blog.csdn.net/bittersweet0324/article/details/78503961

但最后我架设成功了,不过没有显示数据。。所以是失败!!!

本文地址:http://www.xplus.vip/?p=92
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:ThreeHotIceTea
版权声明:本文为原创文章,版权归 0301 所有,欢迎分享本文,转载请保留出处!

发表评论


表情