Centos6.5基于SSL密码认证部署ELK(Elasticsearch+Logstash+kibana)

1       简介

本章我们来介绍Centos6.5基于SSL密码认证部署ELK(Elasticsearch 1.4.4+Logstash 1.4.2+kibana3),同时为大家介绍如何集合如上组件来收集日志,本章的日志收集主要为大家介绍SYSTEM日志收集.

集中化日志收集主要应用场景是在同一个窗口临时性或永久性鉴定分析系统,应用等各类日志,对用户提供极大便利,同时也为用户提供一定自主性展示方式

2       本文目标

为大家介绍用logstash收集多目标主机syslogs日志,同时用kibana来分析展示收集到的日志

2.1     四大组件介绍

Logstash: logstash server端用来录入日志

Elasticsearch: 存储各类日志

Kibana: web化接口用作查寻和可视化日志

Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server

 

我们将安装前三个组件到一台服务器上,这台机器将作为我们的logstash Server. Logstash Forwarder 将安装在所有需要被收集日志的服务器,所有日志将被发送给Logstash Server.

2.2     基本概念

NRT:  Near RealTime(NRT)时时分析系统,延迟在1秒内;

Cluster: 集群的通过name作为唯一标识,默认elasticsearch;

Node: part of cluster,stores data,a single cluster can have many nodes as want.if no elasticsearch nodes running on your network,starting a single node will be default form a new single-node cluster named elasticsearch

Index: 索引必须小写,in a single cluster,you can define as many indeses as u want.

Type:  one index, u can define one or more types.

Document: 最小被索引单位,例如一个文档为单个用户准备,另外一个为单产品介绍准备,还有一个是为单据准备。以json的方式切割。Index/type可存储多个documents.

Shards & replicas: index can store a billion documents taking up 1TB of disk space, single node may be not fit, and may bo too slow to serve search requests from a single node alone. To solve this problem, Elasticsearch provides subdivide the indes into multiple pieces called shards. When create  an index,  we can simple define the num of shards that we want.

Sharding two primary reasons:

l  Horizontally split/scale content volume(方便纵向切割或横向扩展)

l  Allow distribute distribute and parallelize operation shards (允许并行或分布式操作碎片)each index in Elasticsearch is allocated 5 primary shards and 1 replica which means that if u’ve at least two nodes in cluster, u index will have 5 primary shards and another 5 replica shards1 complete replicafor total of 10 shards per index.

3       部署环境

3.1     前期环境准备

ELK硬件测试环境

HostName

InnerIp

OuterIp

HardWare

System

Version

Role

AppS2

192.168.1.38

\

RAM:1GB
  CPU:1

CentOS release 6.5 (Final)

ElasticSearch:1.4.2
  LogStash: 1.4.2
  Kibana: 3.0.1

ELK Server

AppS3

192.168.1.39

\

0.3.1

Logstash Forwarder

Manager

192.168.1.40

\

ansible 1.8.2

AnsibleManager

3.2     Server环境配置

3.2.1  Install Java 7

ELK环境基于JAVA 7环境运行,安装命令如下

3.2.2  Install ElasticSearch

//import the ElasticSearch GPG key into rpm

//create new yum repository file for ElasticSearch

//添加如下内容到elasticsearch.repo

//安装elasticsearch

3.2.3  start Elasticsearch

//加入到开机启动项

3.2.4  Install Kibana

elasticsearch: "http://"+window.location.hostname+":80",

//创建nginx下的kibana目录

3.2.5  Install Logstash

Logstash提供了yum安装方式,

//增加如下配置

安装

3.2.6  Install Nginx

//kibana默认是使用Elasticsearch9200端口,但用户可以有权限直接访问Elasticsearch,所以我们通过web Serverr 80端口代替访问9200端口,Kibana也提供了关于nginx的配置文件供大家直接下载使用.

//nginx.conf配置

//保存退出后

//安装apache2-utilshtpasswd来生成用户名和密码对:

//生成用户名密码

//启动Nginx

//添加开机启动

3.2.7  SSL认证

如上文所述,安全起见,我们elasticsearch采用web方式访问,通过ssl认证的方式提高访问安全性。

  //[v3_ca]下添加如下配置

subjectAltName=IP: 192.168.1.38

生成ssl认证文件

Generating   a 2048 bit RSA private key

……………………………….+++

…………………..+++

