centos7Graylog3最新版安装部署与使用详解

centos7Graylog3最新版安装部署与使用详解

2023年7月17日发(作者:)

centos7Graylog3最新版安装部署与使⽤详解 ⽇志管理系统,⼤家普遍知道的都是ELK的解决⽅案,但是ELK要实现认证和⼀些状态监控,需要安装x-pack插件包,但是x-pack是要收费的,当然可以选择破解,但是⽐较⿇烦。⽽且ELK是⼀个解决⽅案,在其中包含很多软件,不单elasticsearch,kibana,logstash,还需要redis或kafaka,收集⽇志还需要不同的beats,整个结构⾮常复杂,且占⽤较多资源,要想完全搞懂需要较长时间。 但是很多时候,公司系统并不⼤,使⽤ELK的成本太⾼,可以使⽤⼀些替代⽅案,除了ELK还有很多⽇志管理⼯具,这⾥就介绍其中的⼀个很不错的⽇志⽅案:Graylog,Graylog是⼀个可以跟ELK相提并论的⽇志管理的后起之秀,⼀个开源的 log 收容器,背后的储存是搭配 mongodb,⽽搜寻引擎则由 elasticsearch 提供,⾃⾝集成web端,不需要单独部署,⽬前最新为3.0版本。 下⾯就详细记录⼀下,graylog3.0的安装与配置和使⽤。

正⽂1. 准备安装jdk8,安装⽅案,详见《》安装依赖包$ yum install epel-release -y$ yum install pwgen -y

2.安装mongodb$ vim /etc/.d/----------------------------------------------------------------[mongodb-org-4.0]name=MongoDB Repositorybaseurl=/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=/static/pgp/-----------------------------------------------------------------# 安装$ yum install -y mongodb-org# 启动$ systemctl enable mongod$ systemctl start mongod

3. 安装elasticsearch$ rpm --import /GPG-KEY-elasticsearch# graylog3.0 使⽤的elasticsearch不低于5.6.13版本,我这⾥⽤的最新版6.x$ vim /etc/.d/----------------------------------------------------------------[elasticsearch-6.x]name=Elasticsearch repository for 6.x packagesbaseurl=/packages/6.x/yumgpgcheck=1gpgkey=/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md----------------------------------------------------------------# 安装$ yum install elasticsearch# 修改配置,设置JAVA_HOMEvim /etc/sysconfig/elasticsearch----------------------------------------------------------------JAVA_HOME=/usr/local/jdk1.8.0_191 # 填上⾃⼰的java_home路径----------------------------------------------------------------# 启动$ systemctl enable elasticsearch$ systemctl start elasticsearch

4.安装Groylog$ rpm -Uvh /repo/packages/graylog-3.0-repository_$ yum install graylog-server -y修改配置, password_secret和root_password_sha2是必须的,不设置则⽆法启动,设置⽅法如下:# 修改配置vim /etc/graylog/server/---------------------------------------------------------------------------------# passworde_secret可以通过命令:pwgen -N 1 -s 96 来随机⽣成,下⾯就是我随机⽣成的password_secret = 6Z06fZHU2DwuOf9X8fhnvphCd3OM7oqwLECRRcejvjpieSvVtwu08yHYHIKDi56bAxRvtCOZ3xKKiBqyt00XYCgVa0oETB0L# admin⽤户密码⽣成命令:echo -n yourpassword | sha256sum# ⽣成后,请记住你的 YourPasswordroot_password_sha2 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855# admin⽤户邮箱root_email = "root@"# 时区root_timezone = Asia/Shanghai# elasticsearch 相关配置elasticsearch_hosts = 127.0.0.1:9200elasticsearch_shards =1

