Docker環境下Prometheus+Grafana+blackbox_exporter監控系統服務
首先說下背景,由於生產系統不那麼穩定,有時需要用戶反饋來作爲發現生產服務異常,作爲尚有熱血的IT從業人員,自然不看受辱,決定探索一下如果監控系統。
先上效果
關於選型:Zabbix,Prometheus,看了幾篇文章,關於比較流行的開源監控系統主要集中在Zabbix和Prometheus,其中又以Prometheus呼聲最高,對於一個對這方面經驗不是很多的小小白來講,呼聲高意味着能夠從更多的渠道獲取幫助,微博,星球,論壇,社區等,所以我選擇了Prometheus。
以下將分爲幾個步驟來講解我是如何搭建的
- blackbox_exporter的安裝
- Prometheus的獲取和安裝
- Prometheus的配置
- Grafana的獲取安裝
這裏給大家說個技巧,也是我在部署中深切體會到的,在查看教程的時候先把教程一下子看完,把需要開放的端口統計出來,一次性進行開放(或一次走流程審批),因爲我用的是雲服務EOS所以需要到管理端配置安全策略,所以每配置一次安全組就需要進行一次重啓,如果正在運行的服務沒有做enable,就需要自己手動啓動,比較麻煩。
一 blackbox_exporter的安裝
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.14.0/blackbox_exporter-0.14.0.linux-amd64.tar.gz
tar -xvf blackbox_exporter-0.14.0.linux-amd64.tar.gz
mv blackbox_exporter-0.14.0.linux-amd64 /opt/blackbox/blackbox_exporter
查看安裝是否成功,慣例--version
創建systemd服務,這裏多虧一個博友的博客https://blog.csdn.net/weixin_34273479/article/details/92680400,
vi /lib/systemd/system/blackbox_exporter.service
[Unit]
Description=blackbox_exporter
[Service]
User=root
Type=simple
ExecStart=/opt/blackbox_exporter/blackbox_exporter/blackbox_exporter --config.file=/opt/blackbox_exporter/blackbox_exporter/blackbox.yml
Restart=on-failure
可以查看到該服務啓動成功,如果啓動失敗,需要查看下service中是否有語病之類的。
二 Prometheus的安裝
Prometheus是什麼這不加贅餘,想了解的可以通過度娘瞭解。
這裏我已經安裝了docker,沒有安裝的可以進行安裝或者用其他安裝方式
docker pull prom/prometheus
mkdir /opt/prometheus
cd /opt/prometheus
cat >prometheus.yml
prometheus.yml主要是用來配置prometheus從數據源怎麼提取內容,我們可以先從網上找一個配置進行佔位
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
粘貼之後,ctrl+c,再次cat prometheus.yml已經能看到剛纔粘貼到剛纔創建的配置文件中。
啓動prometheus,對的有了docker就是這麼簡單
docker run -d \
-p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
因爲上文中我們配置的job是localhost:9090/,那我們就訪問下這個地址吧localhost:9090/graph,這個時候如果訪問localhost:9090/targets可能會有驚喜,這裏的targets是否有點兒熟悉呢,不錯,正是prometheus.yml中配置的targets.
有了上文的的docker安裝prometheus,是不是覺得grafana安裝也會比較簡單呢?
是的,確實如此。
docker pull prom/grafana
mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage
docker運行grafana
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /opt/grafana-storage:/var/lib/grafana \
grafana/grafana
上面設置的端口是3000,訪問下localhost之後,就能看到grafana的登錄界面,默認用戶名密碼admin/admin。