docker安装、部署、汉化监控服务grafana+prometheus
在docker上部署springcloud项目 https://www.jianshu.com/p/3f385c0a4af3
grafana操作最全文档 http://www.doc88.com/p-4039177469210.html
1.在linux上安装docker https://www.cnblogs.com/qgc1995/archive/2018/08/29/9553572.html
打包springcloud项目的时候需要到父工程下的lifecycle(lifecycle是maven中一个十分完善的生命周期模型,所以使用Lifecycle中的install项目就会自动去maven仓库下载需要的包)
下完成clean、compile、deploy的操作才可
uname -a 查看内核版本yum updateyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum list docker-ce --showduplicates | sort -ryum install docker-ce-17.12.1.cesystemctl start dockersystemctl enable dockerdocker 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-exporterdocker pull prom/prometheusdocker 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/prometheuscd /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: prometheuscontainer_name: prometheushostname: prometheusrestart: alwaysvolumes:- /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.ymlports:- "9090:9090"networks:- monitorgrafana:image: grafanacontainer_name: grafanahostname: grafanarestart: alwaysports:- "3000:3000"volumes:- /opt/grafana-storage:/var/lib/grafana- /opt/grafana-public:/usr/share/grafana/public- /opt/grafana-conf:/usr/share/grafana/confnetworks:- monitornetworks:monitor:driver: bridge
4.汉化grafana
下载汉化代码,网上一堆
执行脚本
npm install --global --production windows-build-toolsnpm 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中exitdocker stop grafanadocker start grafana
然后访问 http://192.168.19.130:3000/?orgId=1就发现已经汉化好了
5.邮件发送和报警功能设置需要先配置smtp邮件服务器
进入到docker修改grafana的default.ini的配置,如下【在此采用的qq邮箱作为服务器】:
[smtp]enabled = truehost = 必填,qq邮箱里的hostuser = 必填password = qq邮箱里面的keycert_file =key_file =skip_verify = falsefrom_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/etcmkdir -p /opt/gitlab/logmkdir -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具体细节的操作还请自行百度
/var/lib/grafana/plugins
端口有9100 9090 3000