elasticsearch_replicas = 0# mongodb 连接配置,这⾥直接本机起的mongodb,没有设置验证mongodb_uri = mongodb://localhost/graylog# 电⼦邮件smtp,设置为⾃⼰的邮箱smtp服务transport_email_enabled = truetransport_email_hostname = nsport_email_port = 465transport_email_use_auth = truetransport_email_use_tls = falsetransport_email_use_ssl = truetransport_email_auth_username = root@nsport_email_auth_password = 123456transport_email_subject_prefix = [graylog]transport_email_from_email = root@nsport_email_web_interface_url = # ⽹络访问相关,重要,graylog3⽐2.x版本简洁了很多⽹络配置,只需配置http_bind_address即可。http_bind_address = 0.0.0.0:9000# 配置外⽹地址,我这⾥⽤了域名+nginx做反向代理,所以外⽹地址如下。没有的话就直接就⽤外⽹ip+port,如:外⽹ip:9000/http_publish_uri = /# http_external_uri = / 单节点的话,此配置不需要配置,默认使⽤http_publish_uri---------------------------------------------------------------------------------# 启动需要⼿动设置Java路径vim /etc/sysconfig/graylog-server---------------------------------------------------------------------------------JAVA=/usr/local/jdk1.8.0_191/bin/java---------------------------------------------------------------------------------# 启动服务$ systemctl enable graylog-server$ systemctl start graylog-server

5. 访问web页⾯输⼊⽤户密码登陆

6. 安装Graylog Sidecar(Graylog Collector Sidecar) Graylog Sidecar是⼀个轻量级配置管理系统,适⽤于不同的⽇志收集器,也称为后端。Graylog节点充当包含⽇志收集器配置的集中式集线器。在⽀持的消息⽣成设备/主机上,Sidecar可以作为服务(Windows主机)或守护程序(Linux主机)运⾏。进⾏在不同机器上进⾏⽇志的采集并发送到graylog server 在graylog3.0版本以前,称为Graylog Collector Sidecar,在3.0中改为了Graylog Sidecar,在官⽅⽂档中有详细安装指导:。这⾥也参考进⾏安装。版本对照表如下,⾸先去github上下载相应的rpm安装包。Sidecar og server ar version0.1.x0.0.9Graylog server version2.2.x,2.3.x,2.4.x,2.5.x,3.0.x2.1.x# 安装$ rpm -i graylog-sidecar-1.0.0-1.x86_# 修改配置$ vim /etc/graylog/sidecar/----------------------------------------------------------------------------server_url: "h/api/" # api的外⽹地址# api token 必要的,不然启动不了,token需要在web界⾯上进⾏⼿动创建server_api_token: "1jq26cssvc6rj4qac4bt9oeeh0p4vt5u5kal9jocl1g9mdi4og3n"node_name: "graylog-server-localhost" # ⾃定义节点名称update_interval: 10send_status: true----------------------------------------------------------------------------# 安装系统服务$ graylog-sidecar -service install$ systemctl start graylog-sidecar⼿动创建server_api_token。如图:ok,到此就可以启动graylog-sidecar了。启动后,在web界⾯上就可以看到⼀个节点了,然后下⾯记录怎么⼿动配置这个节点的⽇志采集。⾸先需要创建⼀个beats的input,因为我要要⽤filebeat进⾏⽇志采集。

然后就需要定义sidecar的filebeat配置,⽤这个配置来启动filebeat进⾏⽇志采集,并输⼊到上⾯定义的beats input。但是graylog3.0中,graylog sidecar的linux版本不包含filebeat(3.0版本之前是默认包含filebeat的),需要⾃⼰⼿动下载安装filebeat,安装⾮常简单,通过官⽅下载页⾯,直接下载rpm包进⾏安装就⾏:PS:我这⾥是演⽰的⽤filebeat进⾏⽇志采集,如果⽤nxlog进⾏采集,同样的需要安装nxlog程序。# 安装,⽬前最新版6.6.0rpm -i filebeat-6.6.0-x86_,就这样就ok啦,然后下⾯在web界⾯上进⾏配置这⾥我以采集本机上graylog-server的⽇志为例⼦,⾃定义变量中定义beats input服务的ip和端⼝,使得sidecar采集器能将数据输⼊指定input,并可以在所有配置中直接复⽤。配置创建完成后,需要将配置与指定sidecar进⾏联系,然后sidecar就能以执⾏配置启动filebeat进⾏⽇志采集。如图:然后就能在web界⾯上,看到采集到的graylog-server的⽇志

