prometheus+nightingale+categraf使用
prometheus安装
prometheus在此次的使用中,当做时序库。使用版本prometheus-2.45.0.linux-amd64.tar.gz。
下载及解压
1 |
|
添加至服务
1 |
|
1 |
|
解析
多行文本
cat <<EOF 创建文本块的命令,允许在终端中输入多行文本,直到输入特定终止符(EOF)为止。一旦输入终止符,所有输入的文本将被传递给cat命令。
然后又使用 > 输入到prometheus.service文件中。
1 |
|
启动后验证
启动后,如有防火墙,需要开放9090端口。
输入:http://192.168.80.3:9090/ 后进入web控制台页面。
在首页点击搜索框右边的小地球,输入prometheus,随便选择一个,点击execute,发现下面会有搜索结果。
因为prometheus启动配置中,把自己做为一个监控任务,在配置文件/opt/prometheus/prometheus.yml可以看到如下:
1 |
|
以后需要prometheus直接拉取的,就在这里配置。
nightingale安装
夜莺在此次使用中,当做监控的显示与告警管理,使用版本为n9e-5.8.0.tar.gz。
夜莺V5依赖mysql 、redis,时序库使用prometheus。
prometheus开启–enable-feature=remote-write-receiver。
下载及解压
1 |
|
配置
把/opt/n9e/docker/initsql/a-n9e.sql导入至mysql中。
1 |
|
修改server.conf、 webapi.conf中mysql和redis中的地址及用户名密码。
启动
1 |
|
夜莺V5 服务器端使用的19000, web控制台使用的是18000。
http://192.168.80.3:18000/ 进入首页,同prometheus查询,有结果即为成功。
categraf安装
categraf为采集器。使用版本:categraf-v0.2.38-linux-amd64.tar.gz。
下载及解压
1 |
|
添加至服务
1 |
|
测试
1 |
|
使用冒号来分割多个插件。如果某个插件报错可以去安装目录的查看conf/input.xxx/xxx.toml文件中的配置是否正确。
机器监控
在categraf配置文件/opt/categraf/conf/config.toml中
1 |
|
这里是上送到nightingale, nightingale上送至prometheus。
也可以直接上送至prometheus。修改IP端口及地址即可(http://127.0.0.1:9090/api/v1/write)。
重启:
1 |
|
测试:
搜索cpu相关指标,可以看到搜索结果。
导入监控大盘
https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/system/dashboard.json
点击监控大盘,更多操作中选择导入监控大盘,选择导入大盘json,填入上面地址中的json,点击导入。
导入后列表会出现导入的监控大盘(linux host), 点击名称进入查看监控大盘。
导入告警规则
https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/system/alerts-linux.json
点击告警管理,点击告警规则,更多操作中选择导入告警规则,导入告警规则JSON,填入上面地址中的json,点击确定,点击关闭。
导入完成后,会出很多告警规则,如机器负载等。点击进入,选择告警接收组,如果人员组织中配置人员中的联系方式可以使用邮件、企业微信、钉钉等。
修改CPU使用 cpu_usage_idle{cpu=”cpu-total”} < 25 改为 cpu_usage_idle{cpu=”cpu-total”} < 99, 这时候肯定会告警,测试联系方式可以收到。
网络监控
ping
conf/input.ping/ping.toml
1 |
|
修改为需要监控的IP地址。
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/ping/dashboard.json
告警规则:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/ping/alerts.json
因为服务器一般关闭ping,所以看情况吧。
TCP
conf/input.net_response/net_response.toml
1 |
|
10.2.3.4:22 表示探测 10.2.3.4 这个机器的 22 端口是否可以连通。
localhost:6379 表示探测本机的 6379 端口是否可以连通。
:9090 表示探测本机的 9090 端口是否可以连通,没有写 IP 或主机名的就默认使用 localhost。
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/net_response/dashboard.json
告警规则:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/net_response/alerts.json
HTTP
conf/input.http_response/http_response.toml
1 |
|
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/http_response/dashboard.json
告警规则:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/http_response/alerts.json
nginx 监控
nginx服务需要启用http_stub_status_module模块。
可以访问到http://192.168.80.3/basic_status
/conf/input.nginx/nginx.toml
1 |
|
测试: ./categraf –test –inputs nginx
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/nginx/dashbaords.json
mysql监控
conf/input.mysql/mysql.toml
1 |
|
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/mysql/dashboard-by-ident.json
告警规则:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/mysql/alerts.json
redis监控
conf/input.redis/redis.toml
1 |
|
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/redis/dashboard.json
告警规则:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/redis/alerts.json
rabbitmq监控
从 rabbitmq 3.8 版本开始,就内置了 prometheus 的支持,即,如果 rabbitmq 启用了 prometheus,可以直接暴露 metrics 接口。
在rabbitmq的安装目录(sbin)下,执行rabbitmq-plugins enable rabbitmq_prometheus
启用成功的话,rabbitmq 默认会在 15692 端口起监听,访问 http://localhost:15692/metrics 即可看到符合 prometheus 协议的监控数据。
进入prometheus的安装目录,vim prometheus.yml,添加如下:
1 |
|
在上面prometheus任务之后,要注意格式,拉到文本编辑中看是否对齐。
监控大盘:https://github.com/flashcatcloud/categraf/blob/v0.2.39/inputs/rabbitmq/dashboard.json
spring boot服务监控
在spring boot项目中添加依赖:
1 |
|
开启端点:
1 |
|
启动spring boot项目后,访问http://192.168.80.1:8080/actuator/prometheus , 返回指标相关信息。
进入prometheus的安装目录,vim prometheus.yml,添加如下:
1 |
|
没有现成的监控大盘。
总结
nightingale 使用的还是少,网上信息比较少,监控大盘没有Grafana多,Grafana官网就可以搜索监控大盘。nightingale 的告警还是比较好用的。