教你搭建elasticsearch与实现zabbix对接
一. 搭建elasticsearch
- 上传jdk-8u181-linux-x64.tar.gz和elasticsearch-6.1.4.tar.gz文件到系统任意目录,
安装java
解压jdk-8u181-linux-x64.tar.gz文件
tar -zxvf jdk-8u181-linux-x64.tar.gz
编辑profile文件,添加jdk环境变量
vim /etc/profile
在最后添加
#JDK环境变量
JAVA_HOME=/usr/local/jdk1.8.0_181 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH
引用环境变量
source /etc/profile
直接执行java –version 确定java已可用
解压elasticsearch-6.1.4.tar.gz文件
tar –zxvf elasticsearch-6.1.4.tar.gz
编辑修改elasticsearch的配置文件elasticsearch.yml
vim elasticsearch-6.1.4/config/elasticsearch.yml
主要修改以下信息(数据存放目录以及日志存放目录需要添加执行权限,)
配置文件解析如下:
开启服务(可以使用-d后台启用)
/usr/local/elasticsearch-6.1.4/bin/elasticsearch
乐维Tips:在启动服务时,不能以root用户开启服务,elasticsearch需要以其他用户开启服务;
1、 需要创建用户;
- 添加es用户
- useradd es -m
- 设置es用户密码
- passwd es
2、 需要修改elasticsearch-6.1.4目录、数据存放目录、日志存放目录的所属组和所属用户chown es:es /usr/local/elasticsearch-6.1.4/data chown es:es /usr/local/elasticsearch-6.1.4/logs chown es:es /usr/local/elasticsearch-6.1.4/
3、ERROR:bootstrap checks failed:max file descriptors [4096] for elasticsearchprocess likely too low, increase to at least [65536]
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:
切换到root用户,编辑limits.conf配置文件,
添加类似如下内容:
vi/etc/security/limits.conf
添加如下内容:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
注:* 代表Linux所有用户名称(比如hadoop)
保存、退出、重新登录才可生效
4、max virtualmemory areas vm.max_map_count [65530] likely too low, increase to at least[262144]
原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:sysctl -p
5、max number ofthreads [1024] for user [es] likely too low, increase to at least [2048]
原因:无法创建本地线程问题,用户最大可创建线程数太小
解决方案:
切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改 soft nproc 1024 为 soft nproc 2048
以es用户启动服务(-d 可以后台启动 )
su es
/usr/local/elasticsearch-6.1.4/bin/elasticsearch
开启防火墙端口9200 TCP
firewall-cmd --zone=public --add-port=9200/tcp–permanent
在WEB上输入IP:9200测试是否可以正常访问使用
二. 与zabbix对接
需要修改zabbix_server的配置文件
修改HistoryStorageURL=http://192.168.150.10:9200
修改zabbix.conf.php文件
vi/usr/local/nginx/html/zabbix/conf/zabbix.conf.php
重启zabbix_server
同步成功后
方法1、ElasticSearch Head可以直接在谷歌浏览器上进行安装(推荐)
直接把文件拖到扩展程序进行添加
方法2、这里介绍一个 Elasticsearch 可视化的管理插件 elasticsearch-head,可方便的查看,删除,管理数据
安装elasticsearch-head插件需要nodejs的支持
- nodejs安装
- head安装配置
请参考https://blog.csdn.net/zoubf/article/details/79007908
三. Elasticsearch常用命令
(由于没有自带的数据清理功能,需要手动编写脚本)
1、curl 命令的使用
curl -X<VERB>'< PROTOCOL>://<HOST>:< PORT>/< PATH>?<QUERY_STRING>'-d '<BODY>'VERB HTTP方法:GET, POST, PUT, HEAD, DELETE
PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用)
HOST Elasticsearch集群中的任何一个节点的主机名
PORT Elasticsearch HTTP服务所在的端口,默认为9200
PATH API路径,资源路径(例如_count将返回集群中文档的数量)
QUERY_STRING 一些可选的查询请求参数,例如?pretty参数将返回易读的JSON数据
BODY 一个JSON格式的请求主体(如果请求需要的话)
具体详细方法,请参考
https://www.linuxidc.com/Linux/2016-10/136548.htm
添加索引(zabbix为数据库名)
curl -XPUT'http://192.168.1.20:9090/zabbix?pretty'
创建成功后,默认会分配五个主分片(创建后不可更改,通过算法将数据存放在这五个分片中的一个,增删改都是针对主分片的)和一个复制分片(可修改,每个主分片都对应一个复制分片),这两个默认值都可以在配置文件中修改,也可以在创建的时候指定,如
curl -XPUT 'http://192.168.1.20:9090/zabbix?pretty'-d '{
"settings": {
"number_of_shards" : 2, #2个主分片
"number_of_replicas" : 0 #0个复制分片
}
}'
查看索引
curl -XGET'http://192.168.1.20:9090/zabbix?pretty'
查询方式;
例如:
查询所有文档
等同于 curl-XGET ‘http://localhost:9200/test/article/_search?pretty’
curl -XGET 'http://localhost:9200/test/article/_search?pretty' -d '
{ "query": {
"match_all": {}
}
}'#返回
{
用时 毫秒
"took" : 4,
"timed_out" : false,
#分片信息
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
#文档数
"total" : 3,
"max_score" : 1.0,
"hits" : [ {
"_index" : "test",
"_type" : "article",
"_id" : "AVf_6fM1vEkwGPLuUJqp",
"_score" : 1.0,
"_source" : {
"id" : 2,
"subject" : "第二篇文章标题",
"content" : "第二篇文章内容",
"author" : "jam"
}
}, {
"_index" : "test",
"_type" : "article",
"_id" : "4",
"_score" : 1.0,
"_source" : {
"id" : 4,
"subject" : "第四篇文章标题",
"content" : "第四篇文章内容-更新后",
"author" : "tomi"
}
}, {
"_index" : "test",
"_type" : "article",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"id" : 3,
"subject" : "第三篇文章标题",
"content" : "第三篇文章内容",
"author" : "jam"
}
}}
查询作者是名字包含“jam” 的文档,返回id 是2和3 的文档
curl -XGET 'http://localhost:9200/test/article/_search?pretty' -d '
{
"query": {
"match": {
"author": "jam"
}
}
}'
查询文章内容包含“更新” 的文档,返回id 是4 的文档
curl -XGET 'http://localhost:9200/test/article/_search?pretty' -d '
{ "query": {
"match": {
"content": "更新"
}
}
}'
查询全部索引
curl -XGET 'http://192.168.150.10:9200/_cat/indices/?v'
删除所有数据包括自行添加的索引
curl -XDELETE 'http://192.168.150.10:9200/*'
2、 Elasticsearch清理数据
由于Elasticsearch没有自带的数据删除配置,所以需要脚本进行清理数据
1)删除索引是会立即释放空间的,不存在所谓的“标记”逻辑。
2)删除文档的时候,是将新文档写入,同时将旧文档标记为已删除。磁盘空间是否释放取决于新旧文档是否在同一个segment file里面,因此ES后台的segment merge在合并segment file的过程中有可能触发旧文档的物理删除。
但因为一个shard可能会有上百个segment file,还是有很大几率新旧文档存在于不同的segment里而无法物理删除。想要手动释放空间,只能是定期做一下force merge,并且将max_num_segments设置为1。
删除文档
释放空间
配置计划任务
文件下载链接:https://pan.baidu.com/share/init?surl=FMQrjRapGQmXvkwWauTLZQ
密码:x6I7
文章转自elasticsearch搭建与zabbix对接
http://www.lwops.cn/forum.php?mod=viewthread&tid=70&fromuid=1
(出处: 乐维)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Google的十个核心技术,互联网营销
曾任职于IBM中国研究院,从事与云计算相关研究的CSDN博客专家吴朱华曾写过一篇文章《探索Google App Engine背后的奥秘(1)--Google的核心技术》,对Google的核心技术和其整体架构进行详细的分析。 本篇将主要介绍Google的十个核心技术,而且可以分为四大类: 1.分布式基础设施:GFS,Chubby和Protocol Buffer。 2.分布式大规模数据处理:MapReduce和Sawzall。 3.分布式数据库技术:BigTable和数据库Sharding。 4.数据中心优化技术:数据中心高温化,12V电池和服务器整合。 分布式基础设施 GFS 由于搜索引擎需要处理海量的数据,所以Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为“BigFiles”的文件系统,而GFS(全称为“Google File System”)这套分布式文件系统则是“BigFiles”的延续。 首先,介绍它的架构,GFS主要分为两类节点: 1.Master节点:主要存储与数据文件相关的元数据,而不是Chunk(数据块)。元数据包括一个能将64...
- 下一篇
阿里云CentOS 7.2 MySQL服务启动失败的解决思路
阿里云 CentOS 7.2 MySQL服务启动失败的解决思路 前言 : 昨天刚刚搭建好的MySQL让老大看了一下,经过测试已经完成任务。但是今天早晨来的时候发现服务器被关了,此时我的心情崩溃的,但是我非常冷静的解决了MySQL问题。如下: [root@spark01~]#journalctl-xe 但,可惜的时,这些信息并不能提供服务启动失败的真正原因。 这时候,不妨打开MySQL的告警日志,毕竟,只要MySQL服务启动,告警日志都会有输出信息的,果然 2017-06-/usr/sbin/mysqld:Can'tcreate/writetofile/var/run/mysqld/mysqld.pid'(Errcode:-Nosuchfileordirectory)Can'tstartserver:can'tcreatePIDfile:Nosuchfileordirectory mysqld_safemysqldfrompidfile/var/run/mysqld/mysqld.pidended MySQL服务在启动的时候,不能创建pid文件。 在终端看一下该目录是否存在,果然,不存在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6