ELK日志系统

ELK日志系统

ELK:是一套完整的日志集中处理方案。

E:elasticsearch ES 分布式索引型非关系数据库 存储logstash 输出的日志,全文检索引擎。保存的格式json格式

L:logstash 基于Java开发的,数据收集引擎,日志的收集,可以对数据进行过滤,分析,汇总,以标准格式输出

K:Kiabana 是ES的可视化工具。对es存储的数据进行可视化展示,分析,检索

ELK架构

ELK F K

F:

filebeat:轻量级的开源日志文件数据搜集器。logstash占用资源比较大,属于重量级。

有了flebeat可以节省资源,可以通过filebeat和logstash实现远程数据收集。

filereat不能对数据进行标准输出,不能输出为ES格式的数据,所以需要logstasg把filebeat数据做标准化处理。

K:

kafka 消息队列?

192.168.11.150 es1

192.168.11.151 es2

192.168.11.152 kibana

192.168.11.150 和192.168.11.151操作安装 E L

F:\学习笔记\EKL图形化界面安装\ELK实验步骤 按照文档步骤来

1、es取主从和数据模式 node.master: true

es数据库的主从类型 true false

node.data: true

数据节点,是否保存数据,logstash发送数据,节点是否接受以及保存。

es如何创建,修改,删除数据 数据管理

通过http的方式

post方式修改数据

创建数据

less 复制代码
curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

localhost:9200 对应的就是本地数据库的地址 ip+端口
index-demo 创建索引分片的名称
test 数据名称
1 数据的id字段
?pretty&pretty 参数设定为json格式
-d 数据的具体内容

修改数据

less 复制代码
curl -X **POST** 'localhost:9200/index-demo/test/1/_update?pretty' -H 'Content-Type: application/json' -d '{  "doc": {    "user": "zhangsan",    "mesg": "hello1 world1"  } }'

删除数据

less 复制代码
curl -X DELETE 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

192.168.11.152安装日志图形化部署

less 复制代码
收集日志文件脚本
[root@apache-elk3 conf.d]# vim syetem.conf
input{

  file{
        path =>"/var/log/messages"
        type =>"system"
        start_position =>"beginning"
 }
}
output {
    elasticsearch {
              hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
              index=>"system-%{+YYYY.MM.dd}"
 }
}
[root@apache-elk3 conf.d]# pwd
/etc/logstash/conf.d
[root@apache-elk3 conf.d]# logstash -f system.conf --path.data /opt/test2 &    #开始日志收集 
#输入之后等一会 会出现成功标志
[root@apache-elk3 opt]#cd /opt/
[root@apache-elk3 opt]#rpm -ivh kibana-6.7.2-x86_64.rpm
[root@apache-elk3 conf.d]# vim /etc/kibana/kibana.yml
 2 server.port: 5601
 7 server.host: "0.0.0.0"
 28 elasticsearch.hosts: ["http://192.168.11.150:9200","http://192.168.11.151:9200"]
 37 kibana.index: ".kibana"
 96 logging.dest: /var/log/kibana.log
 113 i18n.locale: "zh-CN"
[root@apache-elk3 opt]#  systemctl restart kibana.service 
[root@apache-elk3 opt]#  systemctl enable  kibana.service 
[root@apache-elk3 opt]#  netstat -antp | grep 5601
[root@apache-elk3 opt]# chmod 777 /var/log/messages

