elk 绝地灬酷狼 2022-05-21 12:20 198阅读 0赞 关系型 -------- 非关系型 MySQL ?--? NoSQL Database ----> Index Table ----> Type Row ----> Document Column ----> Filed ELK组成: \- E:是指Elasticsearch,完成数据的存储和检索 \- L:是Logstash,完成数据的采集、过滤及解析 \- K:Kibana,以WEB方式展示 curl 命令 访问一个网页 curl http://www.baidu.com 显示头信息 curl -I http://www.baidu.com 显示详细的交互信息 curl -v http://www.baidu.com 把网页内存保存为文件 curl -o urfile http://www.baidu.com 禁用 防火墙,禁用 selinux elasticsearch 安装 1、安装 openjdk 包 yum install -y java-1.8.0-openjdk-devel 验证 java -version jps 安装 elasticsearch rpm -ivh elasticsearch-2.3.4.rpm 修改配置文件启动服务 network.host: ip.xx.xx.xx systemctl start elasticsearch 验证 systemctl status elasticsearch netstat -ltunp 通过浏览器访问 http://192.168.4.11:9200/ elasticsearch 集群安装 在多台机器上安装部署 java-1.8.0-openjdk-devel,elasticsearch-2.3.4.rpm 修改 hosts 文件,保证所有机器通过名称能 ping 通集群中的其他机器 禁用防火墙 和 selinux 禁用防火墙 和 selinux 禁用防火墙 和 selinux 在所有节点修改配置文件 /etc/elasticsearch/elasticsearch.yml cluster.name: my-elk01 node.name: node5 network.host: 0.0.0.0 discovery.zen.ping.unicast.hosts: \["node1", "node2", "node3", "node5"\] 启动所有节点的 elasticsearch 服务 通过浏览器可以访问任意节点的 http://ip.xx.xx.xx:9200/ 验证集群是否正常,访问 http://192.168.4.15:9200/\_cluster/health?pretty \{ "cluster\_name" : "my-elk01", \#集群名称 "status" : "green", \# 表示正常 "timed\_out" : false, "number\_of\_nodes" : 5, \#当前节点数量 "number\_of\_data\_nodes" : 5, "active\_primary\_shards" : 0, "active\_shards" : 0, "relocating\_shards" : 0, "initializing\_shards" : 0, "unassigned\_shards" : 0, "delayed\_unassigned\_shards" : 0, "number\_of\_pending\_tasks" : 0, "number\_of\_in\_flight\_fetch" : 0, "task\_max\_waiting\_in\_queue\_millis" : 0, "active\_shards\_percent\_as\_number" : 100.0 \} 插件的安装 head kopf bigdesk 1 拷贝插件 zip 包到一个目录 2 /usr/share/elasticsearch/bin/plugin install file:///插件的位置/插件包.zip 安装 3 验证: 安装完成以后可以通过 /usr/share/elasticsearch/bin/plugin list 看到我们已经安装的插件的名称 4 访问head 插件 它展现ES集群的拓扑结构 可以通过它来进行索引(Index)和节点(Node)级别的操作 它提供一组针对集群的查询API,并将结果以json和表格形式返回 它提供一些快捷菜单,用以展现集群的各种状态 http://192.168.4.11:9200/\_plugin/head/ 5 kopf 插件安装 kopf是一个ElasticSearch的管理工具,它提供了对ES集群操作的API。 /usr/share/elasticsearch/bin/plugin install file:///xxx-kopf.zip 访问地址 http://192.168.4.11:9200/\_plugin/kopf/ 6 bigdesk 插件安装 bigdesk是elasticsearch的一个集群监控工具 可以通过它来查看es集群的各种状态, 如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。 /usr/share/elasticsearch/bin/plugin install file:///bigdesk-xxx.zip 访问地址 http://192.168.4.11:9200/\_plugin/bigdesk/ 使用RESTful API操作elasticsearch curl -XPUT 'http://192.168.4.11:9200/school/' -d '\{ "settings":\{ "index":\{ "number\_of\_shards": 5, "number\_of\_replicas": 1 \} \} \}' 获取索引配置信息: curl -XGET 'http://192.168.4.11:9200/school/\_settings/' curl -XGET 'http://192.168.4.11:9200/\_all/\_settings/' 创建文档 curl -XPUT 'http://192.168.4.11:9200/school/students/1' -d '\{ "title": "devops", "name":\{ "first": "guzhang", "last": "wu" \}, "age": 25 \}' 查询文档信息 curl -XGET 'http://192.168.4.11:9200/school/students/1' curl -XGET 'http://192.168.4.11:9200/school/students/1?\_source=name,age' 更新文档信息 curl -XPOST 'http://192.168.4.11:9200/school/students/1/\_update' -d '\{ "doc":\{ "age": 30 \} \}' 删除文档信息 curl -XDELETE 'http://192.168.4.14:9200/school/students/1' 批量导入数据 curl -XPOST 'http://192.168.4.14:9200/\_bulk' --data-binary @shakespeare.json curl -XPOST 'http://192.168.4.14:9200/\_bulk' --data-binary @logs.jsonl curl -XPOST 'http://192.168.4.14:9200/accounts/act/\_bulk?pretty' --data-binary @accounts.json 批量查询数据 curl -XGET 'http://192.168.4.11:9200/\_mget?pretty' -d '\{ "docs":\[ \{ "\_index": "accounts", "\_type:": "act", "\_id": 1 \}, \{ "\_index": "accounts", "\_type:": "act", "\_id": 2 \}, \{ "\_index": "shakespeare", "\_type:": "scene", "\_id": 1 \} \] \}' json 是什么,格式怎么书写 1 昨天已经搭建好 elasticsearch 集群 清除所有 index 导入 logs.jsonl 日志 mapping: 映射:创建索引的时候,可以预先定义字段的类型及相关属性。 作用:这样会让索引建立得更加的细致和完善。 分类:静态映射和动态映射。 动态映射:自动根据数据进行相应的映射。 静态映射:自定义字段映射数据类型。 kibana部分 1.kibana的概念及特点。 概念:数据可视化平台工具 特点: \- 灵活的分析和可视化平台 \- 实时总结和流数据的图表 \- 为不同的用户显示直观的界面 \- 即时分享和嵌入的仪表板 2.kibana的安装配置。 rpm -ivh kibana-4.5.2-1.x86\_64.rpm \#配置 kibana /opt/kibana/config/kibana.yml server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://192.168.4.13:9200" kibana.index: ".kibana" kibana.defaultAppId: "discover" elasticsearch.pingTimeout: 1500 elasticsearch.requestTimeout: 30000 elasticsearch.startupTimeout: 5000 通过图形页面展示,注意时间是 2015 年,需要调整时间才能正常显示 logstash部分 3.logstash的概念及特点。 概念:logstash是一个数据采集、加工处理以及传输(输出)的工具。 特点: \- 所有类型的数据集中处理 \- 不同模式和格式数据的正常化 \- 自定义日志格式的迅速扩展 \- 为自定义数据源轻松添加插件 安装Logstash rpm -ivh logstash-2.3.4-1.noarch.rpm Logstash 依赖 java 环境,需要安装 java-1.8.0-openjdk 安装之后,创建第一个测试的配置文件 /etc/Logstash/logstash.conf input\{ stdin\{\} \} filter\{ \} output\{ stdout\{\} \} 使用 logstash -f logstash.conf 启动,如果输入数据能看到返回证明 logstash 安装正确 logstash 数据处理结构 | -------------------------logstash---------------------------| {数据源} -->\{ input\{数据接收\} -- filter\{数据处理\} -- output\{数据发送\} \} --> \{ES集群\} |--------------------------logstash---------------------------| 布尔值类型: ssl\_enable => true 字节类型: bytes => "1MiB" 字符串类型: name => "xkops" 数值类型: port => 22 数组: match => \["datetime","UNIX"\] 哈希: options => \{key1 => "value1",key2 => "value2"\} 编码解码: codec => "json" 路径: file\_path => "/tmp/filename" 注释: \# 条件判断: 等于: == 不等于: != 小于: < 大于: > 小于等于: <= 大于等于: >= 匹配正则: =~ 不匹配正则: !~ 包含: in 不包含: not in 与: and 或: or 非与: nand 非或: xor 复合表达式: () 取反符合: !() logstash-file 插件: 从文件读取,在屏幕输出 file插件字段解释: codec => \#可选项,默认是plain,可设置其他编码方式。 discover\_interval => \#可选项,logstash多久检查一下path下有新文件,默认15s。 exclude => \#可选项,排除path下不想监听的文件。 sincedb\_path => \#可选项,记录文件以及文件读取信息位置的数据文件。~/.sincedb\_xxxx sincedb\_write\_interval => \#可选项,logstash多久写一次sincedb文件,默认15s. stat\_interval => \#可选项,logstash多久检查一次被监听文件的变化,默认1s。 start\_position => \#可选项,logstash从哪个位置读取文件数据,默认从尾部,值为:end。初次导入,设置为:beginning。 path => \#必选项,配置文件路径,可定义多个。 tags => \#可选项,在数据处理过程中,由具体的插件来添加或者删除的标记。 type => \#可选项,自定义处理时间类型。比如nginxlog。 input\{ file\{ start\_position => "beginning" sincedb\_path => "/var/lib/logstash/sincedb-access" path => \["/tmp/blog","/tmp/alog"\] type => 'filelog' \} \} filter\{ \} output\{ stdout\{\} \} logstash-tcp 插件:从网络读取,在屏幕输出 tcp插件字段解释: add\_field => \#可选项,默认\{\}。 codec => \#可选项,默认plain。 data\_timeout => \#可选项,默认-1。 host => \#可选项,默认0.0.0.0。 mode => \#可选项,值为\["server","client"\]之一,默认为server。 port => \#必选,端口。 ssl\_cacert => \#可选项,定义相关路径。 ssl\_cert => \#可选项,定义相关路径。 ssl\_enable => \#可选项,默认为false。 ssl\_key => \#可选项,定义相关路径。 ssl\_key\_passphrase => \#可选项,默认nil ssl\_verify => \#可选项,默认false。 tags => \#可选项 type => \#可选项 input\{ tcp\{ host => "0.0.0.0" port => 8888 type => "tcplog" \} \} filter\{ \} output\{ stdout\{\} \} 在服务器上启动 logstash , 在客户机上使用 shell 脚本测试 function tcpmsg() \{ exec 9<>/dev/tcp/192.168.4.10/8888 echo -ne "$\{1\}\\r\\n" >&9 exec 9<&- \} logstash-udp插件: udp插件字段解释: add\_field => \#可选项,默认\{\}。 host => \#可选项,默认0.0.0.0。 queue\_size => \#默认2000 tags => \#可选项 type => \#可选项 workers => \#默认为2 input\{ udp\{ host => "192.168.4.10" port => 9999 \} \} filter\{ \} output\{ stdout\{\} \} 在服务器上启动 logstash , 在客户机上使用 shell 脚本测试 function udpmsg() \{ exec 9<>/dev/udp/192.168.4.10/9999 echo -ne "$\{1\}\\r" >&9 exec 9<&- \} logstash-syslog 插件: input\{ syslog\{ host => "192.168.4.10" port => 514 type => "syslog" \} \} filter\{ \} output\{ stdout\{\} \} 在服务器启动 logstash,在客户机修改 /etc/rsyslog.conf 配置问件,添加 \*.\* @@192.168.4.10:514 重新启动 rsyslog 服务 systemctl restart rsyslog 使用明令写入 syslog 进行测试 logger -p local0.info -t test\_logstash 'test message' 输入命令以后可以在 /var/log/messages 看到,在 logstash 服务器端也同时能看到输出 codec类插件 常用的插件:plain、json、json\_lines、rubydebug、multiline等 input\{ file\{ start\_position => "beginning" sincedb\_path => "/dev/null" path => \["/tmp/alog"\] type => 'filelog' codec => "json" \} \} output\{ stdout\{ codec => "rubydebug" \} \} 利用 rubydebug 方便调试,如果输入在文件是 json 在 input 指定编码格式 filter grok插件:解析各种非结构化的日志数据插件 grok有丰富的patterns,查看方式 /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.5/patterns/grok-patterns filter\{ grok\{ match => \["message","%\{IP:ip\} %\{WORD:method\} %\{URIPATH:uri\} %\{NUMBER:bytes\} %\{NUMBER:duration\}"\] \} \} grok 使用正则表达式把飞结构化的数据结构化在分组匹配,正则表达式需要根据具体数据结构编写,虽然编写困难,但适用性极广,几乎可以应用于各类数据 最后是一个完整的 Logstash 的配置文件,使用Logstash 收集数据,格式化以后放入 ES 集群 input\{ file\{ start\_position => "beginning" sincedb\_path => "/dev/null" path => \["/tmp/alog"\] type => 'filelog' codec => "json" \} \} filter\{ \} output\{ if \[type\] == "filelog"\{ elasticsearch \{ hosts => \["192.168.4.15:9200"\] index => "weblog" flush\_size => 2000 idle\_flush\_time => 10 \}\} \} 放入集群以后的数据可以通过 kibana 展示 在生产环境中,我们往往还需要配置 redis 用来缓存 或 filebeat 用来收集日志,这里给出简单的配置样例,需要更深入学习的同学请查看官方文档 https://github.com/logstash-plugins redis 配置 input\{ redis\{ host => 'redis-server' port => '6379' data\_type => 'list' key => 'lb' codec => 'json' \} \} filebeat 配置 input \{ beats \{ port => 5044 codec => "json" \} \} filebeat 客户端相关配置文件 filebeat: prospectors: \- paths: \- /root/logs.jsonl document\_type: logstash \- paths: \- /root/shakespeare.json document\_type: shakespeare \- paths: \- /root/accounts.json document\_type: account registry\_file: /var/lib/filebeat/registry output: logstash: hosts: \["192.168.4.10:5044"\] shipper: logging: files:
相关 ELK部署 ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBe 朱雀/ 2022年12月27日 15:29/ 0 赞/ 71 阅读
相关 ELK实战--Kafka+ELK 原文网址:[ELK实战--Kafka+ELK\_IT利刃出鞘的博客-CSDN博客][ELK_--Kafka_ELK_IT_-CSDN] 其他网址 [ELK-Kafka分 ╰半橙微兮°/ 2022年10月30日 14:28/ 0 赞/ 276 阅读
相关 elk 关系型 -------- 非关系型 MySQL ?--? NoSQL Database ----> Index Table ----> Type Row --- 绝地灬酷狼/ 2022年05月21日 12:20/ 0 赞/ 199 阅读
相关 ELK-01 elk初体验 elk是什么 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的log ╰半夏微凉°/ 2022年05月16日 00:05/ 0 赞/ 531 阅读
相关 elk安装 1、准备 1.1 简介 ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。 Elasticsearch是实时 以你之姓@/ 2022年05月15日 15:56/ 0 赞/ 313 阅读
相关 ELK ELK简介 1. ElasticSearch: 分布式数据搜索引擎,用于全文搜索 //存储+搜索 2. Logstach : 数据收集引擎 3. 叁歲伎倆/ 2022年03月26日 01:18/ 0 赞/ 313 阅读
相关 ELK \- ELK构建MySQL慢日志收集平台详解:https://mp.weixin.qq.com/s/umH7ImZZVhdfgMdZ3Hz5fA \- ELK日志系统之使用R 心已赠人/ 2022年01月12日 10:25/ 0 赞/ 295 阅读
相关 ELK E:Elasticsearch 基于开源分布式搜索引擎Lucene实现,接近实时(NRT,Near Realtime)的搜索平台 基本概念 Cluster - Dear 丶/ 2021年11月22日 19:54/ 0 赞/ 331 阅读
相关 ELK 学习 [\[Udemy\] ES 7 and Elastic Stack - part 1][Udemy_ ES 7 and Elastic Stack - part 1] Re 骑猪看日落/ 2021年11月05日 02:40/ 0 赞/ 315 阅读
相关 elk文件 =================正则匹配 [root@web02 conf.d] cat apache-grok.conf input{ 素颜马尾好姑娘i/ 2021年09月20日 12:50/ 0 赞/ 273 阅读
还没有评论,来说两句吧...