Grafana(https://grafana.com/grafana)是一个可视化的平台监控和分析⼯工具。 xxxx的生产环境通过配置Grafana的Docker实例进⾏监控。 本⽂结合xxxx项目的实际应用,介绍Grafana的基本配置方法。
0. 安装Docker CE和Docker Compose
Docker CE
Ubuntu安装Docker CE请参考:https://store.docker.com/editions/community/docker-ce-server-ubuntu。
其它平台安装Docker CE指引请在这里查询。
Docker Compose
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
1. 安装Docker镜像
docker pull kamon/grafana_graphite
安装完后最好查看下镜像列列表:
docker images
更多内容请参考Docker Hub:https://hub.docker.com/r/kamon/grafana_graphite
2. 配置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>等 尖括号项请结合实际情况具体配置。
更多的配置可参考http://docs.grafana.org/installation/configuration/
3. Mysql授权GRANT ALL PRIVILEGES
配置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端口被防⽕墙禁掉,⽆法接到该端口。
登录MYSQL
注:⼀般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
@>mysql -u root -p
@>密码
赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO '<user>'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新系统权限表
mysql>flush privileges;
打开防⽕火墙
在“系统偏好设置->安全与隐私->防⽕墙”中打开防火墙。
修改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访问,否则不能对数据库操作。
改完配置后重启mysql数据库使之生效:
brew services restart mysql
4.运行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。建议首次登录后立即修改初始账号密码,修改路径如下所示:
5.监控窗⼝配置使用
service_ip:8000访问的实际上是grafana的套件,主要需要配置Data Sources与Dashboards两部分。
Data Sources配置
Data Sources主要是配置获取graphite的数据源,配置样例如下:(出于隐私问题,图片要很模糊)
更更多内容可参考:http://docs.grafana.org/features/datasources/graphite/