大家好,我是小斐呀。
夜莺进入 v7
版本后,优化和改进了很多细节,特别是支持嵌入 Grafana
,国内用户如果想使用夜莺的友好界面,又想使用夜莺集成的告警,同时还想要时序库的选择自由,并且还需要 Grafana
的炫酷 Dashboard
,简单一句话就是既要还要,那我现在强烈建议使用夜莺生态综合体。
什么是夜莺生态综合体,其实这是我自己根据开源组件相关的功能特性和夜莺生态的特性组成的集合,相当于把每个组件的优秀能力和夜莺的生态进行捆绑,接下来看看如何实现。
夜莺生态综合体
在指标监控领域我喜欢把整个过程分为五个阶段,如下图所示:
上面是针对这五个阶段简单列出的指标监控领域推荐使用的组件,接下来我们可以看下夜莺生态综合体的架构:
这个架构中,把 VictoriaMetrics
体系组件和 Grafana
组件融合到夜莺生态中,夜莺相当于一个集成方,把所有的运维操作层面都集中在夜莺上,在运维管理上简化的操作,同时功能强大,兼容并蓄各方优点。
上图架构中,采集器作为一个动态变化的对象,一般在实际使用的过程中会根据需要监控的对象类型来选择不同的采集器,采集器一般都有两种类型和两种模式,我们在这里简单说明下:
两种类型: 一对一
和一对多
;两种模式: pull
和push
。
一对一
的可以理解为需要把采集器程序实际部署在被监控对象本身中,比较典型的就是有以下几种:
node_exporter
采集Linux
系统下的CPU、内存、磁盘、网络以及进程等各种性能指标;windows_exporter
采集Windows
系统下的CPU、内存、磁盘、网络以及进程等各种性能指标;categraf
采集器如果需要采集Linux
系统下和Windows
系统下CPU、内存、磁盘、网络以及进程等各种性能指标,也需要作为一对一
的类型部署到对应主机中。
一对多
的可以理解为需要把采集器程序部署到某台主机中,而这个采集器程序可以通过某种协议去采集多个被监控对象本身,比较典型的就是有以下几种:
node_exporter
采集SNMP
设备的指标,通常用在对网络设备、UPS、门禁等对象指标采集;blackbox_exporter
采集黑盒
设备的指标,通常用在对通用协议的探测上,如:TCP、HTTP、ICMP、DNS、gRPC等协议的探测实现对这些对象的协议通用指标采集;categraf
采集器插件SNMP
也是实现对网络设备的指标采集,通常用在对网络设备、UPS、门禁等对象指标采集,如果只用categraf
中的SNMP
插件可以只在一台机器上categraf
采集多个网络设备的指标。
上图架构中,Categraf 作为采集器,主动把采集的数据 push
到夜莺中,然后夜莺再把数据写入时序数据库 VictoriaMetrics
中,从而使的夜莺可直接查询时序数据库,为了补充夜莺 Dashboard
不足,使用 Grafana
去实现数据可视化,把 Grafana
嵌入到夜莺中,从而实现丰富的可视化(夜莺 Dashboard
和 Grafana Dashboard
),最终告警通过夜莺发送出来。
由于使用 vmagent
兼容各种 Exporter
并把采集的数据直接写入时序数据库,通过夜莺对监控数据做告警判断。这种方式是会有一点点小问题,由于采集数据没有流经夜莺,就没法从数据流中解析出机器信息,也就没法把机器信息写入数据库 target
表,也就导致页面上机器列表页面看不到相关的机器。这不影响夜莺告警,看图这些核心功能,只是用不了机器分组,自定义标签,告警自愈之类的功能。
部署
接下来我们通过上面的架构,完整的部署一套单节点架构,注意这里演示的所有组件都是单节点,不涉及集群部署,以二进制方式部署,以 Ubuntu 22.04.5 LTS
为基础环境。
部署步骤如下:
夜莺 > VictoriaMetrics > Grafana > Categraf > vmagent
这些组件可以部署在单节点主机上,也可以根据个人环境需求进行多主机拆分部署。
前置组件部署
夜莺部署:由于夜莺依赖 MySQL
存储用户配置类数据,依赖 redis
存储 jwt token
和机器心跳上报的 metadata
,所以需要先准备 MySQL
和 redis
。
MySQL 部署
# 安装 MySQL Ubuntu 22.04.x
# 更新软件包列表
sudo apt update
sudo apt search mysql-server
# 安装最新版本
sudo apt install -y mysql-server
# 启动 MySQL
sudo systemctl start mysql.service
# 开机自启
sudo systemctl enable mysql.service
# MySQL 状态
sudo systemctl status mysql.service
# 查看 MySQL 版本 这里安装的是 8.0.39 版本
mysql --version
# 安装 MySQL Rocky 9.x
# 更新软件包列表
sudo dnf update
sudo dnf search mysql-server
# 安装 MySQL
sudo dnf install -y mysql-server
# 启动 MySQL
sudo systemctl start mysqld.service
# 开机自启
sudo systemctl enable mysqld.service
# MySQL 状态
sudo systemctl status mysqld.service
# 查看 MySQL 版本 这里安装的是 8.0.36 版本
mysql --version
默认的 MySQL
安全设置是不安全的,MySQL 自带 MySQL 安装安全脚本,可以帮助修改默认选项并加强数据库服务器。
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
该脚本将引导您完成几个提示,询问您是否要更改默认 MySQL 安装的安全选项。
首先,您需要配置 Validate Password Plugin。这使您可以测试所需的 MySQL
密码强度并提高安全性,该插件检查密码的强度,并允许您配置强密码。
因此,按 Y
来使用插件提供的 VALIDATE PASSWORD 组件。
之后,您将看到三个级别的密码验证策略:LOW,MEDIUM,STRONG,每个级别都有其复杂程度。强烈建议选择 STRONG
级别,这将强制密码具有数字、混合大小写、特殊字符和字典的组合。
最强的级别你通过输入 2
来选择--将要求你的密码至少有八个字符的长度,并包括大写、小写、数字和特殊字符的组合。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Ubuntu 22.04.5 是这样的
Rocky 9.4 是这样的
Ubuntu 22.04.5 系统安装 MySQL 默认情况下使用 auth_socket
进行身份验证,因此跳过为 root
设置的密码,如果您想使用密码身份验证,可以使用 ALTER_USER
命令来完成。(Rocky 9.4 系统安装 MySQL 下执行 sudo mysql_secure_installation
已经设置好 root 密码,root 用户使用 caching_sha2_password
插件认证)
# 以 root 访问 MySQL Ubuntu 22.04.5 下直接回车,Rocky 9.4 系统下需要输入上面指定的密码
sudo mysql -u root
# Rocky 系统下修改 MySQL 下 root 用户密码,由于 root 用户使用 caching_sha2_passwor 插件认证
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
# 创建 admin 用户 password 修改为符合 STRONG 规则的密码
mysql> CREATE USER 'admin'@'%' IDENTIFIED WITH caching_sha2_password BY 'password';
# 授予 admin 用户所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
# 刷新权限
mysql> FLUSH PRIVILEGES;
# 查看数据库用户列表
mysql> SELECT user, host, plugin FROM mysql.user;
# 退出
mysql> exit;
您的 MySQL
数据库服务器现在配置为使用推荐的默认安全选项,要获取关于数据库服务器的更多信息,请使用 mysqladmin 客户端工具,如下所示。
sudo mysqladmin -u root -p version
# 输入密码,直接回车,由于 Ubuntu 22.04.5 系统下 MySQL 的 root 没有通过密码认证,而是 auth_socket 认证插件,直接回车即可,输入了密码也不用密码进行认证的
上图这表明 MySQL
安装是成功的。
因为 MySQL 8.0.X
版本默认监听 127.0.0.1:3306
,如需要放开外部IP访问数据库,则需要把监听地址修改为 0.0.0.0:3306
。
# 编辑文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
# 重启
sudo systemctl status mysql.service
# 防火墙放开 TCP 3306 端口
sudo ufw allow 3306/tcp
Redis 部署
# 安装 Redis Ubuntu 22.04.x
sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
# 开机自启动
sudo systemctl enable redis-server.service
# 启动
sudo systemctl start redis-server.service
# 状态
sudo systemctl status redis-server.service
# 查看安装版本
redis-cli --version
# 测试 Redis 如果返回 PONG 就代表正常
redis-cli ping
# 安装 Redis Rocky 9.x
sudo dnf install -y redis
# 开机自启动
sudo systemctl enable redis.service
# 启动
sudo systemctl start redis.service
# 状态
sudo systemctl status redis.service
# 查看安装版本
redis-cli --version
# 测试 Redis 如果返回 PONG 就代表正常
redis-cli ping
夜莺部署
夜莺部署这里也推荐使用二进制部署,减少依赖的组件;夜莺已经进入到了 v7
版本,下面我将以夜莺当前最新稳定版本进行演示部署:
# 下载安装包 比如这里以 7.4.1 为案例
# 安装目录
insdir=/opt/nightingale
version=v7.4.1
urlpath=https://download.flashcat.cloud/n9e-${version}-linux-amd64.tar.gz
wget -q $urlpath || exit 1
# 创建目录
mkdir -p ${insdir}
# 解压缩发布包
tar -zxvf n9e-${version}-linux-amd64.tar.gz -C ${insdir}
# 进入安装目录
cd /opt/nightingale
# 解压后有以下文件
cli docker etc integrations n9e n9e-cli n9e-edge n9e.sql
# 解压缩之后,可以看到 n9e.sql 是建表语句,导入到 MySQL 数据库
sudo mysql -u root < n9e.sql
# 修改 /opt/nightingale/etc/config.toml 文件,etc 是配置文件目录,下面主要配置 MySQL 和 Redis
# 连接 MySQL 数据库信息,主要是 root:12234@tcp(127.0.0.1:3306) 的修改
# 数据库用户:admin 、数据库admin密码:Neo.321123、tcp(127.0.0.1:3306)
DSN = "admin:Neo.321123@tcp(172.17.40.192:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"
# 连接 Redis 数据库信息
# 启动 n9e,先使用 nohup 简单测试,如果需要 systemd 托管,看下面的 systemd 管理服务
nohup ./n9e &> n9e.log &
# 检查 n9e.log 是否有异常日志,检查端口是否在监听,正常应该监听在 17000
ss -tlnp | grep 17000
# 杀掉 nohup
lsof -i:17000
kill -9 {PID}
MySQL 和 Redis 信息配置如下,由于 MySQL 和 Redis 都是部署某一台主机,故 IP 信息还是那台主机的的本身 IP 或者环回地址,如下所示:
如果日志和端口都没啥问题,恭喜,你完成了夜莺的安装!通过浏览器访问这个机器的 17000
,理论上就可以看到登录页面了,但是使用 nohup
运行不友好,不算最佳实践,一般情况下肯定使用 systemd
对服务进程做管理。
# n9e.service
cat <<EOF >/etc/systemd/system/n9e.service
[Unit]
Description="n9e"
After=network.target
[Service]
Type=simple
ExecStart=${insdir}/n9e
WorkingDirectory=${insdir}
Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=n9e-server
[Install]
WantedBy=multi-user.target
EOF
最终的 systemd
服务管理文件如下:
启动服务
# 开机自启
sudo systemctl enable n9e.service
# 启动
sudo systemctl restart n9e.service
# 状态
sudo systemctl status n9e.service
使用命令查看夜莺是否正常监听:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
0
在 PC 端打开浏览器,访问夜莺 WebUI IP:17000
IP 替换成你自己的夜莺所部署的主机地址。
如上所示,默认用户是 root
,密码是 root.2020
。
把日志输出到指定目录
默认情况下夜莺的日志打印到 stdout,如果想把日志输出到指定目录,可以通过修改 config.toml 中的 [Log]
部分达成目的,比如:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
1
上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件保留 24 小时。也可以根据大小来配置,比如:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
2
上面的配置表示,把日志输出到 logs 目录下,日志级别是 INFO,日志文件大小超过 256M 时,会自动切割,保留 3 个日志文件。
VictoriaMetrics 部署
在上面的架构中,我们只是把夜莺进程当作告警引擎和数据转发的 pushgateway
,夜莺自身并不实现数据存储组件,故我们需要使用开源第三方的时序库作为数据存储组件,这里我推荐 VictoriaMetrics
,它是作为兼容 Prometheus
增强实现,补充 Prometheus
在性能、查询、以及集群上的短板。
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
3
当二进制写好后,我们需要实现 systemd
服务管理,新建 victoria-metrics.service
文件,如下复制到服务器终端执行:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
4
写入启动配置文件参数:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
5
-storageDataPath=/var/lib/victoria-metrics-data : 把时序数据存储到本地服务器下的这个目录中 -retentionPeriod=90d : 数据保留时间,超过 90
天的数据会滚动删除-httpListenAddr=:8428 : 本地监听端口 8428
,默认地址0.0.0.0
-selfScrapeInterval=15s : 抓取单节点自身指标间隔时间 15
秒-vmui.defaultTimezone=Local : vmui 界面的默认时区保持和系统时区一致
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
6
查看状态正常:
根据上面的状态查看图片可以看出部署启动状态正常,监听地址正常,监听地址 IP:8428
,IP 地址换成 VictoriaMetrics
部署的主机地址。
配置夜莺时序数据源
浏览器打开夜莺并使用默认用户名和密码登录,然后进入如下界面新增数据源:
接下来配置时序库对应的信息,如下所示:
当配置填写完成,点击测试并保存即可。
Grafana 部署
夜莺新版本可以嵌入 Grafana
,故为了统一在夜莺生态体系中集成更多炫酷并实用的可视化仪表盘,我们需要部署 Grafana
,然后在夜莺中集成 Grafana
就可以实现我们的需求。
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
7
安装完成后,默认是不启动的,需要手动启动下:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
8
安装完成后,登录 Grafana
,默认用户密码 admin
和 admin
,第一次会要求你修改默认 admin
密码,登录后添加数据源,添加数据源可查看如下文章:
Categraf 部署
部署 Categraf
通过一键脚本实现二进制部署:
# MySQL 包括一个安全脚本,允许你改变一些默认配置选项,以提高MySQL的安全性
sudo mysql_secure_installation
9
如果不指定安装目录,脚本执行后直接回车,安装路径默认 /opt/categraf
,所有的启动文件、配置文件、日志文件等都在该目录下。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
0
需要修改 /opt/categraf/conf/
目录下的 config.toml
配置文件,如下所示:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
1
其他具体的采集配置,都是在 conf
目录下的某个子目录中,你需要采集什么对象就使用什么插件,然后进入插件对应的目录中编辑采集配置文件,具体相关插件可看针对性的插件采集说明。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
2
vmagent 部署
没有一个 agent
可以搞定所有问题,各有所长。如果是从头开始建设这套体系,建议是优先使用 categraf
做机器基础指标的采集,和夜莺对接最为丝滑,然后各类中间件、数据库,如果 categraf
可以直接搞定就用,如果不能直接搞定,再配合其他 agent
来使用,是比较合理的选择,所以这里我们需要使用 vmagent
来对接各种 Exporter
采集器,从而把 Prometheus
生态的采集器集成到我定义的夜莺生态综合体中。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
3
当二进制写好后,我们需要实现 systemd
服务管理,新建 vmagent.service
文件,如下复制到服务器终端执行:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
4
写入启动配置文件参数:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
5
-promscrape.config=/etc/victoriametrics/vmagent/scrape.yml : 把 pull
方式的Exporter
通过抓取配置任务去摄取指标数据,兼容Prometheus
的抓取配置文件-remoteWrite.url=http://172.17.40.192:8428/api/v1/write : 指定远程存储的时序库地址,把当前摄取的数据转存到时序数据库中。 -remoteWrite.tmpDataPath=/var/lib/vmagent-remotewrite-data : 本地临时转储的数据目录,主要用于当时序库不可用或网络不可访问的时候,指标数据可以临时存储到当前目录 -promscrape.suppressScrapeErrors : 抑制抓取错误日志记录
创建初始启动的 scrape.yml
抓取配置文件,这里配置两个 job_name
,分别用来抓取 VictoriaMetrics
和 vmagent
本身的指标数据:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
6
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
7
vmagent
默认监听 8429
端口,我们可以在网页打开 http://172.17.40.192:8429
即可验证部署是否成功。
现在我们需要明白一个点,目前 vmagent
数据是直接写入 VictoriaMetrics
时序库中的, 我们可以看到上面的配置参数:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
8
直接把数据写入 VictoriaMetrics
时序库中,它的 API 接口就是 -remoteWrite.url=http://remote-storage/api/v1/write
, 其中 remote-storage
就是指时序库的地址。
由于 categraf
实现了 Prometheus Agent
故你也可以把 categraf
中的 prometheus-agent
开启后,编写相关 Prometheus
抓取任务配置文件,然后把 Exporter
类的采集数据写入夜莺,最终夜莺把数据转储到 VictoriaMetrics
时序库中。
当所有的组件部署完成后,就可以把相关组件和夜莺进行关联起来。
组件关联
首先 Categraf
采集器通过 remote_write
协议把数据写入夜莺然后夜莺把数据转储到后端 时序库(VictoriaMetrics)
中,接下来 vmagent
采集器把主动摄取到的指标数据写入到 时序库(VictoriaMetrics)
中,故最终所有的指标数据都会写入 时序库(VictoriaMetrics)
中,故我们可以把指标的查询都放在夜莺中,时序库统一关联 VictoriaMetrics)
实现数据统一存储,如下所示指标查询:
如果你需要查看某个维度的标签下的有哪些指标,可以打开 快捷视图
,编辑前置过滤条件和标签筛选即可呈现。
如果夜莺内置的仪表板,包括自己自定义的夜莺仪表板没办法满足你的指标数据可视化要求,可以通过 仪表盘
中的集成仪表盘实现,如下所示:
点击 现在配置
可以编辑集成仪表盘功能,这里我演示添加一个 Grafana
仪表盘:
修改 Grafana 配置文件
切换到 Grafana
的配置文件 /etc/grafana/grafana.ini
中,找到 [security]
配置块,把 allow_embedding
设置为 true
。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
9
切换到 Grafana
的配置文件 /etc/grafana/grafana.ini
中,找到 [auth.anonymous]
配置块,将其下的匿名访问控制 enabled
设置为 true
,组织权限设置为 Viewer
,以及 org_name
组织名称可根据实际情况填写,如下菜单中查看:
# 以 root 访问 MySQL Ubuntu 22.04.5 下直接回车,Rocky 9.4 系统下需要输入上面指定的密码
sudo mysql -u root
# Rocky 系统下修改 MySQL 下 root 用户密码,由于 root 用户使用 caching_sha2_passwor 插件认证
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
# 创建 admin 用户 password 修改为符合 STRONG 规则的密码
mysql> CREATE USER 'admin'@'%' IDENTIFIED WITH caching_sha2_password BY 'password';
# 授予 admin 用户所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
# 刷新权限
mysql> FLUSH PRIVILEGES;
# 查看数据库用户列表
mysql> SELECT user, host, plugin FROM mysql.user;
# 退出
mysql> exit;
0
重启 Grafana 服务
# 以 root 访问 MySQL Ubuntu 22.04.5 下直接回车,Rocky 9.4 系统下需要输入上面指定的密码
sudo mysql -u root
# Rocky 系统下修改 MySQL 下 root 用户密码,由于 root 用户使用 caching_sha2_passwor 插件认证
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
# 创建 admin 用户 password 修改为符合 STRONG 规则的密码
mysql> CREATE USER 'admin'@'%' IDENTIFIED WITH caching_sha2_password BY 'password';
# 授予 admin 用户所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
# 刷新权限
mysql> FLUSH PRIVILEGES;
# 查看数据库用户列表
mysql> SELECT user, host, plugin FROM mysql.user;
# 退出
mysql> exit;
1
开启后,登录 Grafana
后,点击 管理>用户
,可以看到有个匿名设备栏目:
接下来回到夜莺页面,打开 仪表盘>集成仪表盘
后,在空白区域点击 现在配置
就出现如下界面:
还可以集成单个 Grafana
的仪表板:
最终呈现:
采集器采集的指标数据和可视化都在夜莺中统一管理,接下来就是相关对象的指标告警配置,并把所有对象的指标告警规则定义出来并统一通过夜莺通知出来,夜莺支持非常多的告警媒介,这个就在后续篇幅展开说明告警。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...