最近在做服务器监控以及服务监控,记录一下,下边这是最后的效果图(这里采用的是telegraf+grafana+influxdb),当然zabbix也可以做服务器监控貌似功能更强大
(一)安装influxDB数据库
InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;
可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;
由于最近在学习docker,这里采用docker安装练练手,也能给服务器省去不少资源,毕竟个人的服务器配置不高
搜索influxdb镜像 :docker search influxdb
拉取镜像:docker pull influxdb
查看镜像:docker images
这里先直接启动: 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
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 停止容器
docker ps 查看运行容器
docker logs influxdb -f 查看容器日志
然后进入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
然后就可以登录了。我这里采用 InfluxDBStudio客户端连接,下载地址
我们新建一个telegraf 的库用来保存主机监控数据
(二)主机安装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数据库,用户名密码等
配置docker
搜索 inputs.docker
endpoint = "unix:///var/run/docker.sock"
timeout = "5s"
interval= "1m"
perdevice = true
total = false
保存后退出
给用户赋权限
sudo usermod -aG docker telegraf
systemctl start telegraf 运行
等一会就会看到telegraf 库里多了很多数据
(三)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
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 参考https://www.jianshu.com/p/7e7e0d06709b
(4)采集springboot数据到influxdb
influxdb 新建数据库
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
http://localhost:8096/api/actuator/metrics
可以看到influxdb数据库也多了很多数据
grafana 配置数据源
新建仪表板,编辑最后效果图
后边会把监控报警更新
欢迎大家交流。。。