如何使用Ansible添加Grafana数据源
在这篇文章中,将介绍如何在不使用Grafana Web界面的情况下轻松地将数据源添加到Grafana。
Grafana支持各种存储后端为时间序列数据,这是所谓的数据源。
Grafana支持数据来源
官方支持以下数据源:GraphIteElasticsearchCloudWatchinInFluxDbopentsDBPROMETHEUSMYSQLPOSTGRESMICROSOFT SQL Server(MSSQL)
每个数据源都有一个特定的查询编辑器,用于特定数据源曝光的函数和函数。
如果我们没有准备好,我已经完成了Grafana的教程。
如何在Ubuntu 18.04和Debian 9上安装Grafana
在CentOS 7上安装Grafana和FlowuxDB
安装并工作了GRAFANA后,我们可能需要安装数据源服务器,这可以是Prometheus,涌入,石墨。
第1步:在Linux上安装Ansible
我们需要安装Ansible安装并在Linux系统上工作以使用此方法。
我们可以使用Python轻松在任何Linux上安装Ansible pip
包管理器。
安装 python-pip
在Linux上。
PIP是用于安装和管理在Python中编写的软件包的包管理系统
在Ubuntu/debian上安装pip
sudo apt-get -y install python-pip
在CentOS上安装PIP
sudo yum -y install python-pip
在Arch Linux上安装pip
sudo paman -S python-pip
安装PIP后,将其升级到最新版本
sudo pip install --upgrade pip
第2步:设置Ansible环境
创建Ansible基本目录
mkdir -p ~/ansible
更改为Ansible基本目录并创建一个目录以存储所有Ansible角色。
cd ~/ansible mkdir roles
在下面 roles
目录,我们将拥有任务和默认值变量文件夹
mkdir -p roles/grafana-datasource/{tasks,defaults]
第3步:定义Ansible变量
我们将在文件上定义我们用于将DataSource添加到Grafana的变量 roles/defaults/main.yml
。
在此示例中,我们将为Grafana添加涌入数据源。
以下是我们 /defaults/main.yml
我将在一下解释其内容。
$cat defaults/main.yml -- grafana_url: "http://192.168.50.3:3000" grafana_user: admin grafana_password: "GrafanaAdminPassword" org_id: "1" data_source: - name: ldap.example.com ds_type: "influxdb" url: "http://192.168.50.4:8086" user: "influx_user" password: "StrongPassword"
其中: http://192.168.50.3:3000
是Grafana的网址。
它在默认端口3000上运行.grafana管理员用户是 admin
密码 GrafanaAdminPassword
要添加的数据源是命名的 ldap.example.com
数据源类型是 influxdb
http://192.168.50.4:8086
是涌入服务器的URL,用于涌入具有身份验证(推荐),定义用户名和密码 - influx_user
和 StrongPassword
分别。
请记住使用正确的值替换值。
在我们的涌入和Grafana安装教程中定义了对涌入数据源的认证,在CentOS 7上的涌入Grafana和FlowuxDB上定义,它适用于任何其他Linux味道的涌入。
第4步:创建Ansible任务
当定义用于创建数据源的所有变量时,继续创建任务。
$cat tasks/main.yml -- - name: Create influxdb datasource grafana_datasource: name: "{{ item.name }}" grafana_url: "{{ grafana_url }}" grafana_user: "{{ grafana_user }}" grafana_password: "{{ grafana_password }}" ds_type: "{{ item.ds_type }}" url: "{{ item.url }}" database: "{{ item.name }}" user: "{{ item.user }}" password: "{{ item.password }}" state: present with_items: "{{ data_source }}"
文件上定义的任务参考值 defaults/main.yml
。
第5步:运行Ansible PlayBook
更改为root ansible目录并创建PlayBook执行文件。
cd ~/ansible/
创建一个包含如下内容的文件
$cat grafana-datasource.yml -- - name: Add data source to grafana hosts: localhost roles: - grafana-datasource
最后,通过运行执行PlayBook:
$ansible-playbook grafana-datasource.yml
示例
# ansible-playbook grafana-datasource.yml PLAY [Add data source to grafana] ** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ** TASK [Gathering Facts] ** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ***** ok: [localhost] TASK [grafana-datasource : Create influxdb datasource] ** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ***** changed: [localhost] => (item={u'url': u'http://192.168.50.4:8086', u'password': u'StrongPassword', u'ds_type': u'influxdb', u'name': u'ldap.example.com', u'user': u'influx_user'}) PLAY RECAP ** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ***** localhost : ok=2 changed=1 unreachable=0 failed=0
根据部分确认Grafana上的数据源 Data Sources
。
我们现在可以通过编辑名称添加许多数据来源,仅适用于所有涌入数据源。