Linux搭建promtaillokigrafana轻量日志
一:简介
日志监控告警系统,较为主流的是ELK(Elasticsearch、Logstash和Kibana核心套件构成),虽然优点是功能丰富,允许复杂的操作。但是,这些方案往往规模复杂,资源占用高,操作苦难。很多功能往往用不上,大多数查询只关注一定时间范围和一些简单的参数(如host、service等),使用这些解决方案就有点杀鸡用牛刀的感觉了。
所以寻找更轻量级的日志监控系统,所以也就有了EFK(elasticsearchkibanafilebeat),
搭建参考:EFK轻量级日志系统搭建
另外一种是PromtailLokiGrafana核心组件构成,简称PLG,这种是更轻量级的,配置要求也不高,功能简单,但是目的明确,就是日志采集。
Loki的架构也非常简单,使用了和prometheus一样的标签来作为索引,Loki是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。
组件:promtail:日志收集的代理,安装部署在需要收集和分析日志的服务器,promtail会将日志发给Loki服务。Loki:主服务器,负责存储日志和处理查询。Grafana:提供web管理界面,数据展示功能。
二:服务器安装及配置
1:基础安装启动
安装方式大概有这么几种,二进制安装,yum安装、docker安装、helm安装。
因为是服务器端,我这里用docker安装,简单方便。
官方网站也提供了dockercompose文件供下载。
参考地址:https:grafana。comdocslokilatestinstallationdocker下载dockercompose文件wgethttps:raw。githubusercontent。comgrafanalokiv2。5。0productiondockercompose。yamlOdockercompose。yaml
下载的dockercompose文件如下,也是最简单基本的。version:3networks:loki:services:loki:image:grafanaloki:2。5。0ports:3100:3100command:config。fileetclokilocalconfig。yamlnetworks:lokipromtail:image:grafanapromtail:2。5。0volumes:varlog:varlogcommand:config。fileetcpromtailconfig。ymlnetworks:lokigrafana:image:grafanagrafana:latestports:3000:3000networks:loki
这时也可以正常启动即可,默认日志为varlog的位置。dockercomposefdockercompose。yamlup
这时,基本的安装就完成了,但是有时候需要更改配置文件,如后续nginx反向代理访问,这时这个配置文件满足不了需求,所以需要自己改动grafana。还有就是dockercomposedown掉,数据也是没了,需要重新添加。
2:升级配置启动
更改也很简单,无非就是启动后,把docker的配置文件夹拷贝出来本地,然后挂载上去即可。
以下就是我自己改的dockercompose文件,可以参考:
本人机器3000端口被占用,所以改用3030端口映射,按需设置。还有本人数据文件夹varlibgrafana挂载后,账号进不去,所以先注释掉了,后续在慢慢测试。version:3networks:loki:services:loki:image:grafanaloki:2。5。0restart:unlessstoppedports:3100:3100volumes:。configloki:etclokicommand:config。fileetclokilocalconfig。yamlnetworks:lokipromtail:image:grafanapromtail:2。5。0volumes:varlog:varlog。configpromtail:etcpromtailcommand:config。fileetcpromtailconfig。ymlnetworks:lokigrafana:image:grafanagrafanaenterprise:8。5。2ubunturestart:unlessstoppedports:3030:3000volumes:。configgrafana:etcgrafana。grafanadata:varlibgrafana这行是数据挂载在本地,需要将数据拷贝出来networks:loki
最后文件结构如下:除了grafana配置文件夹比较多文件,其他都只有一个。grafana我整个文件夹复制出来就行了。configgrafanagrafana。inildap。tomlprovisioningaccesscontroldashboardsdatasourcesnotifierspluginslokilocalconfig。yamlpromtailconfig。ymldockercompose。yamlgrafanadataalerting〔erroropeningdir〕csv〔erroropeningdir〕grafana。dbpluginspng〔erroropeningdir〕
loki的localconfig。yaml参考配置文件:authenabled:falseserver:httplistenport:3100common:pathprefix:lokistorage:filesystem:chunksdirectory:lokichunksrulesdirectory:lokirulesreplicationfactor:1ring:kvstore:store:inmemoryschemaconfig:configs:from:20201024store:boltdbshipperobjectstore:filesystemschema:v11index:prefix:indexperiod:24hruler:alertmanagerurl:http:localhost:9093Bydefault,Lokiwillsendanonymous,butuniquelyidentifiableusageandconfigurationanalyticstoGrafanaLabs。Thesestatisticsaresenttohttps:stats。grafana。orgStatisticshelpusbetterunderstandhowLokiisused,andtheyshowusperformancelevelsformostusers。Thishelpsusprioritizefeaturesanddocumentation。Formoreinformationonwhatssent,lookathttps:github。comgrafanalokiblobmainpkgusagestatsstats。goRefertothebuildReportmethodtoseewhatgoesintoareport。Ifyouwouldliketodisablereporting,uncommentthefollowinglines:analytics:reportingenabled:false
promtail的config。yml配置文件:server:httplistenport:9080grpclistenport:0positions:filename:tmppositions。yamlclients:url:http:loki:3100lokiapiv1pushscrapeconfigs:jobname:systemstaticconfigs:targets:localhostlabels:job:varlogspath:varloglog
grafana的配置文件太长,就不复制了,自己拷贝出来即可。
拷贝完配置文件夹后,更改完后,直接启动即可。sudodockercomposeupd
浏览器输入ip端口即可访问,我这里配置为ip:3030端口访问。
2:grafana的反向代理nginx配置,域名访问
grafana配置完后,默认是IP:端口的方式访问,如果需要域名访问,则需要用到nginx方向代理。
官方文档配置参考:https:grafana。comtutorialsrungrafanabehindaproxy
需要更改的配置文件为grafana。ini,去掉下面三个前面的注释。domain:你的域名,我这里为grafana。ywbj。ccrooturl:访问链接,官方文档是后面加了grafana,默认是没有的,也可以不加,区别是,不加直接访问网址即可,加了就需要访问域名grafana才能访问,如:grafana。ywbj。ccgrafana才能访问。我这里配置就没有加。servefromsubpath:去掉注释,将false改成true即可。〔server〕domaingrafana。ywbj。ccrooturl(protocol)s:(domain)s:(httpport)sservefromsubpathtrue
grafana配置完成,下面就是配置nginx了。官方nginx配置文件:
注:如果上面rooturl后面加了grafana,则location改为locationgrafana。thisisrequiredtoproxyGrafanaLiveWebSocketconnections。maphttpupgradeconnectionupgrade{defaultupgrade;close;}server{listen80;servernamegrafana。initcapp。com;rootusrsharenginxhtml;indexindex。htmlindex。htm;location{proxysetheaderHosthttphost;proxypasshttp:localhost:3000;}ProxyGrafanaLiveWebSocketconnections。locationapilive{rewrite(。)1break;proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionconnectionupgrade;proxysetheaderHosthttphost;proxypasshttp:localhost:3000;}}
上面配置好了,然后启动,虽然可以访问,也可以添加资源,但是在实时查看日志流,会出现错误。
QueryerrorLivetailingwasstoppedduetofollowingerror:undefined,如下图:
原因是nginxwebsocket出错,即配置文件中locationapilive这个区域。
根据另一篇官方文档:https:grafana。comdocsgrafanalatestliveconfiguregrafanalive
修改nginx配置文件,最后nginx配置文件为:maphttpupgradeconnectionupgrade{defaultupgrade;close;}server{listen80;servernamegrafana。ywbj。cc;rootusrsharenginxhtml;indexindex。htmlindex。htm;errorlogvarlognginxnginx。localhost。error。logwarn;location{proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionconnectionupgrade;proxysetheaderHosthttphost;proxypasshttp:localhost:3030;默认为3000端口,我配置为3030,所以是3030。}
这样启动后,功能一切正常了。
三:客户端安装及配置
loki客户端,及需要收集日志的另一台机器,只需要安装promtail,也可以docker启动安装,也可以二进制安装。
由于本人收集日志有其他目录,如果用docker,需要配置挂载很多路径到docker,所以我在客户端直接用二进制启动即可,配置文件比较容易。
二进制官方下载地址:https:github。comgrafanalokireleases
找到自己合适的版本promtail,我这里是这个。
下载后,解压即可,得到一个可执行文件promtaillinuxamd64。rootweb:lokilsconfig。yamlpromtaillinuxamd64
还需要创建一个config。yaml文件,用于启动promtail。sudovimconfig。yaml
如果有多路径及目录,则添加多个jobname即可。
注意:clients中的url为你服务器的地址。server:httplistenport:9080grpclistenport:0positions:filename:tmppositions。yamlclients:url:http:192。168。152。100:3100lokiapiv1push服务器端loki的IP地址scrapeconfigs:jobname:webstaticconfigs:targets:localhostlabels:job:webvarlogspath:varloglogjobname:webstaticconfigs:targets:localhostlabels:job:nginxlogspath:homeubuntularadocklogsnginxlogjobname:webstaticconfigs:targets:localhostlabels:job:apilogspath:homeubuntuapistoragelogslog
上面配置文件,后续发现多个jobname也只生效最后一个jobname。然后修改配置多个labels测试,修改配置文件如下,后续添加启动后,查看也只有两个路径,看日志又都有收集,不知道是啥原因〔捂脸〕,有时间后续在查查。server:httplistenport:9080grpclistenport:0positions:filename:tmppositions。yamlclients:url:http:192。168。152。100:3100lokiapiv1push服务器端loki的IP地址scrapeconfigs:jobname:webstaticconfigs:targets:localhostlabels:job:webvarlogspath:varloglogtargets:localhostlabels:job:nginxlogspath:homeubuntularadocklogsnginxlogtargets:localhostlabels:job:apilogspath:homeubuntuapistoragelogslog
创建完配置文件,启动即可。。promtaillinuxamd64config。file。config。yaml
后台启动,如果需要查看日志,那输入日志。输入ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a到指定位置nohup。promtaillinuxamd64config。file。config。yamlvarlogpromtail。log21不需要查看ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a输入,直接为空。nohup。promtaillinuxamd64config。file。config。yamldevnull21
启动后,用ps可查看进程是否启动rootweb:lokipsefgreppromtailroot14664001450430710:41pts000:00:00。promtaillinuxamd64config。file。config。yamlroot14664151450430010:41pts000:00:00grepcolorautopromtail
四:grafana使用添加loki
在浏览器输入域名访问,默认账号密码为admin,admin
然后在datasources,点击添加adddatasource,选择loki即可。
然后添加服务器loki的地址即可,地址为IP:3100,loki的默认端口为3100。
添加完成,没有报错,说明添加成功。
在explore,在logbrowser中选择,即可查看刚才添加的日志,这里以job分类。
选择一个,showlogs即可查看,右上角为实时流查看日志。
这里loki、promtail、Grafana日志系统就配置完了。
腕表上的UFO陨石,手腕上的一块外星物质,也许就是一个UFO!数百万年,数百万英里,数百万个问题陨石是地球上最迷人的材料之一,因为它不是来自地球本身。每天都有数以百万计的流星体穿……
王哲林239布莱克尼335上海惊险淘汰江苏晋级8强直播吧4月14日讯CBA季后赛,上海和江苏系列赛第三场今天进行。上海外援布莱德索被禁赛4场,今天是第3场。上半场,江苏率先发力,内外开花连续拿分取得两位数优势,上海奋力反……
英国梦露因金发大胸被追捧,裸照被印在扑克牌上,却悲惨死去自古红颜多薄命,香消玉殒谁人怜。玛丽莲梦露的一生就是这句诗词最好的写照,曾经风靡全球的性感女神,却在36岁那年香消玉殒,实在是令人惋惜。其实不止梦露,还有许多美女命……
关于地球的形状是什么样的?在古埃及和巴比伦的智者看来,大地并不是一个平坦、无限的面,而是一个半球形,其尽头是万丈深渊,更像是一个巨大的球体。这个球体不需要被任何东西悬浮着,而是自行存在,其直径更是相当惊……
今天让我来告诉大家一下美容养颜吃燕窝对身体真的有好处吗?吃燕窝对身体到底有没有好处呢?下面让我来告诉你。第一:对男性,润肺养胃,益气补铁,增强体能,简直是经常吸烟,喝酒和熬夜男性的福音。第……
(国际图文互动)通讯中老铁路旱码头为多国发展注入新动力万象南站是中老铁路老挝段主要货运站,靠近老挝与泰国边境。因其独特的地理位置和物流转运配送区位优势,万象南站成为中老泰等国货物中转的旱码头。4月15日,就职于老挝玉溪铁大矿……
光影消博丨消博会最后一天,人气火爆新海南客户端、南海网、南国都市报4月15日消息(记者陈卫东)4月15日,第三届中国国际消费品博览会最后一天,各大场馆人气火爆。4月15日,第三届中国国际消费品博览会最后一……
茶香醉人!长沙宁乡沩山启动第五届茶旅文化节三湘都市报新湖南客户端4月15日讯(全媒体记者王智芳通讯员喻志国喻赛琼)今天,湖南沩山第五届茶旅文化节开幕式暨采茶比赛在沩山乡沩水源精彩开幕。本届节会将持续至5月31日,期间将……
2次获得全票FMVP有多难?历史上仅5人达成,现役1人,乔丹前言1969年,NBA官方设立了总决赛MVP(FMVP)这个奖项,以此来表彰NBA总决赛中表现最为出色的球员。前40年,这个奖项连个名字都没有,直到2009年,前NBA总……
战新产业乘风破浪!6张海报解码佛山焕新氢能之城抢占产业高点,成药之乡续写现代传奇;云上经济赋能产业升级,全链布局把握双碳风口在制造业大市佛山,随着越来越多优质项目落户,战略性新兴产业风生水起。从新能源汽车到新……
恭喜哈登!恭喜老里弗斯!76人官宣重要决定,恩比德抱怨想交易NBA季后赛第二轮半决赛已经接近尾声,勇士队42淘汰了灰熊队,挺进了分区决赛。太阳队和独行侠要打抢七大战,凯尔特人和雄鹿队也要打抢七大战。热火队42费城76人队。季后赛失利,费……
直观理解单源点最短路径算法Dijkstra算法Dijkstra算法是由荷兰计算机科学家EdsgerWybeDijkstra于1959年提出的单源点最短路径算法(SSSP:SingleSouceShortestPath)。是……