设为首页 收藏本站
查看: 873|回复: 0

[经验分享] 【Zabbix】教你搭建elasticsearch与实现zabbix对接

[复制链接]

尚未签到

发表于 2019-1-19 13:57:02 | 显示全部楼层 |阅读模式
一.  搭建elasticsearch


  • 上传jdk-8u181-linux-x64.tar.gzelasticsearch-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'< PROTOCOL>://:< PORT>/< PATH>?'-d ''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 '{
&quot;settings&quot;: {
&quot;number_of_shards&quot; : 2,     #2个主分片
&quot;number_of_replicas&quot; : 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 '
{    &quot;query&quot;: {
&quot;match_all&quot;: {}
}
}'#返回
{

用时 毫秒
  &quot;took&quot; : 4,
&quot;timed_out&quot; : false,
#分片信息
&quot;_shards&quot; : {
&quot;total&quot; : 5,
&quot;successful&quot; : 5,
&quot;failed&quot; : 0
},
&quot;hits&quot; : {
#文档数
&quot;total&quot; : 3,
&quot;max_score&quot; : 1.0,
&quot;hits&quot; : [ {
&quot;_index&quot; : &quot;test&quot;,
&quot;_type&quot; : &quot;article&quot;,
&quot;_id&quot; : &quot;AVf_6fM1vEkwGPLuUJqp&quot;,
&quot;_score&quot; : 1.0,
&quot;_source&quot; : {
&quot;id&quot; : 2,
&quot;subject&quot; : &quot;第二篇文章标题&quot;,
&quot;content&quot; : &quot;第二篇文章内容&quot;,
&quot;author&quot; : &quot;jam&quot;
}
}, {
&quot;_index&quot; : &quot;test&quot;,
&quot;_type&quot; : &quot;article&quot;,
&quot;_id&quot; : &quot;4&quot;,
&quot;_score&quot; : 1.0,
&quot;_source&quot; : {
&quot;id&quot; : 4,
&quot;subject&quot; : &quot;第四篇文章标题&quot;,
&quot;content&quot; : &quot;第四篇文章内容-更新后&quot;,
&quot;author&quot; : &quot;tomi&quot;
}
}, {
&quot;_index&quot; : &quot;test&quot;,
&quot;_type&quot; : &quot;article&quot;,
&quot;_id&quot; : &quot;3&quot;,
&quot;_score&quot; : 1.0,
&quot;_source&quot; : {
&quot;id&quot; : 3,
&quot;subject&quot; : &quot;第三篇文章标题&quot;,
&quot;content&quot; : &quot;第三篇文章内容&quot;,
&quot;author&quot; : &quot;jam&quot;
}
}}
查询作者是名字包含“jam” 的文档,返回id 是2和3 的文档
curl -XGET 'http://localhost:9200/test/article/_search?pretty' -d '
{
&quot;query&quot;: {
&quot;match&quot;: {
&quot;author&quot;: &quot;jam&quot;
}
}
}'
查询文章内容包含“更新” 的文档,返回id 是4 的文档
curl -XGET 'http://localhost:9200/test/article/_search?pretty' -d '
{    &quot;query&quot;: {
&quot;match&quot;: {
&quot;content&quot;: &quot;更新&quot;
}
}
}'
  查询全部索引
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
(出处: 乐维)




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665251-1-1.html 上篇帖子: centos6.2 lnmp环境下安装 zabbix(中文环境)并且监控客户端 下篇帖子: Zabbix 实现微信短信告警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表