参考文献:https://my.oschina.net/itblog/blog/547250#OSC_h4_3
ELK平台搭建
系统环境
System: Centos release 6.7 (Final)
ElasticSearch: 2.3.3
Logstash: 2.1.1
Kibana: 4.3.0
Java: openjdk version "1.8.0_65"
################################################ 下载:Elasticsearchhttps://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.1.0/elasticsearch-2.1.0.tar.gz
https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz
下载:Logstash https://download.elastic.co/logstash/logstash/logstash-all-plugins-2.3.1.tar.gz
下载:Kibana 4.5.1 https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz
Eelasticsearch
============elasticsearch 安装
cd /usr/local
mkdir elk ### 把安装包上传到这个目录
tar -zxvf elasticsearch-2.1.0.tar.gz
cd elasticsearch-2.1.0
mv elasticsearch-2.1.0 elasticsearch
可视化ela-head组件安装
cd elasticsearch
./bin/plugin install mobz/elasticsearch-head
查看:http://192.168.102.176:9200/_plugin/head/
Paramedic工具 es监控插件
./bin/plugin install karmi/elasticsearch-paramedic
查看:http://192.168.102.176:9200/_plugin/paramedic/index.html
查询 Elasticsearch 中的数据工具 同ela-head
./bin/plugin install lmenezes/elasticsearch-kopf
查看: http://192.168.102.176:9200/_plugin/kopf
vim config/elasticsearch.yml
-----------------修改配置文件
cluster.name: es_cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
#当前hostname或IP,我这里是centos2 #原文博客说的 host或者ip,但是我写本机的ip的话,除了服务器本机可以正常访问9200以外,其他电脑无法访问,网上说改成0.0.0.0,试了好用。
network.host: 0.0.0.0
network.port: 9200
这时候执行 ./bin/elasticsearch 报错
查看错误信息,大概说是,不能以root用户的身份执行,那好吧。。添加用户,分配权限
----------------新增elsearch用户和组`
创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
passwd 设置密码 这里是123456
更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
chown -R elsearch:elsearch elasticsearch
-------------切换到新用户
su elsearch
123456
--------------运行
./bin/elasticsearch & 或
./bin/elasticsearch -d
这时候会报错如下:
好吧。目测是 elasticsearch.yml里的data和log的目录权限没有给elsearch,那么接着。。
首先 切换到root用户,
su root
123456
然后增加文件夹的权限chown -R elsearch:elsearch /tmp/elasticsearc
然后再切换到elsearch用户
执行 ./bin/elasticsearch 然后访问 ip:9200 ,访问ok
这里有一点需要说明:执行 ./bin/elasticsearch 之后,你会发现压根退不出去有没有。。
其实 :这就是 ./bin/elasticsearch 和 ./bin/elasticsearch -d 的区别,执行./bin/elasticsearch -d,你会发现,命名窗口是不输出 东西的
由此。其实我开启了两个elasticsearch
netstat -tnlp
这时候需要 kill -9 PID 杀掉多余的,一般是保留 9200
重点:ElasticSearch安装ik分词插件
参考地址:https://my.oschina.net/xiaohui249/blog/232784
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
git 地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
注意:ik分词插件的版本与ElasticSearch的版本是有对应关系的,笔者第一次安装用的是ElasticSearch2.1.0 ,IK 1.9.1 结果报错,大概的意思1.9.1是在ElasticSearch2.3.1的版本上开发的,需要下载匹配版本,所以后来我把版本换成了ElasticSearch 2.3.3,IK 1.9.3,可以查看地址https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v1.10.0,这里有完整的对应关系。
关于IK的安装,笔者主要是对照git的安装步骤说明来的,官网的步骤是:
通过git clone https://github.com/medcl/elasticsearch-analysis-ik,下载分词器源码,然后进入下载目录,执行命令:mvn clean package 打包生成 zip包,zip包的生成u目录是 target/releases/elasticsearch-analysis-ik-{version}.zip ,然后再 elasticsearch的plugins下新建ik文件夹,将 target/releases/elasticsearch-analysis-ik-{version}.zip 拷贝被 elasticsearch/plugins/ik 目录下,执行unzip 解压缩即可。
推荐:笔者发现了一个简单的方式,不需要安装maven 执行打包的过程,直接到 https://github.com/medcl/elasticsearch-analysis-ik/releases 找对应版本的zip文件,然后上传即可。
另外:按理说 ik组件的 安装也可以 参照 ela-head组件的安装方式安装,
./bin/plugin install mobz/elasticsearch-head 红色部分与 红框对应,但是报错,
plugin-descriptor.properties 找不到。。。所以这种方式pass了,但是要会看。
ctrl z 暂停当前切换到控制
bg 后台执行
fg 前台
Logstash
关于这部分请先查看:【转】Logstash的安装部署 文章,其实主要还是参照了上面的博客。
我的实际配置Logstash:
tar -zxvf logstash-2.1.1.tar.gz cd logstash-2.1.1
编写配置文件(名字和位置可以随意,这里我放在config目录下,取名为log4j_to_es.conf):
mkdir config vi config/log4j_to_es.conf # Set: https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html input { redis{ host => "127.0.0.1" port => 6379 type => "weds-pay-api" data_type => "list" key => "weds-pay-api" } } filter { date { match => ["addtime", "yyyy-MM-dd HH:mm:ss"] target => "@timestamp" } } output{ stdout { codec => rubydebug } elasticsearch { index => "%{type}-%{+YYYY.MM}" hosts => "192.168.30.129:9200" workers => 5 } }
启动方式:./bin/logstash agent -f config/log4j_to_es.conf &
加了&是后台启动,不加是直接启动
解释:配置连接reids,项目程序将请求的日志信息写入到redis,然后logstash监听redis的list,redis里list的key为weds-pay-api,logstash会监听redis的list,当发现数据以后就会批量的通过logstash写入到elasticsearch。
附java代码的实现 重写Appender
package com.weds.framework.utils.elk; import java.util.Map; import java.util.concurrent.CompletableFuture; import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.spi.LocationInfo; import org.apache.log4j.spi.LoggingEvent; import com.weds.framework.core.utils.JsonUtil; import com.weds.framework.core.utils.redis.RedisService; /** * * <p>Title: ApiAppender</p> * <p>Description: 重写Appender 调用log4就时,将记录存入redis</p> * <p>Company: Leyou(China) Chain Store Co.,Ltd</p> * <p>版权所有: Copyright?1999-2016 leyou.com. All Rights Reserved</p> * @author Illidan * @date 2016年5月19日 上午10:25:59 * @version V1.0 */ public class ApiAppender extends AppenderSkeleton{ /** * Jredis连接redis的client */ private RedisService redisService; /** * 记录接口方法调用次数日志需要先写入redis中,redis的key不能为空,这个key需要同步在logstash配置文件中配置 */ private String writeLogKey; @Override public void close() { // TODO Auto-generated method stub } @Override public boolean requiresLayout() { // TODO Auto-generated method stub return false; } /** * 重写日志输出输出 */ @Override protected void append(LoggingEvent event) { LocationInfo locationInfo = event.getLocationInformation(); Map<String,Object> map =(Map<String,Object>)event.getMessage(); map.put("levl", event.getLevel().toString()); writeLogAsync(writeLogKey,map); } /** * 异步记录日志 * @param key 记录到redis的中key,key需要同步在logstash配置文件中配置 * @param value 日志的值,Map格式 */ public void writeLogAsync(String key,Map<String,Object> map){ CompletableFuture.runAsync(() -> { writeLog(key,map); }); } /** * * @Title: writeLogAsync * @Description: 异步存储日志 * @param * @return void 返回类型 * @throws * @author Illidan * @date 2016年5月18日 下午1:51:56 */ public void writeLogAsync(String key,String value){ CompletableFuture.runAsync(() -> { writeLog(key,value); }); } /** *记录日志到redis的List集合中,值为Map集合方式 * @param key 记录redis的key,key需要同步在logstash配置文件中配置 * @param map value为Map值 */ public void writeLog(String key,Map<String,Object> map){ String value = JsonUtil.obj2string(map); writeLog(key, value); } /** * 记录日志到redis的List集合中 * @param key 记录redis的key,key需要同步在logstash配置文件中配置 * @param value 记录的值 */ public void writeLog(String key, String value) { if(key != null){ redisService =(RedisService)SpringContextUtil.getBean("redisService",RedisService.class); redisService.setList(key, value); } } public RedisService getRedisService() { return redisService; } public void setRedisService(RedisService redisService) { this.redisService = redisService; } public String getWriteLogKey() { return writeLogKey; } public void setWriteLogKey(String writeLogKey) { this.writeLogKey = writeLogKey; } }
log4j.properties 增加配置:
log4j.logger.weds-pay-Log=INFO,aip log4j.appender.aip=com.weds.framework.utils.elk.ApiAppender log4j.appender.aip.writeLogKey=weds-pay-api log4j.appender.aip.layout=org.apache.log4j.PatternLayout log4j.appender.aip.layout.ConversionPattern=%d %p [%c] - %m%n
注意:这里 log4j_to_es.conf 中 redis的key 与 log4j.properties 的log4j.appender.aip.writeLogKey以及ApiAppender 的writeLogKey 属性有对象关系。
java代码的使用
protected static final Logger log = Logger.getLogger("weds-pay-Log"); log.info(map);//记录日志到 elk日志中心
注意:这里的weds-pay-Log与 log4j.properties的log4j.logger.weds-pay-Log是有关系的。
Kibana
这部分基本的参照文章顶部的连接即可:
===========================安装kibana
tar -zxvf kibana-4.3.0-linux-x86.tar.gz
cd kibana-4.3.0-linux-x86
vim config/kibana.yml
-------修改配置
server.port: 5601
server.host: "192.168.30.129"
elasticsearch.url: "http://192.168.30.129:9200"
kibana.index: ".kibana"
-------运行
./bin/kibana &
加了&是后台启动,不加是直接启动

转载于:https://www.cnblogs.com/caoheyang911016/p/6214645.html

K linux 部署手机 centos6.5相关推荐

  1. Linux部署ZABBIX-3.4.2

    Linux部署ZABBIX-3.4.2 官网 https://www.zabbix.com 认识 1.zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 2.z ...

  2. Linux部署Tomcat踩的坑以及解决方案【8080无法访问、日志显示XX端口被占用、修改默认端口、无法提供安全连接】

    Linux部署Tomcat踩的坑以及解决方案[8080无法访问.日志显示XX端口被占用.修改默认端口.无法提供安全连接] 8080无法访问 解压开压缩包后,执行bin目录下的 startup.sh 后 ...

  3. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  4. Linux 部署ftp报530 错误解决方案

    Linux 部署ftp报530 错误解决方案 参考文章: (1)Linux 部署ftp报530 错误解决方案 (2)https://www.cnblogs.com/austinspark-jessyl ...

  5. Linux部署Node.js应用

    Linux部署Node.js应用 文章目录 Linux部署Node.js应用 一.背景描述 二.环境准备 三.添加守护进程 四.参考链接 一.背景描述 将基于Node.js开发的应用部署到Linux系 ...

  6. pycharm创建django项目linux部署

    大家好,我是烤鸭: pytho部署web项目比java简单一点,虽然springboot内置了tomcat. 环境: pycharm专业版python3.6 1.安装python python下载: ...

  7. linux部署jenkins,tomcat9

    大家好,我是烤鸭: 今天分享的是    linux部署jenkins,tomcat9 安装环境: linux centos7.2 tomcat 9.1 Jenkins 2.73 JDK 1.8 mav ...

  8. Linux部署Apache ActiveMQ 5.14.1

    Linux部署Apache ActiveMQ 5.14.1 简单记一下,下载地址 http://activemq.apache.org/download.html 一.安装JDK7以上,官方说明:ht ...

  9. 记录第一次使用linux部署springbootweb项目

    记录第一次使用linux部署springbootweb项目 收获感受 经过一下午的安装虚拟机.Linux系统.JDK1.8,项目打包,解决bug,终于项目部署成功!哈哈哈哈哈哈哈哈哈 收获还是不错的, ...

最新文章

  1. 形式参数内存在哪java_深入浅出Java中JVM内存管理
  2. SAP BAPI的一些初级资料
  3. O(N) 求 1~N 逆元 模板及证明
  4. ibatis.net:第五天,QueryForObject
  5. Ajax中有关readyState(状态值)和status(状态码)的问题
  6. 在VC中 改变List列表中一行的颜色
  7. win2012活动目录介绍
  8. css --- flex:n的解析
  9. Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
  10. Qt ToolBar工具栏里同时显示图标和文字
  11. [Java] 1031. Hello World for U (20)-PAT甲级
  12. WORD里的背景水印为什么怎么也删除不了呢?
  13. 电子元器件选型——三极管
  14. 离谱!诺奖得主被曝40多篇论文造假!还涉及国内高校学者!
  15. vue-学生的最爱抽签点名器
  16. 微信小程序--图片相关问题合辑
  17. android使用google gcm接收push消息需要注意的地方
  18. java-POI的Excel默认字体和样式
  19. Dell optiPlex麦克风显示未插入问题解决
  20. 我为何一直强调外包公司别去

热门文章

  1. Akka增加消息的灵活性《eleven》译
  2. 做前端工程师,就业方向有哪些?你知道吗
  3. C语言基础教程篇之环境如何设置
  4. Jenkins部署java项目实例
  5. You (root) are not allowed to access to (crontab) because of pam configuration
  6. Android如何使用WebView访问https的网站
  7. Laravel学习笔记之冒泡、快速、选择和插入排序(持续更新)
  8. xaml mvvm(1)之结构
  9. 过来人谈谈计算机考研复试
  10. zlib库删除后的恢复