Prometheus安装(采用 influxdb)
一、安装Prometheus
# 获取软件
$ wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-amd64.tar.gz
$ groupadd prometheus
$ useradd -g prometheus -m -d /usr/local/prometheus -s /sbin/nologin prometheus
$ tar zxf prometheus-2.24.1.linux-amd64.tar.gz
$ mv prometheus-2.24.1.linux-amd64/* /usr/local/prometheus
$ sed -i 's/localhost/10.4.7.100/g' /usr/local/prometheus/prometheus.yml
# 创建systemd服务
$ cat <<EOF > /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
After=network.target
[Service]
Type=simple
User=prometheus
WorkingDirectory=/usr/local/prometheus # 如果添加这一行,可以不指定配置文件(--config.file=/usr/local/prometheus/prometheus.yml)
ExecStart=/usr/local/prometheus/prometheus --web.enable-lifecycle
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# --web.enable-lifecycle: 支持通过http请求重载配置
# 启动服务
$ systemctl daemon-reload
$ systemctl start prometheus
$ systemctl status prometheus && systemctl enable prometheus
# 确认端口已经被监听
$ ss -lnput | grep 9090
tcp LISTEN 0 1024 :::9090 :::* users:(("prometheus",pid=8257,fd=7))
二、后端存储配置
默认情况下prometheus会将采集的数据防止到本机的data目录的, 存储数据的大小受限和扩展不便,这是使用influxdb作为后端的数据库来存储数据。
三、 influxdb安装配置
influxdb的官方文档地址为: https://docs.influxdata.com/influxdb/v1.7/introduction/downloading/ 根据不同系统进行下载,这里使用官方提供的rpm进行安装。
# 获取软件包
$ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm
# 本地安装
$ yum localinstall influxdb-1.7.8.x86_64.rpm
# 备份默认的默认的配置文件,这里可以对influxdb的数据存放位置做些设置
$ cp /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.default
# 启动
$ systemctl start influxdb && systemctl enable influxdb
# 查看状态
$ systemctl status influxdb
# 查看端口是否监听
$ ss -lnput | grep 8086
tcp LISTEN 0 1024 :::8086 :::* users:(("influxd",pid=9405,fd=5))
创建一个Prometheus数据库
$ influx # 登录influxdb数据库
> create database prometheus; # 创建prometheus数据库
> show databases; # 查看数据库
name: databases
name
----
_internal
prometheus
> exit # 退出
四、 配置prometheus集成infludb
官方的帮助文档在这里: https://docs.influxdata.com/influxdb/v1.7/supported_protocols/prometheus/
$ vim /usr/local/prometheus/prometheus.yml
# 添加如下几行
remote_write:
- url: "http://10.4.7.100:8086/api/v1/prom/write?db=prometheus"
remote_read:
- url: "http://10.4.7.100:8086/api/v1/prom/read?db=prometheus"
$ systemctl restart prometheus
$ systemctl status prometheus
注意: 如果influxdb配置有密码, 请参考上面的官方文档地址进行配置。
五、测试数据是否存储到influxdb中
$ influx
> show databases;
name: databases
name
----
_internal
prometheus
> use prometheus
Using database prometheus
> show measures;
ERR: error parsing query: found measures, expected CONTINUOUS, DATABASES, DIAGNOSTICS, FIELD, GRANTS, MEASUREMENT, MEASUREMENTS, QUERIES, RETENTION, SERIES, SHARD, SHARDS, STATS, SUBSCRIPTIONS, TAG, USERS at line 1, char 6
> show MEASUREMENTS;
name: measurements
name
----
go_gc_duration_seconds
go_gc_duration_seconds_count
go_gc_duration_seconds_sum
go_goroutines
go_info
go_memstats_alloc_bytes
# 后面还是有很多,这里不粘贴了。
# 做个简单查询
> select * from prometheus_http_requests_total limit 10 ;
name: prometheus_http_requests_total
time __name__ code handler instance job value
---- -------- ---- ------- -------- --- -----
1568975686217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 1
1568975701216000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 2
1568975716218000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 3
1568975731217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 4
1568975746216000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 5
1568975761217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 6
1568975776217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 7
1568975791217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 8
1568975806217000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 9
1568975821216000000 prometheus_http_requests_total 200 /metrics localhost:9090 prometheus 10
*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************