最近在做服务器监控以及服务监控,记录一下,下边这是最后的效果图(这里采用的是telegraf+grafana+influxdb),当然zabbix也可以做服务器监控貌似功能更强大

grafana添加alert_数据

(一)安装influxDB数据库

InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;

可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;

由于最近在学习docker,这里采用docker安装练练手,也能给服务器省去不少资源,毕竟个人的服务器配置不高

搜索influxdb镜像 :docker search influxdb

拉取镜像:docker pull influxdb

查看镜像:docker images

grafana添加alert_grafana添加alert_02

这里先直接启动: docker run -d --name influxService -p 8086:8086 influxdb

 

docker ps 查看运行中镜像

复制influxdb的 /var/lib/influxdb 文件夹到宿主机(做文件挂载使用,把数据存储到宿主机上)

docker cp e95d:/var/lib/influxdb /opt/dockerCompose/influxdb/

复制/etc/influxdb 复制导本地(挂载influxdb的配置文件)

docker cp e95d:/etc/influxdb /opt/dockerCompose/conf/

复制完之后删除之前的容器

docker rm  e95d

用docker-compose的方式运行

在该文件夹下新建docker-compose.yml 

grafana添加alert_数据_03

 

version: "3"
services:
    influxdb:
      container_name: influxdb
      image: influxdb
      ports:
       - "8086:8086"
      volumes:
         - ./influxdb:/var/lib/influxdb
         - ./conf:/etc/influxdb

 

docker-compose up -d 启动容器 (不指定文件的话,默认就是当前文件夹下的docker-compose.yml)

docker-compose down 停止容器

grafana添加alert_grafana添加alert_04

docker ps 查看运行容器

grafana添加alert_spring_05

docker logs influxdb -f 查看容器日志

grafana添加alert_数据_06

然后进入docker 容器中

docker exec -it influxdb bash

cd /usr/bin

创建用户并且赋权限

./influx

# 查看所有用户
> show users
user admin
---- -----
> 
# 创建一个root用户,设置密码为newpwd,主要不要使用双引号" 括起来,不然会报错
> create user "root" with password 'newpwd'
> 
# 再次查看用户信息,发现admin为false,说明还要设置一下权限。
> show users
user admin
---- -----
root false
> 
# 删除root用户
> drop user root
> 
> show users
user admin
---- -----
> 
# 重新设置root用户,并设置带上所有权限
> create user "root" with password 'newpwd' with all privileges
> 
# 发现admin权限为true了,那么admin的用户就创建好了。
> show users
user admin
---- -----
root true
>

exit 退出

然后设置,因为做了文件挂载,所以直接在宿主机的配置文件进行修改

vim     /opt/dockerCompose/conf/influxdb.conf

把 [http] 下的 auth-enabled 选项设置为 true

grafana添加alert_docker_07

然后就可以登录了。我这里采用 InfluxDBStudio客户端连接,下载地址

grafana添加alert_docker_08

我们新建一个telegraf 的库用来保存主机监控数据

grafana添加alert_spring_09

(二)主机安装telegraf插件用于获取主机信息

下载:wget https://dl.influxdata.com/telegraf/releases/telegraf-1.14.4-1.x86_64.rpm

yum localinstall telegraf-1.14.4-1.x86_64.rpm

cd /etc/telegraf

编辑配置文件

搜索:outputs.influxdb。配置influxdb数据库,用户名密码等

grafana添加alert_spring_10

配置docker

搜索 inputs.docker

 

endpoint = "unix:///var/run/docker.sock"

   timeout = "5s"

   interval= "1m"

   perdevice = true

   total = false

 

grafana添加alert_grafana添加alert_11

 

保存后退出

给用户赋权限

sudo usermod -aG docker telegraf

systemctl start telegraf 运行

等一会就会看到telegraf 库里多了很多数据

grafana添加alert_spring_12

 

 

(三)docker 安装grafana,做数据展示

pull镜像

docker pull grafana/grafana

运行镜像,复制出需要挂载的文件

docker run -d -p 3000:3000 --name my_grafana grafana/grafana

docker cp 886b:/var/lib/grafana /opt/dockerCompose/grafana

复制完中之后停止容器,并删除

新建conf文件夹,下载grafana.ini文件下载地址,新建docker-compose.yml

grafana添加alert_grafana添加alert_13

yml文件

version: "3"
services:
    grafana:
      container_name: grafana
      image: grafana/grafana
      ports:
       - "5086:3000"
      volumes:
         - ./grafana:/var/lib/grafana
         - ./conf/grafana.ini:/etc/grafana/grafana.ini

保存,docker-compose up -d启动

浏览器访问,第一次默认密码 都是 admin,然后修改密码

grafana添加alert_docker_14

登陆后配置数据源

grafana添加alert_spring_15

 

 

grafana添加alert_grafana添加alert_16

grafana添加alert_spring_17

最后保存就行了

然后新建一个监控台,编辑数据展示

grafana添加alert_grafana添加alert_18

grafana添加alert_数据_19

grafana添加alert_数据_20

grafana添加alert_grafana添加alert_21

grafana 参考https://www.jianshu.com/p/7e7e0d06709b

(4)采集springboot数据到influxdb 

influxdb 新建数据库

grafana添加alert_docker_22

pom配置:

<!--引入springboot actuator监控 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<!--引入influxdb -->
		<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-influx</artifactId>
		</dependency>

 

yml配置

#springboot Actuator监控
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    export:
      influx:
        enabled: true
        db: springboot_monitor
        uri: http://xxx:5086
        password: xxx
        user-name: xxx

项目启动后:

http://localhost:8096/api/actuator

grafana添加alert_docker_23

http://localhost:8096/api/actuator/metrics

grafana添加alert_spring_24

可以看到influxdb数据库也多了很多数据

grafana添加alert_docker_25

grafana 配置数据源

grafana添加alert_数据_26

新建仪表板,编辑最后效果图

grafana添加alert_数据_27

后边会把监控报警更新

欢迎大家交流。。。