设为首页 收藏本站
查看: 2716|回复: 1

[经验分享] ELK的搭建及简单操作

[复制链接]

尚未签到

发表于 2016-12-5 09:23:21 | 显示全部楼层 |阅读模式
成功界面图:
QQ截图20161205092236.png
使用ES注意事项:
1、es版本2.x以上需要JDK 1.8以上
2、运行es不能使用root用来来运行
3、es目录必须指定一个普通用户和组(授权)
4、es对内存和CPU的消耗比较高
5、es版本在5.X以上系统要求至少要能够开启2048个线程才可以启动,系统版本使用CENTOS7才可以
6、es使用的端口看开放iptables:9200,9300等
7、es配置其他插件实现资源等可视化监控
8、es的版本和插件之间版本要匹配
9、es集群配置,第一节点配置好scp到其他节点即可(修改配置文件)
一、es启动
1、下载es包.2.4.2版本、解压到/usr/local/并命名为elasticsearch
2、修改配置文件
cluster.name: my-application
node.name: mycat
path.data: /home/elastic/
path.logs: /home/elastic/logs
network.host: 192.168.1.114
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.1.114"]
3、添加用户
useradd elastic
4、给/usr/local/elasticsearch授权
chown -R elastic.elastic /usr/local/elasticsearch
5、切换用户启动elastcisearch
su elastic
/usr/local/elasticsearch/bin/elasticsearch &
6、验证服务
登陆http://192.168.1.114:9200/
{
  "name" : "mycat",
  "cluster_name" : "my-application",
  "cluster_uuid" : "nwPLOaaEQrGrMXsQpL61sg",
  "version" : {
    "number" : "2.4.1",
    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",
    "build_timestamp" : "2016-09-27T18:57:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}
启动OK~~!
8、安装kibana+sence可视化报表
1、修改kibana的配置文件/usr/local/kibana/config/kibana.yml
server.port: 5601#kibana使用的服务端口
server.host: "192.168.1.114"#kibana实例主机
elasticsearch.url: "http://192.168.1.114:9200" ##指向elasticsearch实例,监控es服务的状态,关闭服务先关闭kibana服务先
2、启动kibana,这个可以在root模式下启动
/usr/local/kibana/bin/kibana &
3、加载sence插件
/usr/local/kibana/bin/kibana plugin --install elastic/sense
3、通过http://192.168.1.114:5601就可以可视化页面
8、安装管理和监控工具,使用marvel插件,这个插件是收费的,免费试用一个月。
Marvel基础功能是免费的 但是下载的是全功能版本 需要后续申请基础功能的license
Marvel是Elasticsearch的管理和监控工具
##在/usr/local/elasticsearch/目录下,安装marvel的许可和代理,用root来执行
Step 1: bin/plugin install license
        bin/plugin install marvel-agent
#cd /usr/local/kibana/ #把marvel服务安装到kibana里
Step 2: Install Marvel into Kibanabin/kibana plugin --install elasticsearch/marvel/latest
#重启es和kibana服务
Step 3: bin/elasticsearch
        bin/kibana
Step 4: http://localhost:5601
Step 5:配置index pattern
修改index name or pattern里值为:.marvel-*(第一次的时候这么配置,后期使用后又索引了,写索引名字即可)
QQ截图20161205092246.png
至此可以登录kibana页面,可以看到kibana\marvel\sence都集成在页面也里了。

默认安装的是带有安全模块的30天试用版 https://www.elastic.co/guide/en/ ... nse-management.html
如果只使用marvel的监控模块 需要更换license为Basic License
register for a Basic license
安装license
curl -XPUT -u admin 'http://<host>:<port>/_license?acknowledge=true' -d @license.json ### @后面是license文件, 安装后不需要重启ES和kibana
查看license是否更新成功
curl -XGET -u admin:password 'http://<host>:<port>/_license'

全文索引的设置:
1、下载包、解压

https://www.elastic.co/downloads/past-releases/logstash-2-4-1
2、添加配置文件目录
mkdir /usr/local/logstash/conf
touch /usr/local/logstash/conf/logstash.conf
input {
  jdbc {
    jdbc_driver_library => "/opt/logstash/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar" #这个包要在logstash服务器上存在包
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://host:3306/database" #数据库信息
    jdbc_user => ""
    jdbc_password => ""
#    schedule => "0 1 * * *"
    statement => "select * from aaa"
   clean_run => true
}
}
output
{
elasticsearch {
   hosts => ["host:9200"]
   index => "index" #自定义
   document_type => "index" #自定义
   document_id => "%{id}"       ###设置ID为ES主键,当数据库有update操作时,原记录会被覆盖
}
}
####
input {
  jdbc {
    jdbc_driver_library => "/usr/local/mysql-connector-java-5.1.40-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.1.114:3306/test"
    jdbc_user => "dlan"
    jdbc_password => "root123"
    schedule => "0 1 * * *"
    statement => "select * from aaa"
    jdbc_paging_enabled =>"true"
    clean_run => "true"
}
}
output
{
elasticsearch {
   hosts => ["192.168.1.114:9200"]
   index => "index"
   document_type => "index"
   document_id => "%{id}"
}
}
###
3、启动logstash
/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf &
4、然后再kibana里面sense
Server的localhost改成es的ip地址
GET /index_mycat/index_mycat/_search#返回所有的数据
GET /index_mycat/index_mycat/_search
{
  "query": {
    "term": {
      "id": {
        "value": "7"
      }
    }
  }
}#查看某个值

GET /index_mycat/index_mycat/_search
{
  "query": {
    "terms": {
      "id": [
        "1",
        "2",
        "3"

      ]
    }
  }
}#查询一个ID的多个值

ES写入和查询数据
POST /logstach20161203/testlog
{

  "date":"111111111",

  "user":"chen",

  "mesg":"first message"

}


GET _cat/indices

GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_source#返回原始的数据,根据hash取回来的值
GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu?fields=user,mesg
#返回多个值
GET /logstach20161203/testlog/_search/
{
  "query": {
    "term": {
      "user": {
        "value": "chen"
      }
    }
  }
}
ES数据更新的方法:
一种为全量提交,即根据_id再发送一次写请求
POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu
{

  "date":"111111112",

  "user":"chen",

  "mesg":"first message1"

}
另外一种是局部更新
POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update
{"doc":{"user":"aaa1a"}}
curl -XPOST 'http://192.168.1.114:9200/logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update' -d '{"doc":{"user":"aaaa"}}'

ES的查询
GET /logstach20161203/testlog/_search?q=aaa1a

GET /logstach20161203/testlog/_search?q=user:"aaa1a"

?q=后写写就是querystring语法
1、全文检索:直接写搜索的单词,如上例中的?? first?;
2、单字段的全文检索:在搜索单词之前加上字段名和冒号,比如如果知道单词
first?肯定出现在?mesg?字段,可以写作?? mesg:first?;
3、单字段的精确检索:在搜索单词前后加双引号,比如?? user:"chenlin7"?;
4、多个检索条件的组合:可以使用?? NOT?,?? AND??和??OR??来组合检索,注意必须是大写。比如?? user:("chenlin7"?OR?"chenlin")?AND?NOT
mesg:first?;
5、字段是否存在:? _exists_:user??表示要求?user?字段存在,? _missing_:user??表示要求?user?字段不存在;
6、通配符:用?? ???表示单字母,? *??表示任意个字母。比如??fir?t?mess*?;
7、正则:需要比通配符更复杂一点的表达式,可以使用正则。比如
? mesg:/mes{2}ages?/?。注意?ES?中正则性能很差,而且支持的功能也不是
特别强大,尽量不要使用。ES?支持的正则语法
见:https://www.elastic.co/guide/en/ ... /current/query-dsl-
regexp-query.html#regexp-syntax;
8、近似搜索:用?? ~??表示搜索单词可能有一两个字母写的不对,请?ES?按照相似
9、度返回结果。比如?? frist~?;
10、范围搜索:对数值和时间,ES?都可以使用范围搜索,比
如:? rtt:>300?,? date:["now-6h"?TO?"now"}??等。其中,?[]??表示端点
数值包含在范围内,? {}??表示端点数值不包含在范围内;


运维网声明 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-309851-1-1.html 上篇帖子: ELK应用 下篇帖子: ELK+Redis日志流程展示
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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