Ubuntu16.x服务器 安装 Java,Elasticsearch5.4.X,中文分词,同义词,Logstash5.4.X 日志搜集
环境
Ubuntu16.x服务器
内存:最少8G
lanmps 环境套件 (http://www.lanmps.com)
PHP版本:5.6
MYSQL版本:5.6
NGINX版本:最新
Elasticsearch版本:5.4
Logstash版本:5.4
JAVA 安装
方式一
这里使用的 Java版本是 1.8.0_131
安装 Java 版本 ,根据教程下载相应的版本 看(方法三:源码安装)
http://blog.csdn.net/fenglailea/article/details/26006647#t6
如果上面的安装JAVA 不成功,请使用下面的安装
方式二
如果方式一的安装JAVA 不成功,请使用下面的安装
报如下错误
Error: could not find libjava.soError: Could not find Java SE Runtime Environment.
找了N种方法后都无法解决的。
先要删除 方式一的 JAVA 设置环境变量配置文件,然后再进行如下设置
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo update-java-alternatives -s java-8-oraclesudo apt-get install Oracle-java8-set-default #设置环境变量
JAVA 版本
java -version
本方式 来自 http://blog.csdn.net/blueheart20/article/details/50121691
服务器用户创建
创建 hadoop
用户
一行一行执行
useradd -m hadoop -s /bin/bash # 创建hadoop用户
passwd hadoop # 修改密码,这个时候会让你输入密码2次
usermod -G root hadoop # 增加管理员权限
设置管理员
或用户组
权限
执行命令
visudo
在root
那行增加 hadoop
一行,如下所示
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
应用设置
方法一
: 退出当前用户,改用hadoop
登录,用命令su –
,即可获得root
权限进行操作
方法二
:重新启动系统
以下配置都是使用 hadoop 用户
root 用户是无法启动 elasticsearch
Elasticsearch 安装及配置
http://kibana.logstash.es/content/elasticsearch/
https://es.xiaoleilu.com/
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
风来了.fox
服务器说明
如果在服务器上面安装
最低 8G内存,
如果更低的内存 请自行更改 config/jvm.xx 文件中的配置
不要用root用户,
不要用root用户,
不要用root用户
使用 上面创建好的 hadoop
用户
Elasticsearch下载地址
https://www.elastic.co/downloads/elasticsearch
目前最新版5.4
使用hadoop
用户
cd ~
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz
解压缩
tar zxvf elasticsearch-5.4.0.tar.gz
配置elasticsearch
编辑 config/elasticsearch.yml
cd elasticsearch-5.4.0
vim config/elasticsearch.yml
修改为
network.host: 0.0.0.0
cluster.name: es
cluster.name
可以不用设置
…其他部分没有改动,不需要修改
环境变量设置
sudo vim /etc/profile.d/elasticsearch.sh
加入
export ES_HOME=/home/hadoop/elasticsearch-5.4.0
export PATH=$ES_HOME/bin:$PATH
应用生效
. /etc/profile
. /etc/bashrc
启动
cd elasticsearch-5.4.0
bin/elasticsearch #前台运行
或
bin/elasticsearch -d #后台运行
关闭
查找进程 ID
ps -ef |grep elasticsearch
找到这个ID,KILL他
kill -9 id
中文分词插件 analysis-ik
https://github.com/medcl/elasticsearch-analysis-ik/releases
版本:5.4.0
使用hadoop
用户
cd ~
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.4.0/elasticsearch-analysis-ik-5.4.0.zip
unzip elasticsearch-analysis-ik-5.4.0.zip -d elasticsearch-analysis-ik-5.4.0
复制到插件目录
mv elasticsearch-analysis-ik-5.4.0 elasticsearch-5.4.0/plugins/analysis-ik
这个时候需要重启 elasticsearch 插件才能生效(这个可以等设置好词库再重启也可以)
分词词库设置
进入 elasticsearch安装目录
编辑词库配置文件
cd ~/elasticsearch-5.4.0
vim plugins/analysis-ik/config/IKAnalyzer.cfg.xml
ext_dict 这一行修改为
<entry key="ext_dict">custom/sougou.dic;custom/mydict.dic;custom/single_word_low_freq.dic;custom/product.dic</entry>
custom/product.dic
是我的词库,这里不方便透露
这个时候需要重启 elasticsearch 插件才能生效
分词热更新
如果设置热更新,配置如下设置(网址中的文件是不存在的,这里只是个案例)
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://www.foxwho.com/thesaurus/word.txt</entry>
文件里面 UTF8编码 一行一个,并用\n
换行
官方说明
https://github.com/medcl/elasticsearch-analysis-ik
目前该插件支持热更新 IK 分词,通过上文在 IK 配置文件中提到的如下配置
<!--用户可以在这里配置远程扩展字典 --><entry key="remote_ext_dict">location</entry><!--用户可以在这里配置远程扩展停止词字典--><entry key="remote_ext_stopwords">location</entry>
其中 location 是指一个 url,比如 http://yoursite.com/getCustomDict,该请求只需满足以下两点即可完成分词热更新。
该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。
该 http 请求返回的内容格式是一行一个分词,换行符用 \n 即可。
满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。
可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 或其他简易 http server 下,当 .txt 文件修改时,http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇,并更新这个 .txt 文件。
分词测试
curl -XPUT "http://localhost:9200/index"
测试分词效果:
浏览器中允许
http://localhost:9200/index/_analyze?analyzer=ik_max_word&text=中华人民共和国
结果
{"tokens": [{"token": "中华人民共和国","start_offset": 0,"end_offset": 7,"type": "CN_WORD","position": 0},{"token": "中华人民","start_offset": 0,"end_offset": 4,"type": "CN_WORD","position": 1},{"token": "中华","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 2},{"token": "华人","start_offset": 1,"end_offset": 3,"type": "CN_WORD","position": 3},{"token": "人民共和国","start_offset": 2,"end_offset": 7,"type": "CN_WORD","position": 4},{"token": "人民","start_offset": 2,"end_offset": 4,"type": "CN_WORD","position": 5},{"token": "共和国","start_offset": 4,"end_offset": 7,"type": "CN_WORD","position": 6},{"token": "共和","start_offset": 4,"end_offset": 6,"type": "CN_WORD","position": 7},{"token": "国","start_offset": 6,"end_offset": 7,"type": "CN_CHAR","position": 8}]
}
Logstash5.X 日志搜集处理
下载地址
https://www.elastic.co/downloads/logstash
目前最新版 5.4.0
版本:5.4.0
使用hadoop
用户
这里使用 TAR.GZ 源码安装,即方式一
cd ~
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz
tar -zxvf logstash-5.4.0.tar.gz
测试是否安装成功
~/logstash-5.4.0/bin/logstash -e 'input { stdin { } } output { stdout {}}'
如果输出如下表示安装成功
The stdin plugin is now waiting for input:
[2017-05-16T21:48:15,233][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
Logstash5.X配置
创建配置目录
先进入 Logstash 根目录
cd ~/logstash-5.4.0
mkdir -p etc
vim etc/www.lanmps.com.conf
etc/test.conf
文件内容
input {file {type => "nginx-access"path => ["/www/wwwLogs/www.lanmps.com/*.log"]start_position => "beginning"}
}filter {grok {"message"=>"%{IPORHOST:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\" (%{HOSTNAME:domain}|-) %{NUMBER:response} (?:%{NUMBER:bytes}|-) (%{QS:referrer}) %{QS:agent} \"(%{WORD:x_forword}|-)\" (%{URIHOST:upstream_host}|-) (%{NUMBER:upstream_response}|-) (%{WORD:upstream_cache_status}|-) %{QS:upstream_content_type} (%{USERNAME:upstream_response_time}) > (%{USERNAME:response_time})"#匹配模式 message是每段读进来的日志,IP、HTTPDATE、WORD、NOTSPACE、NUMBER都是patterns/grok-patterns中定义好的正则格式名称,对照上面的日志进行编写,冒号,(?:%{USER:ident}|-)这种形式是条件判断,相当于程序里面的二目运算。如果有双引号""或者[]号,需要在前面加\进行转义。}kv {source => "request"field_split => "&?"value_split => "="}#再单独将取得的URL、request字段取出来进行key-value值匹配,需要kv插件。提供字段分隔符"&?",值键分隔符"=",则会自动将字段和值采集出来。urldecode {all_fields => true}#把所有字段进行urldecode(显示中文)
}output {elasticsearch {hosts => ["10.1.5.66:9200"]index => "logstash-%{type}-%{+YYYY.MM.dd}"document_type => "%{type}"}
}
配置说明
http://kibana.logstash.es/content/logstash/plugins/input/file.html
Nginx 日志格式定义
log_format access '$remote_addr - $remote_user [$time_local] "$request" $http_host $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $upstream_addr $upstream_status $upstream_cache_status "$upstream_http_content_type" $upstream_response_time > $request_time';
Logstash5.X启动和停止
测试命令
cd ~/logstash-5.4.0/
bin/logstash -e 'input { stdin { } } output { stdout {codec=>rubydebug} }'
然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,然后看看会返回什么结果!
出现如下结果
2017-02-23T08:34:25.661Z c-101 Hello World
测试配置文件是否 正确
cd ~/logstash-5.4.0/
bin/logstash -t -f etc/
启动
加载 etc文件夹下所有 *.conf 的文本文件,然后在自己内存里拼接成一个完整的大配置文件
cd ~/logstash-5.4.0/
bin/logstash -f etc/
后台运行
nohup cd ~/logstash-5.4.0/ && bin/logstash -f etc/ &
停止
查找进程 ID
ps -ef |grep logstash
找到这个ID,KILL 他
kill -9 id
Ubuntu16.x服务器 安装 Java,Elasticsearch5.4.X,中文分词,同义词,Logstash5.4.X 日志搜集相关推荐
- 在ubuntu16.04上安装java和elastic search
Elasticsearch是一个实时分布式搜索和分析数据的平台.它的流行是由于其易用性,强大的功能和可扩展性. 安装Elasticsearch之前,你首先需要安装JAVA. 因为现在从Oracle官网 ...
- 如何在64位Ubuntu16.04下安装java开发环境
一.环境介绍 系统版本:64位Ubuntu 16.04: java版本:jdk-8u212-linux-x64.tar.gz(从官网上下载,步骤见下): 二.java安装包下载 进入oracle的下载 ...
- ubuntu16.04 TLS安装java
apt-get install software-properties-common add-apt-repository ppa:webupd8team/java apt-get update ap ...
- java nlpir_中科院NLPIR中文分词java版
摘要:为解决中文搜索的问题,最开始使用 版 SCWS ,但是处理人名和地名时,会出现截断人名地名出现错误.开始使用 NLPIR 分词,在分词准确性上效果要比 SCWS 好.本文介绍如何在 系统下 JA ...
- Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)
1.在线联网安装 直接进入容器内部进行编辑 # 进入容器内部编辑 docker exec -it elasticsearch bash# 安装IK分词器拼音插件(Github官网) elasticse ...
- jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
- Java分布式中文分词组件 - word分词(转自 https //github com/ysc/word)
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)
###Java分布式中文分词组件 - word分词 ####word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义.能准确识别英文.数字,以 ...
- Python中文分词工具大合集:安装、使用和测试
转自:AINLP 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具 ...
- python 分词工具训练_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
最新文章
- vue动态发布到线上_vue在线动态切换主题色方案
- python第三方库安装-python的第三方库安装
- 基于spark mllib_Spark高级分析指南 | 机器学习和分析流程详解(下)
- SAP一句话入门:Human Resource
- C++STL中swap函数操作与内存地址改变的简析
- 一、WPF 2个datagrid之间同步进度条
- uva-10602-贪心
- C++ STL string的属性
- HTML基础:用表单写一个简易登录页面
- 对聊天室项目的NABCD的分析
- ffmpeg(5):SDL相关学习
- 关于NavigationView中不能直接findviewById的解决办法
- 使用tomcat7-maven-plugin部署Web项目
- 啦啦外卖40.7 APP小程序三端 独立开源版本
- C/S架构系统的自动更新功能设计与实现(四)
- 一键发圈,一键转发到微信朋友圈或者微信好友
- Color RGB颜色深浅的排序
- HR套招的十大经典面试问题
- Android在GoogleMap(百度地图)实现自定义指南针旋转与回正功能
- 简报 | 阿里与腾讯在区块链领域必有一战
热门文章
- 基于C#在Mongodb的Skip-Limit和Where-Limit的分页对比 并且含mongodb帮助类的源码
- Ransac算法--直线拟合
- A*算法收敛最优点的简单证明
- es6数组初始化_说一下自己常用的es6的功能
- kettle配置集群_KETTLE集群搭建
- php fpm过多,Linux下php-fpm进程过多导致内存耗尽问题解决
- 拓端tecdat|R语言泰坦尼克号随机森林模型案例数据分析
- python实现池化操作
- 图卷积网络(Graph Convolutional Network)
- 用于函数优化的一维 (1D) 测试函数