如何使用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数据源类型是 influxdbhttp://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。
我们现在可以通过编辑名称添加许多数据来源,仅适用于所有涌入数据源。

