如何使用Ansible添加Grafana数据源

时间:2020-02-23 14:30:25  来源:igfitidea点击:

在这篇文章中,将介绍如何在不使用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_userStrongPassword分别。

请记住使用正确的值替换值。

在我们的涌入和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

我们现在可以通过编辑名称添加许多数据来源,仅适用于所有涌入数据源。