filebeat+logstash+influxdb+ Grafana打造网站日志监控系统

filebeat+logstash+influxdb+ Grafana打造网站日志监控系统

image

采集数据(fliebeat)->过滤数据(logstash)-> 存储数据(InfluxDB) -> 显示数据(Grafana)。

资源有限,我把这一套服务搭建在了一台CentOS 7的服务器上。

filebeat简述

Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。
以下是filebeat的工作流程:当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。

logstash简述

Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。
顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器 日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。

influxdb简述

InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

Grafana简述

Grafana 是基于JS开发的,功能齐全的度量仪表盘和图形编辑器,帮助开发人员发现问题的工具

几者之间的关系

filebeat负责收集新产生的日志数据,发送给logstash进行数据过滤,logstash输出格式化的数据到时序数据库influxdb中,grafana从influxdb数据库中读取数据实时展示,监控网站的状况,如访问量,每分钟发送的字节数,500的情况等等

打造网站日志监控系统的步骤

1. nginx服务器配置

1.1 log_format配置如下

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent  $request_time "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';

1.2 对应的日志文件格式如下

192.168.154.2 - - [30/Mar/2017:01:27:09 -0700] \"GET /index.html HTTP/1.1\" 304 0 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36\" \"-\""

2.logstash安装和配置

2.1 logstash的安装,我的版本是logstash-5.6.1-1.noarch

yum install logstash

2.2 logstash中grok的正则(添加在logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-xxx/patterns/grok-patterns文件中)为:

WZ ([^ ]*)
NGINXACCESS %{IP:remote_ip} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{NUMBER:request_time} %{QS:referer} %{QS:agent} %{QS:xforward}

2.3 logstash.conf配置文件内容

input {
    file {
        path     => ["/var/log/nginx/access.log"]
        type    => "nginxlog"
        start_position => "beginning"
    }
}

filter {  
    grok {  
      match => { "message" => "%{NGINXACCESS}" }
    }  
} 
output {

    influxdb {
                     db => "influxdb中的数据库名"
                     host => "localhost"
                     port => "8086"
                     user => "你的账号"
                     password => "你的密码"
             coerce_values => {
                     "request" => "varchar"
                     "status" => "varchar"
               }
                    data_points => {
                                  "request" => "%{request}"
                                  "status" => "%{status}"
                                  "referer"=>"%{referer}"
                                  "agent"=>"%{agent}"
                                  "method"=>"%{method}"
                                  "remote_ip"=>"%{remote_ip}"
                                  "bytes"=>"%{bytes}"
                                  "host"=>"%{host}"
                                  "timestamp"=>"%{timestamp}"
                      
                    }

} 

3.filebeat安装和配置

3.1filebeat的安装

我的filebeat的版本为5.1.1

yum install filebeat

3.2 filebeat的配置,配置文件一般位于/etc/filebeat/

filebeat.prospectors:                                                                              
- input_type: log 
  paths:
    - /var/log/nginx/access.log
output.logstash:
  hosts: ["localhost:5044"] //监控本机的5044端口,可以自己定义需要和logstash配置文件中的beats端口一致

3.3 踩过的坑

logstash的配置文件在/etc/logstash/,我们需要设置软连接到/usr/share/logstah/config下面

ln -s /etc/logstash/* /usr/share/logstash/config/

我们设置的配置文件在/etc/logstash/conf.d/也需要软连接到/usr/share/logstash/,跟上面有所不同

ln -s /etc/logstash/conf.d/logostash.conf /usr/share/logstash/

logstash5.0以上版本移除了很多插件,包括ifluxdb插件,我们需要利用gem安装,链接如下本地以Gems包的形式安装Logstash插件

4. influxdb的安装和配置

4.1 influxdb的安装

我的版本是influxdb-1.0.2.x86_64.rpm

yum install influxdb

4.2 influxdb的配置

//管理后台配置,可以根据ip或者域名+端口号8083访问influxdb数据库的管理后台
[admin]
  enabled = true
  bind-address = ":8083"
[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = false
  log-enabled = true
  write-tracing = false
  pprof-enabled = false                                                                                                                             
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"
  max-row-limit = 10000
  realm = "InfluxDB"

5. Grafana的安装和配置

5.1 Grfana的安装

我的Grfana版本是 grafana-4.2.0-1.x86_64.rpm

yum install grafana

5.2 Grafana的启动

service granfan rstart

5.3 Grafana的配置,配置数据源


image

5.4 开启服务后台运行,监控日志,实时显示

nohup bin/logstash -f test.conf --path.data=/var/ &

6.结束语

经过两天的学习和各种踩坑,终于构建一个非常漂亮的实时监控界面,有利于我们实时的监控网站的运行状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容