尝试在CentOS7.3和Docker上安装Prometheus

环境

我正在云服务器上运行虚拟机(您无需意识到这一点)
Docker宿主机的操作系统:CentOS 7.3
安装Prometheus的容器:centos:latest(CentOS 7.3)
Prometheus的安装方式:解压缩包(不使用Docker镜像)
为了安装firewalld,我屏蔽了它并单独安装了iptables-services。

前提

从在虚拟机上安装了Docker的状态开始。
没有问题的地方是一系列命令。
假设以root执行。
Docker主机上的命令为#,容器上的命令为##。

1.创建容器

我将创建用于Prometheus的容器。

<Dockerホスト>
# docker pull centos
# docker run -d -t --privileged --name prometheus01 centos:latest /sbin/init
# docker exec -it prometheus01 /bin/bash

<コンテナ>
## yum -y update
## yum -y install wget git gcc make net-tools
## echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock    ★ 最低限は設定しましょう。
## rm -f /etc/localtime
## ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

2.安装GO语言

请在此处下载最新版本的Source的URL。(2017/2/10 信息 go1.7.5)
Go编程语言下载

<コンテナ>
## cd /usr/local      ★ /usr/local/go に展開させたいので移動場所はここです。
## wget -P /usr/local/src https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz ★ 大文字Pです。
## tar zxfv src/go1.7.5.linux-amd64.tar.gz    ★ てーーんかい!
## mkdir /usr/local/go/work
## echo "export GOROOT=/usr/local/go" >> ~/.bashrc      
## echo "export GOPATH=/usr/local/go/work" >> ~/.bashrc
★ GOROOTとGOPATHを分けることで、この警告をなくすことができます。
 `warning: GOPATH set to GOROOT (/usr/local/go) has no effect`

## echo "PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
## source ~/.bashrc   ★ 早速読み込み
## go version         ★ バージョン確認

3. 安装Prometheus

Prometheus和GO语言一样,将最新版本的源代码URL复制到GitHub/Prometheus。

<コンテナ>
## wget -P /usr/local/src https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz
## tar zxfv src/prometheus-1.5.2.linux-amd64.tar.gz
## ln -fs /usr/local/prometheus-1.5.2.linux-amd64/prometheus /usr/bin/prometheus
## ln -fs /usr/local/prometheus-1.5.2.linux-amd64/promtool /usr/bin/promtool

Prometheus 创建数据区域。

我們接下來將進行監視設定,但在進行之前,我們希望保留監視設定的資訊和收集的數據(不想再創建一次)。
所以,讓我們將數據放在 Docker 主機上吧。

★ 一旦現時点のコンテナイメージを作ります。
<コンテナ>
## exit

<Dockerホスト>  
# docker commit prometheus01 prometheus_img   ★ prometheus という名前でコミット
# docker images                               ★ 確認・・・まず一安心
# docker stop prometheus01                    ★ 一旦、今のコンテナは停止
# docker rm prometheus01                      ★ ポイ!
# mkdir -p /data/prometheus/etc               ★ ここに格納することにします


★ コンテナ上では、/prometheus にマウントさせます
★ 一緒にPrometheus で利用する9090ポートを繋げます
★ 甦れ!!Prometheus!!
# docker run -d -t --privileged --name prometheus01 -v /data/prometheus:/prometheus -p 9090:9090 prometheus_img /sbin/init  
# docker exec -it prometheus01 /bin/bash      ★ 突撃!

<コンテナ>
★ /etc/prometheusのデータは、Dockerホスト上に保存します
## ln -fs /prometheus/etc /etc/prometheus    

★ Consoleライブラリをリンク
## ln -fs /usr/local/prometheus-1.5.2.linux-amd64/console_libraries /etc/prometheus/console_libraries

5.配置Prometheus的设置文件

登录到容器后,因为/prometheus与Docker主机连接上了,接下来我们需要配置文件。

<コンテナ>
★ 設定ファイルの配置
## cd /etc/prometheus
## wget https://raw.githubusercontent.com/prometheus/prometheus/master/documentation/examples/prometheus.yml
## vi /etc/default/prometheus       ★ OPTIONSファイルを新規作成
OPTIONS="-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus -web.console.libraries=/etc/prometheus/console_libraries -web.console.templates=/etc/prometheus/consoles"

★ 必要なDirは作成します
## mkdir /etc/prometheus/consoles

★ storage.local.path もリンクを張りましょう
## mkdir /prometheus/var
## ln -fs /prometheus/var /var/lib/prometheus

★ 設定ファイルの構文チェック
## promtool check-config /etc/prometheus/prometheus.yml

6. 自动启动和自动停止设置

为避免每次启动容器都手动启动Prometheus,我会设置自动启动选项。

<コンテナ>
## vi /usr/lib/systemd/system/prometheus.service      ★ 新規作成
[Unit]
Description=Prometheus Service
After=syslog.target prometheus.service

[Service]
Type=simple
EnvironmentFile=-/etc/default/prometheus
ExecStart=/usr/bin/prometheus $OPTIONS
PrivateTmp=true

[Install]
WantedBy=multi-user.target

## systemctl enable prometheus           ★ 登録
## systemctl start prometheus            ★ 開始

7.进行钻孔操作

在确认之前,让我们先开个洞。
在云防火墙上开个洞。
在Docker主机的iptables上开个洞。

<コンテナ>
## exit

<Dockerホスト>
# docker commit prometheus01 prometheus_img
# docker stop prometheus01
# iptables -A INPUT -p tcp -m tcp --dport 9090 -j ACCEPT
# service iptables save
# systemctl restart iptables
# cat /etc/sysconfig/iptables  ★ 確認
# systemctl restart docker     ★ Docker部分が消えたときには、dockerを再起動します。
# cat /etc/sysconfig/iptables  ★ 再度確認

8. 最终启动

<Dockerホスト>
# docker rm prometheus01
# docker run -d -t --privileged --name prometheus01 -v /data/prometheus:/prometheus -p 9090:9090 prometheus /sbin/init

9. 从浏览器进行确认

打开浏览器,确认在”http://Docker主机的IP地址:9090″上是否显示Prometheus页面。

后记

使用Docker进行设计时,需要考虑将哪些位置挂载上去。
接下来,我们将验证使用Prometheus进行自动扩展监视和容器监视的情况。

请你在参考的基础上进行改写,只需要提供一种选项。

参考网站:蜗牛小茶先生的博客页面。

广告
将在 10 秒后关闭
bannerAds