让我们使用Prometheus和mtail试着进行简单的日志收集吧
做的事情 (zuò de shì
尝试将 Prometheus 和 mtail 安装在同一实例上,并利用 mtail 统计 /var/log/messages 文件的行数结果,作为 Prometheus 的指标进行收集。
因为我第一次使用mtail,所以我在查找如何使用mtail的方法。
环境 ,译为 “环境”
-
- Instance: t2.micro
-
- OS: centos7
-
- Prometheus: 2.01
- mtail: 3.0.0
准备mtail
我会从一个空白的状态开始。
安装Go
首先,安装Go(1.7以上版本)。
设置/创建GOPATH
sudo su -
编辑.bash_profile文件
vi .bash_profile
#以下の二行を追加する
export GOPATH=$HOME/go
PATH=$PATH:$HOME/bin:$GOPATH/bin
加载.bash_profile
source ~/.bash_profile
GOPATH的内容是在src文件夹中创建。
mkdir -p $GOPATH/src
安装Go和Git。
cd $GOPATH/src
yum install go git
go get github.com/google/mtail
cd github.com/google/mtail
make
创建程序文件
创建一个用于存储mtail操作配置文件的程序文件。
首先,创建一个用于存储程序文件的目录。
可以在任何地方创建,参考官方说明,在/etc目录下创建。
mkdir /etc/mtail
可以编写复杂的描述,但本次我们将创建最简单的程序文件。
这是一个仅用于计算日志文件行数的程序文件。
要指定目标日志文件,请在启动mtail时进行设置。
这时,line_count将成为在Prometheus上显示的指标名称。
cd /etc/mtail
vim test.mtail
# simple line counter
counter line_count
/$/ {
line_count++
}
执行mtail
启动mtail,并读取已创建的程序文件。
使用-progs参数指定要读取的程序文件。
使用-logs参数指定要引用的日志文件。
值得一提的是,对程序文件的修改将动态地反映出来,无需重新启动mtail进程。
# /var/log/messages を対象に、行数カウントのプログラムファイルを指定してmtailを起動
mtail -progs /etc/mtail/test.mtail -logs /var/log/messages &
可以通过访问mtail的端点,在3903端口上获得mtail输出的度量指标数据。这些数据以json、prometheus和varz格式进行输出。
mtail的原始界面是这样的。
我访问了xx.xx.xx.xx:3903的界面。
mtail on :3903
Build: mtail version v3.0.0-rc5-48-g6e17f80 git revision 6e17f8086ba73fe59c17e2156417bffdc4015d13 go version go1.8.3
Metrics: json, prometheus, varz
Debug: debug/pprof, debug/vars
Program Loader
test.mtail
No compile errors
Total load errors ; successes: 1
Log Tailer
/var/log
/var/log/messages
以JSON格式
xx.xx.xx.xx:3903/json 的内容,请用中文进行改写。
[
{
"Name": "line_count",
"Program": "test.mtail",
"Kind": 1,
"Type": 0,
"LabelValues": [
{
"Value": {
"Value": 0,
"Time": 0
}
}
]
}
]
普罗米修斯格式
xx.xx.xx.xx:3903/metrics
xx.xx.xx.xx:3903/指标
# TYPE line_count counter
# line_count defined at test.mtail:2:9-18
line_count{prog="test.mtail"} 2
由於mtail順利啟動,現在我們準備prometheus。
普罗米修斯的准备
添加监视对象
为了让Prometheus引用mtail的端点,我们需要修改Prometheus的配置文件prometheus.yml。
在默认的prometheus.yml文件中,我们加入了localhost:3903的作业。
static_configs:
- targets: ['localhost:9090']
- targets: ['localhost:3903'] ←追加した行
修改設定檔後,啟動Prometheus並確認能否收集到指標。
cd ~
cd prometheus-2.1.0.linux-amd64
./prometheus &