cenots7安装Loki+promtail+grafana
loki
是主服务器,负责存储日志和处理查询
promtail
是代理,负责收集日志并将其发送给 loki
Grafana
用于 UI 展示
1、官方网站上下载对应的loki和promatail版本包
https://github.com/grafana/loki/releases/
这里使用1.6.0版本的,最新版本的可能有点问题
https://github.com/grafana/loki/releases/tag/v1.6.0
打开链接后往下翻,找到对应你操作系统的包
我的操作是cenots7.5
所以下载的是这两个
2、下载后上传至服务器上,先解压promatail压缩包
unzip promtail-linux-amd64.zip
先创建下文件夹
mkdir -p /home/loki/tmp
然后去下载官网的promtail-local-config.yaml配置文件
如果下载失败,可以在浏览器上打开,只需去掉下面的前面的wget,即可
wget https://github.com/grafana/loki/blob/v1.6.0/cmd/promtail/promtail-local-config.yaml
promtail-local-config.yaml配置文件默认不用修改,我修改了下路径,修改信息如下:
然后去启动promtail
注意这个启动方式,服务器关机后,服务会丢失
./promtail-linux-amd64 -config.file=promtail-local-config.yaml
(启动后新开一个窗口,因为是直接启动,并没有从后台启动,CTRL+C会停止服务)
也可以写成系统服务
vim /etc/systemd/system/promtail.service
[Unit]
Description=promtail
After=network.target
[Service]
ExecStart=/home/promtail-linux-amd64 \
-config.file=/home/promtail-local-config.yaml &>> /opt/logs/promtail-9080.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意promtail-linux-amd64和promtail-local-config.yaml修改成对应的实际存储路径
systemctl start promtail
systemctl status promtail
systemctl enable promtail
访问http://localhost:3100/api/prom/label
3、解压loki,并安装使用
unzip loki-linux-amd64
然后去下载官网的promtail-local-config.yaml配置文件
如果下载失败,可以在浏览器上打开,只需去掉下面的前面的wget,即可
wget https://github.com/grafana/loki/blob/v1.6.0/cmd/loki/loki-local-config.yaml
看下loki-local-config.yaml配置文件默认不用修改,我修改了下路径,修改信息如下:
然后去启动loki-local-config.yaml
注意这个启动方式,服务器关机后,服务会丢失
./loki-linux-amd64 -config.file=loki-local-config.yaml
(启动后新开一个窗口,因为是直接启动,并没有从后台启动,CTRL+C会停止服务)
也可以写成系统服务
vim /etc/systemd/system/loki.service
[Unit]
Description=loki
After=network.target
[Service]
ExecStart=/home/loki-linux-amd64 -config.file=/home/loki-local-config.yaml &>> /opt/logs/loki-3100.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意loki-linux-amd64和loki-local-config.yaml修改成对应的实际存储路径
systemctl start loki
systemctl status loki
systemctl enable loki
访问下http://localhost:3100/metrics
4、通过docker安装granfana
(安装docker,可以参考这篇博客https://www.cnblogs.com/likecoke/p/13630764.html)
拉取granfana10.0.2版本
docker pull grafana/grafana:10.0.2
启动grafana容器
docker run -d --name=grafana -p 3000:3000 grafana/grafana:10.0.2
5、通过granfana去添加上Loki
访问服务器IP:3000
默认用户和密码都为admin
首次登录会修改密码
登录后,依次点击Home adminostration
然后点击Data sources 去添加新的数据源
往下翻,找到Loki,点击
然后填写对应的信息
写入名字,Loki的访问地址
往下翻,找到save&test
出现这个信息,证明添加成功
然后去测试下
点击Explore
依次选择
filename
/var/log/maillog
关键词输入
a
然后回车或者点击右上角的 Run query
往下翻,可以看到过滤/var/log/maillog所有带有a字符串的日志
以下为扩展,因为有公司的需求是监控多个日志文件,例如还需监控nginx的error和access日志,那么怎么实现呢?
只需在promtail-local-config.yaml文件里添加以下配置即可
vim promtail-local-config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /home/loki/tmp/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: system-logs
static_configs:
- targets:
- localhost
labels:
job: var-log
__path__: /var/log/*.log
- job_name: nginx-logs
static_configs:
- targets:
- localhost
labels:
job: nginx-access
__path__: /usr/local/nginx/logs/access.log
- targets:
- localhost
labels:
job: nginx-error
__path__: /usr/local/nginx/logs/error.log
然后我们登录到granfana监控页面,和上面的步骤一样