1 Star 0 Fork 613

飘渺 / GoSkeleton

forked from 张奇峰 / GinSkeleton 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
deploy_linux.md 6.08 KB
一键复制 编辑 原始数据 按行查看 历史
张奇峰 提交于 2020-08-17 00:52 . 项目编码规划化进行中

运维方案之linux服务器篇

1.为了更好地监控线上项目运行状态,我们从互联网选取了比较优秀的项目状态可视化管理、监控方案,node_exporterprometheusgrafana 组合。
2.在本方案部署之前,您可以先迅速拖动鼠标到底部,查看最终效果图,增加阅读本文档的耐心,或者您也可以直接点击右侧,预览最终效果图:服务器监控效果图
3.核心软件简要介绍:

# 详细功能以及架构图请自行从百度了解,这里我们作为一个使用者了解一下核心功能。    
node_exporter: 在 9100 端口启动一个服务,自身抓取linux系统底层的运行状态数据,例如:cpu状态、内存占用、磁盘占用、网络传输状态等,等待其他上层服务软件抓取。
prometheus : 从 node_exporter 提供的服务端口 9100 主动获取数据,存储在自带的数据库 TSDB. 
grafana :  数据展示系统,从 prometheus 提供的接口获取数据,最终展示给用户。

基础软件的安装,以centos为例

1.docker 安装,如果已安装直接进入第2步。

# 移除老版本相关的残留信息
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

#安装一些依赖工具
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置镜像源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast

#安装docker免费版本(社区版)
yum -y install docker-ce

#启动docekr服务
systemctl  start docker

2.本次核心软件安装、配置


#拉取本次三个核心镜像
docker  pull  prom/node-exporter
docker  pull  prom/prometheus
docker  pull  grafana/grafana

# 获取本机ip,以备后用。
ifconfig ,例如我的服务器内网ip: 172.19.130.185 ,后续命令请自行替换为自己的实际ip 

#  启动 node-exporter 
#注意替换ip为自己的ip 
docker run --name  node_exporter  -d -p 172.19.130.185:9100:9100  -e TZ=Asia/Shanghai -v "/proc:/host/proc:ro"   -v "/sys:/host/sys:ro"   -v "/:/rootfs:ro"  --net="host" prom/node-exporter

# 将将配置文件放置在以下目录,备docker映射使用。没有目录自行创建
/opt/prometheus/prometheus.yml   #  #配置文件参考:https://wwa.lanzous.com/iCFFofevdgj
#核心配置部分
scrape_configs:
  #The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
      - targets: ['172.19.130.185:9090']
        labels:
          instance: "prometheus"
  - job_name: "阿里云服务器"   # 必须唯一,设置一下服务器总名称,请自行设置
    static_configs:
      - targets: ["172.19.130.185:9100"]
        labels:
          instance: "GoSkeleton"  #标记一下目标服务器的作用,请自行设置

#启动promethus
docker container  run  --name prometheus  -d -p    172.19.130.185:9090:9090  -e TZ=Asia/Shanghai  -v  /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

# grafana 的启动 
# 创建数据存储映射目录,主要用于存储grafana产生的数据,必须具备写权限
mkdir  -p /opt/grafana-storage  &&  chmod   777 -R  /opt/grafana-storage
#注意替换ip为自己的ip 
docker container  run  --name=grafana -d   -p 172.19.130.185:3000:3000   -e TZ=Asia/Shanghai -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

防火墙允许 9090 、 3000端口 、 9100端口,示例

A容器通过宿主机映射端口访问B容器,那么宿主机的映射端口就必须在防火墙打开,否则容器无法互通。

# 以添加 9090 端口为例,3000 端口重复以下代码接口
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --complete-reload
#查看、确认已经允许的端口列表
firewall-cmd --list-ports   

通过chrome浏览器访问 ip:3000 登录,一般都能成功登陆,默认账号密码:admin/admin

如果您登陆遇到了如下错误,那么请继续向下看:

登录报错

谷歌浏览器登录可能一次性会成功,搜狗浏览器登录是会报错的。 如果您的浏览器在登录时也报错,导致无法登陆成功,解决方案

#进入grafana容器
docker  exec  -it  grafana   /bin/bash
#进入脚本目录
 cd /usr/share/grafana/bin
#修改密码,然后通过新密码登录就不会在登录界面报错了
 ./grafana-cli admin reset-admin-password 这里设置你的新密码

登录成功以后首先配置数据源

step1:
添加数据源step1
step2:
添加数据源step2
step3: 点击 selected
添加数据源step2
step4: 点击 save&test 显示一切ok
添加数据源step2
添加数据源step2

导入监控服务器状态的模板

导入模板step2

step2: 这里的8919 是监控系统运行状态的模板id 相关模板地址: https://grafana.com/grafana/dashboards/8919
更多模板选择地址: https://grafana.com/grafana/dashboards
导入模板step2

最终效果:

最后查看step1
最后查看step2
最后查看step3
最后查看step3

Go
1
https://gitee.com/seedlings_2020/GinSkeleton.git
git@gitee.com:seedlings_2020/GinSkeleton.git
seedlings_2020
GinSkeleton
GoSkeleton
master

搜索帮助