目录
五、 Mysql授权GRANT ALL PRIVILEGES
一、前言
Grafana(Grafana | Query, visualize, alerting observability platform)是一个可视化的平台监控和分析⼯工具。 xxxx的生产环境通过配置Grafana的Docker实例进⾏监控。 本⽂结合xxxx项目的实际应用,介绍Grafana的基本配置方法。
二、 安装Docker CE和Docker Compose
1、Docker CE
1.1、概念
Docker CE(Community Edition)是一种免费开源的容器化平台,可在多种操作系统上运行。它允许将应用程序和它们所依赖的所有组件打包到一个容器中,并在任何地方以高效、可靠和可重复的方式运行。Docker CE非常流行,因为它提供了轻量化、快速部署、可移植性、可扩展性以及更好的资源利用率等优势。
1.2、安装
Docker CE是Docker社区版,支持在各种操作系统上安装和使用。下面是在Ubuntu操作系统上安装Docker CE的步骤:
1.2.1、更新软件包索引
$ sudo apt-get update
1.2.2、安装必要的软件包
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
1.2.3、添加Docker官方GPG密钥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
1.2.4、设置Docker软件源
$ echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.2.5、更新软件包索引
$ sudo apt-get update
1.2.6、安装Docker CE
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
1.2.7、验证安装结果
$ sudo docker run hello-world
如果输出结果为“Hello from Docker!”,则表示Docker CE安装成功。
注意:以上步骤是在Ubuntu操作系统上安装Docker CE的基本步骤,其他操作系统和具体版本的安装步骤可能会有所不同。需要根据具体情况进行调整。
Ubuntu安装Docker CE请参考:Install Docker Engine on Ubuntu | Docker Documentation。
其它平台安装Docker CE指引请在这里查询。
2、Docker Compose
2.1、概念
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它允许您通过一个 YAML 文件来定义应用程序的各个服务(例如 web 服务器、数据库、消息队列等)的容器、网络和存储卷等配置。然后,您可以使用一条命令来启动、停止和重启整个应用程序,非常适用于开发及测试环境的部署。
2.2、Linux安装Docker Compose步骤:
sudo bash -c "curl -L https://github.com/docker/compose/releases/download/1.22.0-
rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose
更多内容请参考:https://github.com/docker/compose/releases
三、安装Docker镜像
docker pull kamon/grafana_graphite
安装完后最好查看下镜像列列表:
docker images
更多内容请参考Docker Hub:Docker
四、配置docker-compose
docker-compose.yml⽂文件内容如下:
version: '2'
services:
grafana_graphite:
build: .
image: kamon/grafana_graphite
container_name: kamon-grafana-dashboard
ports:
- '8000:80'
- '8001:81'
- '8125:8125/udp'
- '8126:8126'
- '2003:2003'
environment:
- GF_USERS_ALLOW_SIGN_UP=false
- GF_USERS_ALLOW_ORG_CREATE=false
- GF_USERS_AUTO_ASSIGN_ORG_ROLE=Read Only Editor
- GF_DATABASE_TYPE=mysql
- GF_DATABASE_HOST=<host>:<port>
- GF_DATABASE_NAME=<database_name>
- GF_DATABASE_USER=<user>
- GF_DATABASE_PASSWORD=<password>
其中, ports配置说明如下:
80:Grafana⽹⻚界面。
81:Graphite⽹络端口。
8125:StatsD端⼝。
8126:StatsD管理端口。
2003:Graphite数据端口。
environment配置说明如下:
GF_USERS_ALLOW_SIGN_UP:设置为false时表示禁止⽤用户注册/创建用户账号,默认为false;但管理员用户仍然可以从Grafana管理界面创建用户
GF_USERS_ALLOW_ORG_CREATE:设置为false禁⽌用户创建新组织,默认为false。 GF_USERS_AUTO_ASSIGN_ORG_ROLE: 新⽤户将分配给主要组织的角色,默认为Viewer,其他有效选项为Admin和Editor。
GF_DATABASE_TYPE:数据库类型,⽆非就是mysql、postgres或者sqlites。
GF_DATABASE_HOST: 仅适⽤于mysql或postgres,包括ip或主机名和端口,例如,对于Grafana在同一台 主机上运行时MySQL: host = 127.0.0.1 : 3306
GF_DATABASE_NAME: Grafana数据库名称,下述中为是定义为grafana_test。
GF_DATABASE_USER:数据库用户,不适用于sqlites3。
GF_DATABASE_PASSWORD: 数据库⽤户密码(不适⽤于sqlites),如果密码中包含#或;则必须用3个
引号包装它,例如 """ #password; """
注:在conf / grafana.ini中定义的所有选项都可以通过语法使用环境变量来覆盖 GF_<SectionName>_<KeyName>, 上述<host>、<port>、<database_name>、<user>、<password>等 尖括号项请结合实际情况具体配置。
更多的配置可参考Configure Grafana | Grafana documentation
五、 Mysql授权GRANT ALL PRIVILEGES
1、配置mysql
根据docker-compose.yml⽂文件中environment的配置,按照如下配置Mysql即可:
其中,
Host:内⽹网ip,对应environment配置中的‘<host>’。
Username : 对应environment配置中的'<database_name>'。
Password : 对应environment配置中的 '<password>'。
Database : 对应environment配置中的'<database_name>'。
配置完后你可以⽤用如下命令看看能不不能远程连接数据库:
mysql -h ‘<host>’ -u '<user>' -p
注:当远程接数据库的时候你会发现可能还是会报Can't connect to MySQL server (10060)的错 误,原因有两个:一个是当前用户被mysql服务器拒绝,另外一个原因是3306端口被防⽕墙禁掉,⽆法接到该端口。
2、登录MYSQL
注:⼀般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
@>mysql -u root -p
@>密码
3、赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO '<user>'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
4、刷新系统权限表
mysql>flush privileges;
5、打开防⽕火墙
在“系统偏好设置->安全与隐私->防⽕墙”中打开防火墙。
6、修改mac下my.cnf配置⽂文件
sudo find / -name my.cnf
nano /usr/local/etc/my.cnf
nano /usr/local/Cellar/mysql/5.7.22/.bottle/etc/my.cnf bind-address = 0.0.0.0
注:my.cnf中有选项bind-address=127.0.0.1,是说mysql server监听的是本地发来的请求,如果是任意主机都可以请求,则写为0.0.0.0,但是这⼜不太安全。监听某ip,指定此ip地址即可,但是要保证mysql的 user中有允许此ip访问,否则不能对数据库操作。
7、改完配置后重启mysql数据库使之生效:
brew services restart mysql
六、运行docker-compose 执行命令
docker-compose -f docker-compose.yml up
或
docker-compose up
启动docker实例例。
安装完成且正常运⾏行行后,访问service_ip:8000正常的效果如下所示:
注:我的service_ip即本地ip,故我本地访问地址为:http://127.0.0.1:8000/login
初始登录账号/密码为:admin/admin。建议首次登录后立即修改初始账号密码,修改路径如下所示:
七、监控窗⼝配置使用
service_ip:8000访问的实际上是grafana的套件,主要需要配置Data Sources与Dashboards两部分。
1、Data Sources配置
在Grafana中,配置数据源是非常关键的一步,它决定了Grafana能够获取哪些数据并将其可视化。以下是在Grafana中配置数据源的步骤:
- 登录Grafana并进入主界面。
- 点击左边的“Configuration”按钮。
- 在下拉菜单中选择“Data Sources”。
- 点击“Add data source”按钮,选择您要使用的数据源类型。
- 根据您选择的数据源类型,填写相应的信息。例如,如果您选择的是Prometheus,则需要提供Prometheus服务器的URL。
- 如果需要身份验证,还需要提供用户名和密码。
- 点击“Save & Test”按钮,测试您提供的信息是否正确。
- 如果测试成功,Grafana将保存您的数据源配置,并显示您的数据源列表。
配置完成后,您可以使用该数据源创建面板,并将其可视化。
Data Sources主要是配置获取graphite的数据源,配置样例如下:(出于隐私问题,图片要很模糊)
更更多内容可参考:http://docs.grafana.org/features/datasources/graphite/
2、Dashboards配置
在Grafana中,Dashboards是可视化面板,用于展示数据、指标和分析结果。以下是在Grafana中配置Dashboards的步骤:
-
登录Grafana后,选择左侧菜单栏中的“Dashboards”选项,然后选择“New Dashboard”创建一个新的Dashboard。
-
在Dashboard中添加Panel。点击“Add Panel”按钮,选择不同的Panel类型,例如Graph、Singlestat、Table等。
-
配置Panel。每个Panel有自己的配置选项,比如数据源、查询、显示方式等。根据实际需求进行配置。
-
保存Dashboard。点击“Save Dashboard”按钮来保存Dashboard。
-
分享Dashboard。可以通过设置Dashboard的权限,使其他用户可以查看和访问Dashboard。也可以通过将Dashboard导出为JSON文件来分享。
-
使用模板。Grafana提供了大量的Dashboard模板,可以更快速地创建Dashboard。选择左侧菜单栏中的“Dashboards”选项,然后选择“Import”导入模板即可。
以上是在Grafana中配置Dashboards的基本步骤,需要注意的是,Dashboards的设计需要根据具体需求和数据进行灵活调整,以达到更好的数据展示和分析效果。