OK,到此,就演⽰了安装graylog-server和graylog-sidecar的全部过程。根据具体的实际情况,安装sidecar并设置配置就可以。

7. 配置报警设置 ⾸先,在安装graylog-server是需要想我上⾯那样,配置email的smtp的配置。然后才能使⽤邮件进⾏告警通知。 然后第⼀步,需要设置告警通知,如图,配置时sender⼀定要与你smtp配置中配置的邮箱相同,不然⽆法成功发送邮件。配置好后,Test成功收到邮件即OK。下⾯配置触发事件条件,这⾥我进⾏测试,定义了⼀个简单的条件,5分钟后,⽇志数量超过1条就报警,然后就会触发通知的配置发送报警邮件。实际情况中,具体的报警触发配置就需要⾃⼰根据实际情况进⾏设置。 8.整个Springboot等Java项⽬的⽇志输⼊到graylog中 下⾯演⽰如何将JAVA项⽬的⽇志输⼊到graylog中,常见的JAVA项⽬不管是不是分布式都会使⽤⽇志⼯具,常见的有log4j,logback,这⾥我以logback作为演⽰。只需要在项⽬中映⼊相关插件依赖然后在中配置就能实现⾃⼰由服务将⽇志传输到graylog,就不需要使⽤filebeat进⾏⽇志⽂件的读取再输⼊到graylog了。这⾥推荐⼀个插件,官⽅github地址: 下⾯开始,先在graylog web界⾯上定义⼀个 gelf input:然后,在JAVA项⽬中,添加maven依赖最新版本1.13.0: g logstash-gelf 1.13.0然后修改项⽬⽂件配置,添加如下appender,并启⽤: udp:172.18.73.131 12201 1.1 test-java-module # 这⾥可以定义为服务名等 true true true yyyy-MM-dd HH:mm:ss,SSS 8192 mdcField1,mdcField2 mdc.*,(mdc|MDC)fields true 除来上⾯的配置外,还可以⼿动添加静态字段,详细可以看插件的。OK,启动服务,就能在graylog web上看到输⼊的⽇志了: ok,到此就可以收到⽇志数据了,在实际⼯作中,服务⽇志会⾮常多,这么多的⽇志,如果不进⾏存储限制,那么不久就会占满磁盘,查询变慢等等,⽽且过久的历史⽇志对于实际⼯作中的有效性也会很低,graylog则⾃⾝集成了⽇志数据限制的配置,可以通过如下进⾏设置: 这⾥提供了三种⽅式进⾏限制,1,限定⽇志数据量,数据量达到是便会⾃动删除最旧的历史数据,以维持数据量恒定 2.限定⼤⼩,指定数据⽂件总容量⼤⼩ 3. 限定时间,删除超时的⽇志数据。 可根据⾃⼰的实际情况进⾏设置。

9. Graylog进阶使⽤ 上⾯介绍的都是graylog的基础使⽤和配置,在配置了之后,已经可以实现对⽇志的采集,⽇志的监控报警。下⾯就简单演⽰⼀下如何创建仪表盘,在过程中熟悉⼀下graylog中的搜索,流,索引,管道,装饰器等等。 在有了⽇志数据后,在web界⾯的search中,就可以搜索到⽇志数据了,如图途中就是search界⾯,最上⾯可以选择时间端,默认是最近5分钟,第⼆⾏是搜索的语法,这个语法很简单,最常⽤的如,搜索level为3的⽇志,就是 level:3,就这么简单,多条匹配规则可以通过AND,OR(连接词必须⼤写)进⾏连接。要搜索包含abc的⽇志,就直接输⼊ abc就⾏了。整体来说相对于elk要简单很多。具体的完整⽤法,参考官⽅⽂档:

