ELK 部署
文章转载:
http://www.open-open.com/doc/view/df156a76a824402482d1d72cd3b61e38
http://www.open-open.com/lib/view/open1441088477784.html
http://www.07net02.com/?p=563
https://www.ttlsa.com/elk/elk-topbeat-deployment-guide/
http://www.ibm.com/developerworks/cn/data/library/ba/ba-bluemix-elklog/index.html
http://www.cnblogs.com/delgyd/p/elk.html
ELK 日志平台搭建
一.平台了解
1.1 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
1.2 logstash是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。其实logstash是可以被别的替换,比如常见的fluented
1.3 Kibana是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。
Redis是一个高性能的内存key-value数据库,非必需安装,可以防止数据丢失.
二.架构拓扑
三 安装部署
2.1 客户端:nginx+logstash 192.168.127.141
服务端:logstash+redis+elasticSearch+kibana 192.168.127.140 #本例子将三个组件同时安装在一台服务器。
服务器端安装
JDK 安装
yum install java-1.8.0-openjdk
redis 部署
#tar –xvzf redis-3.0.4.tar.gz
#cd redis-3.0.4
#make
#make install
#cd utils
#./install_server.sh
这样redis就安装好了
#which redis-server在/usr/local/bin/redis-server
配置文件放在/etc/redis/6379.conf文件
#redis-cli
>set aa aavalue
>get aa 即可测试。
#cd
elasticsearch 部署
#tar –xvzf elasticsearch-1.7.1.tar.gz
#cp –a elasticsearch-1.7.1 /usr/local
#cd /usr/local
#ln –s elasticsearch-1.7.1 elasticsearch
#cd
这里我们可以下载一个elasticsearch的启动脚本来启动elasticsearch
git clone git@github.com:smail-bao/elk.git
然后把service目录挪到elasticsearch/bin目录下
然后执行/elasticsearch/bin/service/elasticsearch install
就可以把elasticsearch 就开机自动启动,且我们可以使用/etc/init.d/elasticsearch 了
部署中心logstash
#tar –xvzf logstash-1.5.4.tar.gz
#cp –a logstash-1.5.4 /usr/local
#cd /usr/local
#ln –s logstash-1.5.4 logstash
#cd /usr/local/logstash
#cd conf && vim logstash_server.conf
input {
redis {
host => "127.0.0.1"
port => 6379
type => "redis-input"
data_type => "list"
key => "logstash:redis"
}
}
output {
stdout {}
elasticsearch {
host => "192.168.220.116"
cluster => "elasticsearch"
codec => "json"
protocol => "http"
}
}
配置文件的意思就是,输入来自redis,使用redis的list类型存储数据,key为"logstash:redis",输出到elasticsearch,cluster的名称为elasticsearch,这里的cluster 就是elasticsearch.yml里面的cluster.name,集群的名称
kibana部署
#tar –xvzf kibana-4.1.2-linux-x64.tar.gz
#cp –a kibana-4.1.2-linux-x64 /usr/local
#cd /usr/local
#ln –s kibana-4.1.2-linux-x64 kibana
我们再下载一个kibana的脚本文件,注意这里要修改自己相应的软件安装路劲
该脚本来自:http://www.open-open.com/lib/view/open1441088477784.html
- git clone git@github.com:smail-bao/elk.git
#创建kibana服务- vi /etc/rc.d/init.d/kibana
- #!/bin/bash
- ### BEGIN INIT INFO
- # Provides: kibana
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Runs kibana daemon
- # Description: Runs the kibana daemon as a non-root user
- ### END INIT INFO
- # Process name
- NAME=kibana
- DESC="Kibana4"
- PROG="/etc/init.d/kibana"
- # Configure location of Kibana bin
- KIBANA_BIN=/usr/local/kibana/bin
- # PID Info
- PID_FOLDER=/var/run/kibana/
- PID_FILE=/var/run/kibana/$NAME.pid
- LOCK_FILE=/var/lock/subsys/$NAME
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:$KIBANA_BIN
- DAEMON=$KIBANA_BIN/$NAME
- # Configure User to run daemon process
- DAEMON_USER=root
- # Configure logging location
- KIBANA_LOG=/var/log/kibana.log
- # Begin Script
- RETVAL=0
- if [ `id -u` -ne 0 ]; then
- echo "You need root privileges to run this script"
- exit 1
- fi
- # Function library
- . /etc/init.d/functions
- start() {
- echo -n "Starting $DESC : "
- pid=`pidofproc -p $PID_FILE kibana`
- if [ -n "$pid" ] ; then
- echo "Already running."
- exit 0
- else
- # Start Daemon
- if [ ! -d "$PID_FOLDER" ] ; then
- mkdir $PID_FOLDER
- fi
- daemon --user=$DAEMON_USER --pidfile=$PID_FILE $DAEMON 1>"$KIBANA_LOG" 2>&1 &
- sleep 2
- pidofproc node > $PID_FILE
- RETVAL=$?
- [[ $? -eq 0 ]] && success || failure
- echo
- [ $RETVAL = 0 ] && touch $LOCK_FILE
- return $RETVAL
- fi
- }
- reload()
- {
- echo "Reload command is not implemented for this service."
- return $RETVAL
- }
- stop() {
- echo -n "Stopping $DESC : "
- killproc -p $PID_FILE $DAEMON
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f $PID_FILE $LOCK_FILE
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p $PID_FILE $DAEMON
- RETVAL=$?
- ;;
- restart)
- stop
- start
- ;;
- reload)
- reload
- ;;
- *)
- # Invalid Arguments, print the following message.
- echo "Usage: $0 {start|stop|status|restart}" >&2
- exit 2
- ;;
- esac
- #修改启动权限
- chmod +x /etc/rc.d/init.d/kibana
- #启动kibana服务
- service kibana start
- service kibana status
程序安装全部完成。
由于elasticsearch和logstash是安装在一台机器上所以elasticsearch默认配置即可。
/usr/local/elasticsearch/bin/elasticsearch –d (以deamon方式启动elasticsearch)
访问192.168.127.141:9200即可看到
配置logstash程序
# cd /usr/local/logstash下,mkdir etc logs两个文件夹,etc用于存放配置文件,logs用于存放日志文件
在该etc目录下建立一个central.conf配置文件:
# cat /usr/local/logstash/etc/central.conf
input {
redis {
host => "127.0.0.1"
port => 6379
type => "redis_input"
data_type => "list"
key => "logstash:redis"
}
}
output {
stdout {}
elasticsearch {
cluster => "elasticsearch"
codec => "json"
protocol => "http"
}
}
该文件说明是以redis为输入,输出到elasticsearch程序,格式为json协议为http.
启动logstash程序如下:
#/usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/central.conf -l /usr/local/logstash/logs/stdout.log
Sending logstash logs to /usr/local/logstash/logs/stdout.log.
Kibana程序现在是4版本了,自带web,端口为5601:
#cd /usr/local/kibana/bin/
#./kibana程序即可。
[root@localhost bin]# ./kibana
{"name":"Kibana","hostname":"localhost.localdomain","pid":1645,"level":30,"msg":"Found
kibana index","time":"2016-01-28T05:00:17.462Z","v":0}
{"name":"Kibana","hostname":"localhost.localdomain","pid":1645,"level":30,"msg":"Listening
on 0.0.0.0:5601","time":"2016-01-28T05:00:18.205Z","v":0}
现在可以打开 kibana的页面了。
192.168.127.140:5601
四 客户端安装
现在要在客户端(192.168.127.141)收集日志
#tar –xvzf logstash-1.5.4.tar.gz
#cp –a logstash-1.5.4 /usr/local
#cd /usr/local
#ln –s logstash-1.5.4 logstash
#cd /usr/local/logstash目录
同样需要#mkdir etc logs存放配置文件和日志文件。
# cat etc/logstash_agent.conf
input {
file {
type => "nginx_access"
path => ["/usr/local/nginx/logs/access.log"]
}
}
output {
redis {
host => "192.168.127.140"
data_type => "list"
key => "logstash:redis"
}
}
启动该logstash程序即可。
#/usr/local/logstash/bin/logstash –f /usr/local/logstash/etc/logstash_agent.conf
最后打开kibana查看采集到的nginx访问日志
ELK 部署的更多相关文章
- 分布式实时日志分析解决方案ELK部署架构
一.概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats.Logstash.Elasticsearch.Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决 ...
- Filebeat+ELK部署文档
在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的Filebeat+ELK开源实时日志分析平台的记录过程,有不对的地方还望指出. 简单介绍: 日志主要包括系统日志.应用 ...
- ELK部署与使用总结
前言 自己最近在负责elk的工作,在这里想写一个总结,把好多遇到的问题啥的,都写一下,也做个笔记, 目录 环境介绍 kafka,zookeeper安装 logstash安装 elasticsearch ...
- ELKStack入门篇(一)之ELK部署和使用
一.ELKStack简介 1.ELK介绍 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details ELK Stack包 ...
- centos7环境下ELK部署之elasticsearch
es部署:es只能用普通用户启动 博客园首发,转载请注明出处:https://www.cnblogs.com/tzxxh/p/9435318.html 一.环境准备: 安装jdk1.8.创建普通用户 ...
- filebeat + ELK 部署篇
ELK Stack Elasticsearch:分布式搜索和分析引擎,具有高可伸缩.高可靠和易管理等特点.基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储.搜索和分析操作.通 ...
- ELK部署配置使用记录
为什么要用ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办 ...
- ELK 部署文档
1. 前言 在日常运维工作中,对于系统和业务日志的处理尤为重要.尤其是分布式架构,每个服务都会有很多节点,如果要手工一个一个的去取日志,运维怕是要累死. 简单介绍: ELK 是 elasticsear ...
- 基于 Ansible 的 ELK 部署说明
ELK-Ansible使用手册 ELK-Ansible 是基于 Ansible 的 Playbooks 研发的 ELK集群部署工具.本文将介绍如何使用 ELK-Ansible 快速部署 ELK 集群. ...
随机推荐
- 解决客户端通过zookeeper连接到hbase时连接过多的问题
原因:客户端程序通过zookeeper访问hbase的连接数超过设置的默认链接数(默认数是30),连接数不够用会导致后续的连接连接不上去. 解决办法:设置hbase-site.xml配置文件,添加如下 ...
- javascript判断回文数
"回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...
- java 19 -14 File类的判断并输出案例
package zl_file; import java.io.File; import java.io.FilenameFilter; /* 需求: 判断E盘目录下是否有后缀名为.jpg的文件,如果 ...
- [转] 值得推荐的C/C++框架和库
http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx
- Android 屏幕适配(一)百分比布局库(percent-support-lib) 解析与扩展
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46695347: 本文出自:[张鸿洋的博客] 一.概述 周末游戏打得过猛,于是周 ...
- 内联(行级)元素不能设置margin-top
内联(行级)元素 不能设置宽高,但padding属性可以设置,需要注意的是行级元素不能设置margin-top和margin-bottom属性,但可以设置margin-left和margin-righ ...
- 21Mybatis_订单商品数据模型_一对多查询——resultMap方式
这篇文章延续订单商品数据模型,这张讲述的是一对多的查询.(用resultMap) 给出几张表的内容: User表:
- JavaScript及其异步实现续:Promise让一切更简单
在写这篇文章之前,我参考了以下文章.所以我文中的例子都是精准的,而且有循可依.下面抛出例子的链接: Understanding JQuery.Deferred and Promise Deferred ...
- CSS 实现加载动画之三-钢琴按键
今天做的这个动画实现也是非常简单,简单数几行代码就可以搞定.给这个动画取了个优雅的名字--钢琴按键,也实在是想不出什么更形象的名字了.废话不多说,直接上图. 1. 先看gif图 2. 代码实现思路 2 ...
- python数字图像处理(10):图像简单滤波
对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声:另一种是微分算子,可以用来检测边缘和特征提取. skimage库中通过filters模块进行滤波操作. 1.sobel算子 sobel算子 ...