docker安装、部署、汉化监控服务grafana+prometheus

在docker上部署springcloud项目 https://www.jianshu.com/p/3f385c0a4af3
grafana操作最全文档  http://www.doc88.com/p-4039177469210.html
 
打包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
c.centos安装maven3.0   https://www.cnblogs.com/jikexianfeng/p/8454644.html  注意下载地址需要到官网上找: http://maven.apache.org/download.cgi
 
 
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
 
查看服务是否正常启动curl http://localhost:9100/metrics
如果在prometheus中发现此服务不能连接,请关闭防火墙再试
iptables -F
c.查看端口是否已经启动
netstat -anpt
 
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
 
常见异常:
  • 如果npm run-script build的时候报错Warning: Task "exec:webpack" failed. Use --force to continue.可以尝试用npm start run 同样会打包好的
进入到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
 
 
然后访问 http://192.168.19.130:3000/?orgId=1就发现已经汉化好了
 
 
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 的授权码】
然后就是仪表板的界面配置了:
a. http://localhost:3333/alerting/notifications 页面配置通知频道然后配置邮件地址即可,就会产生一条通知频道的配置
b. dashboard 仪表板中条件规则然后配置 alert 发送目的地以及信息即可,当数据满足此条件就会发送邮件到以上配置的通知频道中的地址了,
同时在 alert rules 也会产生一条报警
 

l inux上配置邮件服务器
 
 
远程拉取镜像
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的依赖和相关配置
项目搭建参考文档【 http://www.javashuo.com/article/p-sqgqoiuq-nd.html
启动springcloud服务
 
7.修改linux系统中的prometheus.yml的配置地址为所起springcloud服务地址
 
8.grafana页面上进行相关的操作,设置数据源
 
配置prometheus地址
 
由于docker有映射端口问题所以直接选择Browser吧
 
导入仪表板
 
然后上传json文件即可(注意json中的 datasource必须与你新建的一样,否则需要到仪表板上全部重新配置
 
对于grafana具体细节的操作还请自行百度
 
 
/var/lib/grafana/plugins
端口有9100 9090 3000