浏览器访问:192.168.11.152:5601
http日志收集
less 复制代码
[root@apache-elk3 conf.d]# pwd
/etc/logstash/conf.d
[root@apache-elk3 conf.d]# vim http.conf
input {

      file{
           path => "/etc/httpd/logs/access_log"
           type => "access"
           start_position => "beginning"
          }
      file{
           path => "/etc/httpd/logs/error_log"
           type => "error"
           start_position => "beginning"
          }
}
output {
        if [type] == "access" {

          elasticsearch{
                  hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
                  index=> "apache_access-%{+YYYY.MM.dd}"
        }
   }
            if [type] == "error" {

          elasticsearch{
                  hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
                  index=> "apache_error-%{+YYYY.MM.dd}"
                       }
   }
[root@apache-elk3 conf.d]# logstash -f http.conf --path.data /opt/test5 &
API接口:

软件内部代码之间通信的接口 代码的连接 代码之间调用的接口

端口是对外提供访问程序的内容结构

filebeat:

作用:1、可以在本机收集日志

2、远程收集日志

3、轻量级的日志收集系统,可以在非Java环境运行

logstash占用资源比较大,属于重量级,需要再jvm运行,消耗资源大启动-个logstash要消耗500M左右的内存

192.168.11.137 nginx

less 复制代码
[root@test2 opt]# cd /usr/local/filebeat/
[root@test2 filebeat]# cp filebeat.yml filebeat.yml.bak
[root@test2 filebeat]# vim filebeat.yml   ##发
 21 - type: log
 22   enabled: true
 23   paths:
 24     - /usr/local/nginx/logs/access.log
 25     - /usr/local/nginx/logs/error.log
  26 #开启日志收集,以及确定日志文本路径,指定标签和发送到目标主机的logstash
 27   tags: ["nginx"]
 28   fields:
 29     service_name: 192.168.11.137_nginx
 30     log_type: nginx
 31     from: 192.168.11.137
 
150 #output.elasticsearch:
151   # Array of hosts to connect to.
152 #  hosts: ["localhost:9200"]
162 #----------------------------- Logstash output --------------------------------
163 output.logstash:
164   # The Logstash hosts
165   hosts: ["192.168.11.152:5045"]   #5044  logstash默认的端口,只要会死logstash主机上没有占用的端口可以使用。大于1024

[root@test2 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out &
-e  输出到标准输出
-c  指定配置文件
nohup:在系统的后台运行,不会因为终端的关闭导致程序停止运行,可以把运行的日志保存到指定文件

192.168.11.152

less 复制代码
nginx_137.conf
input {
   beats { port => "5045"}
}
output {
      if "nginx" in [tags] {
        elasticsearch  {
               hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
               index=> "%{[fields][service_name]}-%{+YYYY.MM.dd}"
          }
   }
}

[root@apache-elk3 conf.d]# logstash -f nginx_137.conf --path.data /opt/test6 &
[2] 60608

修改nginx默认访问端口

nginx 8888

httpd:80

mysql:3306

less 复制代码
mysql日志路径: general_log_file=/usr/local/mysql/data/mysql_general.log
nginx 日志路径:     - /usr/local/nginx/logs/access.log
                    - /usr/local/nginx/logs/error.log

httpd日志路径: /var/log/httpd/access_log
               /var/log/httpd/access_log
less 复制代码
[root@myslq4 nginx]# vim /etc/nginx/nginx.conf
 38     server {
 39         listen       8888;
 40         listen       [::]:8888;
 41         server_name  _;
 42         root         /usr/share/nginx/html;
 [root@myslq4 nginx]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      30416/nginx: master 
tcp6       0      0 :::8888                 :::*                    LISTEN      30416/nginx: master 

tstat -antp | grep nginx

tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 30416/nginx: master

tcp6 0 0 :::8888 ::😗 LISTEN 30416/nginx: master

复制代码
相关推荐
运维&陈同学12 小时前
【Beats01】企业级日志分析系统ELK之Metricbeat与Heartbeat 监控
运维·elk·elasticsearch·云原生·kibana·heartbeat·metricbeat
幽弥千月4 天前
【ELK】ES单节点升级为集群并开启https【亲测可用】
elk·elasticsearch·https
IT猿手4 天前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
流穿5 天前
ELK系列-(六)Redis也能作为消息队列?(下)
数据库·redis·ubuntu·elk·docker·容器
流穿5 天前
ELK系列-(五)指标收集-MetricBeat(下)
linux·运维·ubuntu·elk·docker·容器
流穿6 天前
ELK系列-(五)指标收集-MetricBeat(上)
ubuntu·elk·elasticsearch·docker
高hongyuan6 天前
Linux环境下 搭建ELk项目 -单机版练习
大数据·运维·服务器·elk·elasticsearch·搜索引擎
运维&陈同学7 天前
【Elasticsearch04】企业级日志分析系统ELK之Elasticsearch 插件
大数据·运维·后端·elk·elasticsearch·搜索引擎·全文检索·哈希算法
幽弥千月8 天前
【ELK】Filebeat采集Docker容器日志
elk·docker·容器
运维&陈同学9 天前
【Elasticsearch03】企业级日志分析系统ELK之Elasticsearch访问与优化
大数据·elk·elasticsearch·搜索引擎·云原生·全文检索·高可用