然后我们要定义仪表盘,⾸先需要创建⼀个仪表盘,只需要输⼊标题和说明就⾏:创建完仪表盘后你会发现,没发直接在仪表盘中添加部件,也就是添加数据图形等。仪表盘中的部件只能通过在search页⾯中通过⽣产徒刑后点击 add to dashboard 来添加到仪表盘中,添加后可以进⾏修改删除。详细的可以参考官⽹⽂档: 先看⼀下我简单添加的仪表盘,

这⾥演⽰⼀下:在search页⾯中,选择字段,字段下⾯会有4个选项,可以⽣产4个不同的图形分析,如图:其中,最后⼀个是地图map分析,这个需要额外添加地图信息插件等。这⾥暂时不说。其他三个都是可以直接出来分析徒刑的。⽐如我想要知道环境-微服务的总数,因为上⾯整合springboot的时候,配置中将facility地段⾃定义为 环境-微服务,如test-device 。所以我直接点击facility下的Statistics,就会⽣产如下表格:如图,Cardinality就是环境-微服务不同的数量,也就是接收到⽇志的环境-微服务总数。点击add to dashboard就能添加到仪表盘,添加之前需要特别注意⼀点: 时间段,搜索的时间段会影响图形的数据量,添加到仪表盘后会作为默认的时间段来展⽰数据。当然也可以在添加后,再修改部件属性中修改时间等。这⾥就演⽰这⼀个部件的添加,其他的可以⾃⾏不断尝试,然后有⼀个需要单独说⼀下,扩展⼀下⼤家思路,⽐如我想知道时间段内error⽇志的数量,error⽇志所属的环境-服务的排序,以此来分析error⽇志。就需要配合搜索和时间来进⾏,⽐如,我们可以搜索1天内,⽇志界别为ERROR的数据Severity:ERROR ,然后以这些数据⽣成图形就可以实现了,如: OK,仪表盘就讲到这⾥了,下⾯讲⼀下Streams(流),Indices(索引)。我们知道elasticsearch是以索引来存储数据的,启动graylog后,会⾃动⽣产⼀个默认的索引,索引地段值就为graylog,如下图。上⾯我们还在其中配置过数据存储限制,可以通过时间,⼤⼩,数量来进⾏存储限制。为什么要说这个了,就是在实际⽣产情况中,⽇志来源并不是单⼀的,除了java应⽤服务⽇志,可能还有nginx访问⽇志,系统⽇志等等。这种时候就会产⽣重要性的问题,⽐如,⽣产环境的nginx访问⽇志,要保存1年。⽽测试环境的应⽤服务⽇志,只需要保存7天就可以了这种不同情况的需求,为了能更好的区分不同类型的⽇志,我们就可以创建不同的索引,来储存不同类型的⽇志。⽐如创建test环境,prod环境的索引来区分环境,创建nginx,web-app等来区分nginx和应⽤web服务等。如图创建prod环境⽇志:

索引创建后,需要创建stream(流)来讲收到的⽇志进⾏匹配,将匹配的⽇志存⼊新的索引。以此来形成区分,系统默认存在all message流来存⼊default index set中,在创建流的时候,可以定义匹配到的数据,在存⼊新的索引时,是否删除默认存⼊的索引数据,以保存数据只存⼀份,不然会存在多份相同⽇志数据。创建stream,如图,创建时选择此stream匹配的⽇志存⼊的索引。创建后,配置stream的匹配规则,匹配⽀持正则表达式,Type中选match regular expression(正则表达式),如下图。如图所⽰,规则之间可以选择是 "且" 还是 "或" 。 就是多条规则是都匹配才成功,还是只需要匹配其中⼀条就成功。规则添加成功后,点击i'm done 。然后点击 Start Stream启动Stream就可以了。这样就可以将⽇志数据进⾏分类保存了。好的。进阶的使⽤先说到这。⾄于⽇志Grok数据提取,和管道处理,后⾯有空再更新

结束 ok,Graylog3.0的安装与详细的使⽤演⽰到这⾥就差不多了,别的细节和没说到的,具体的还是参考官⽅⽂档,以官⽅⽂档为准。然后,谢谢⼤家耐⼼看到最后。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689542007a264691.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信