打包springcloud項目的時候需要到父工程下的lifecycle(lifecycle是maven中一個十分完善的生命週期模型,所以使用Lifecycle中的install項目就會自動去maven倉庫下載需要的包)
下完成clean、compile、deploy的操作纔可
uname -a 查看內核版本
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-17.12.1.ce
systemctl start docker
systemctl enable docker
docker version
2.安裝wget命令 yum -y install wget
3.docker安裝prometheus和grafana
a.下載鏡像包
docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana
b.啓動node exporter(這個是監聽機器的服務)
docker run -d -p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
prom/node-exporter
如果在prometheus中發現此服務不能連接,請關閉防火牆再試
c.查看端口是否已經啓動
d.新建目錄prometheus,編輯配置文件prometheus.yml (主要是配置請求url路徑和數據採集地址)
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
e.啓動prometheus
docker run -d --restart="always" \
-p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
個人打包鏡像執行命令
docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prometheus
訪問prometheus服務
http://192.168.91.132:9090/targets
f.啓動grafana
新建空文件夾grafana-storage,用來存儲數據
mkdir /opt/grafana-storage
設置權限
chmod 777 -R /opt/grafana-storage
因爲grafana用戶會在這個目錄寫入文件,直接設置777,比較簡單粗暴!
啓動grafana
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /opt/grafana-storage:/var/lib/grafana \
-v /opt/grafana-public:/usr/share/grafana/public \
-v /opt/grafana-conf:/usr/share/grafana/conf \
grafana/grafana
-v的命令是將grafana的conf文件和前端public文件持久化到外部linux上
測試自己打包的docker命令
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /opt/grafana-storage:/var/lib/grafana \
-v /opt/grafana-public:/usr/share/grafana/public \
-v /opt/grafana-conf:/usr/share/grafana/conf \
grafana
docker-compose方式 部署其它監控服務yml配置(prometheus+grafana,與上面的docker run是一樣的效果)
version: '2'
services:
prometheus:
image: prometheus
container_name: prometheus
hostname: prometheus
restart: always
volumes:
- /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- monitor
grafana:
image: grafana
container_name: grafana
hostname: grafana
restart: always
ports:
- "3000:3000"
volumes:
- /opt/grafana-storage:/var/lib/grafana
- /opt/grafana-public:/usr/share/grafana/public
- /opt/grafana-conf:/usr/share/grafana/conf
networks:
- monitor
networks:
monitor:
driver: bridge
4.漢化grafana
下載漢化代碼,網上一堆
執行腳本
npm install --global --production windows-build-tools
npm build 不行的話用npm run-script build
如果需要在自己windows電腦上運行執行
npm install -g yarn ; yarn install ; yarn start
常見異常:
進入到linux服務器
查看grafana docker服務名稱
docker ps 查看正在運行中的容器 docker ps -a 查看所有的
如果發現容器沒有起來則通過docker ps -a查詢出所有的如下:
然後再通過docker start grafana啓動,停止則是docker stop grafana,移除容器則是docker rm grafana
進入docker容器
以管理員權限進入 的命令格式 docker exec -ti -u root 容器id(以上截圖裏的container id) /bin/bash 或者/bin/sh
如果要退出輸入exit
進入到/usr/share/grafana會看到如下文件
接下來把public備份成public2然後從外部拷貝public進來
mv public public2
拷貝外部文件 docker cp /opt/zch/public grafana:/usr/share/grafana
然後重啓docker服務
退出到linux中exit
docker stop grafana
docker start grafana
5.郵件發送和報警功能設置需要先配置smtp郵件服務器
進入到docker修改grafana的default.ini的配置,如下【在此採用的qq郵箱作爲服務器】:
[smtp]
enabled = true
host = 必填,qq郵箱裏的host
user = 必填
password = qq郵箱裏面的key
cert_file =
key_file =
skip_verify = false
from_address = 必填
from_name = 必填
ehlo_identity =
password【這個是qq郵箱中的smtp的授權碼】
然後就是儀表板的界面配置了:
b.到dashboard儀表板中條件規則然後配置alert發送目的地以及信息即可,當數據滿足此條件就會發送郵件到以上配置的通知頻道中的地址了,
同時在alert rules也會產生一條報警
linux上配置郵件服務器
遠程拉取鏡像
docker pull beginor/gitlab-ce:11.0.1-ce.0
創建配置或數據的映射目錄
mkdir -p /opt/gitlab/etc
mkdir -p /opt/gitlab/log
mkdir -p /opt/gitlab/data
運行容器
docker run \
--detach \
--publish 8443:443 \
--publish 8090:8082 \
--name gitlab \
--restart unless-stopped \
-v /opt/gitlab/etc:/etc/gitlab \
-v /opt/gitlab/log:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
配置gitlab主機名
vi /opt/gitlab/etc/gitlab.rb
將external_url 後面的值設爲'http://ip'
修改ip的配置 vi /opt/gitlab/data/gitlab-rails/etc/gitlab.yml
如果端口被佔用vi /opt/gitlab/etc/gitlab.rb文件 將裏面的unicorn的nginx地址配置端口進行修改
進入鏡像docker exec -ti gitlab /bin/bash
配置完後嘗試訪問
http://ip:8090
6.springcloud引入prometheus的依賴和相關配置
啓動springcloud服務
7.修改linux系統中的prometheus.yml的配置地址爲所起springcloud服務地址
8.grafana頁面上進行相關的操作,設置數據源
配置prometheus地址
由於docker有映射端口問題所以直接選擇Browser吧
導入儀表板
然後上傳json文件即可(注意json中的datasource必須與你新建的一樣,否則需要到儀表板上全部重新配置)
對於grafana具體細節的操作還請自行百度
端口有9100 9090 3000