## 安裝
---
### 使用預編譯二進制文件
我們為Prometheus大多數的官方組件,提供了預編譯二進制文件。可用版本[下載](https://prometheus.io/download)列表
### 源碼安裝
如果要從源碼安裝Prometheus的官方組件,可以查看各個項目源碼目錄下的`Makefile`
> 注意點:在web上的文檔指向最新的穩定版(不包括預發布版)。[下一個版本](https://github.com/prometheus/docs/compare/next-release)指向master分支還沒有發布的版本
### Docker安裝
所有Prometheus服務的Docker鏡像在官方組織[prom](https://hub.docker.com/u/prom/)下,都是可用的
在Docker上運行Prometheus服務,只需要簡單地執行`docker run -p 9090:9090 prom/prometheus`命令行即可。這條命令會啟動Prometheus服務,使用的是默認配置文件,并對外界暴露9090端口
Prometheus鏡像使用docker中的volumn卷存儲實際度量指標。在生產環境上使用[容器卷](https://docs.docker.com/engine/userguide/containers/dockervolumes/#creating-and-mounting-a-data-volume-container)模式, 可以在Prometheus更新和升級時輕松管理Prometheus數據, 這種使用docker volumn卷方式存儲數據,是被docker官方強烈推薦的.
通過幾個選項,可以達到使用自己的配置的目的。下面有兩個例子。
#### 卷&綁定掛載
在運行Prometheus服務的主機上,做一個本地到docker容器的配置文件關系映射。
> docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
或者為這個配置文件使用一個獨立的volumn
> docker run -p 9090:9090 -v /prometheus-data \
prom/prometheus --config.file=/prometheus-data/prometheus.yml
#### 自定義鏡像
為了避免在主機上與docker映射配置文件,我們可以直接將配置文件拷貝到docker鏡像中。如果Prometheus配置是靜態的,并且在所有服務器上的配置相同,這種把配置文件直接拷貝到鏡像中的方式是非常好的。
例如:利用Dockerfile創建一個Prometheus配置目錄, Dockerfile應該這樣寫:
```
FROM prom/prometheus
ADD prometheus.yml /etc/prometheus/
```
然后編譯和運行它:
```
docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus
```
一個更高級的選項是可以通過一些工具動態地渲染配置,甚至后臺定期地更新配置
### 使用配置管理系統
如果你喜歡使用配置管理系統,你可能對下面地第三方庫感興趣:
Ansible:
- [griggheo/ansible-prometheus](https://github.com/griggheo/ansible-prometheus)
- [William-Yeh/ansible-prometheus](https://github.com/William-Yeh/ansible-prometheus)
Chef:
- [rayrod2030/chef-prometheus](https://github.com/rayrod2030/chef-prometheus)
SaltStack:
- [bechtoldt/saltstack-prometheus-formula](https://github.com/bechtoldt/saltstack-prometheus-formula)