writing   new private key to 'private/logstash-forwarder.key'

—–

3.2.8  配置logstash

Logstach配置文件是jason格式,配置文件在/etc/logstash/conf.d,配置文件主要包括三部分:inputs,filters,outputs:

先创建input文件 01-lumberjack-input.conf采用lumberjack input 协议logstash forwarder使用.

Input配置如下内容:

Filter配置如下:

Output配置:

启动logstash

3.3     Client环境配置

3.3.1  安装Logstash Forwarder

//server SSL认证文件发送到ship服务器

官网下载 https://www.elastic.co/downloads/logstash

logstash-forwarder-0.4.0-1.x86_64.rpm

//通过如下命令安装

//添加logstash Forwarder初始化脚本

//init脚本依赖于配置文件/etc/sysconfig/logstash-forwarder

//编辑并保存

//复制SSL认证文件到对应目录下

3.3.2  配置Logstash Forwarder

//编辑并保存

//ship将连接logstash server5000端口

//启动logstash-forwarder

//添加开机启动

//其它任何想收集日志的服务器均按如上配置即可

3.4     连接kibana

//当我们配置完如上的后,就可以收集所有希望收集的日志信息,Kibana可以提供一个web api友好接口供我们使用

//在浏览器虽输入kibana2.ihuilian.com(按你的配置输入)ip来访问logstash server。我们最先访问到的是kibana welcome page.

//点击Logstash dashboard进行预设置仪表盘,我们将看到类似如下的柱状图包括日志事件,日志信息(如果没有看到这些信息那一定是四个组件的配置有问题,请检查)

1.png

//进行下来的练习

l  Search for “root “ to see if anyone is trying to log into your servers sa root

2.png

l  Search for a particular hostname

3.png

貌似只支持全量匹配

l  Change the time frame by selecting an area on the histogram on from the menu above

l  Click on masaages below the histogram to see how the data is being filtered

4       Kibana使用说明

4.1     控制面板设置

4.png

4.2     自动刷新

8.png

In fact, you can add any exported dashboard to that directory and access it as http://YOUR-HOST -HERE/index.html#dashboard/file/YOUR-DASHBOARD.json. Neat trick eh?

http://kibana.ihuilian.com/#/dashboard/file/default.json

5       qa

信息收集慢

没有找到文件的匹配规则

5.1     添加新ship失败,一直无法显示

a)         查看日志  无异常

b)         确认SSH认证文件  正常

c)         # service logstash-forwarder restart 正常-(restart失败但返回正常,其实是有问题我没有发现,只相信系统最原始的命令,第三方脚本经常会有不同程度的问题)

d)        serverrestart  logstash,elastashsearch,kibana,nginx均无法发现主机

e)        全新部署ship环境,每步均进行详细确认

f)          发现logstash-forwarder脚本问题,修改后正常添加新主机

 

大日志是100条的方式逐渐累加

9.png10.png

6       监控nginx日志

//定义Nginx日志格式

log_format   logstash '$http_host $remote_addr [$time_local] "$request" $status   $body_bytes_sent "$http_referer"

"$http_user_agent"   $request_time $upstream_response_time';

    access_log  /var/log/nginx/AppM.access.log  logstash;

//修改logstash-forwarder

重启logstash-forwarder生效

7       参考文档:

https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-logs-on-centos-6

http://www.wklken.me/posts/2015/04/26/elk-for-nginx-log.html

http://www.cnblogs.com/yjf512/p/4199105.html

http://www.tuicool.com/articles/UnUzimJ

http://www.learnes.net/getting_started/README.html

http://bigbo.github.io/pages/2015/02/28/elasticsearch_hadoop/

https://github.com/lmenezes/elasticsearch-kopf

http://logstash.es/

https://github.com/chenryn/kibana-guide-cn/blob/master/v4/dashboard.md

http://kibana.logstash.es/content/

 

原创文章,作者:stanley,如若转载,请注明出处:/5469

评论列表(2条)

  • 追马
    追马 2015-06-23 16:49

    后面来几个实战案例更好

  • V_v 2015-08-14 15:36

    亲测可用 不过美中不足少了redis的安装 对新手可能会造成困扰

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:guoqibee.com  万达开户  万达娱乐招商QQ  万达直属  万达娱乐开户  万达招商  万达主管QQ  万达注册  万达主管  万达娱乐直属