云网牛站
所在位置:首页 > Linux云服务器 > 使用Ansible添加Grafana数据源的方法

使用Ansible添加Grafana数据源的方法

2019-02-18 10:08:55作者:吴可稿源:云网牛站

本文向你展示如何在不使用Grafana Web界面的情况下轻松地向Grafana添加数据源。Grafana支持的数据源有:Graphite、Elasticsearch、CloudWatch、InfluxDB、OpenTSDB、Prometheus、MySQL、Postgres、Microsoft SQL Server (MSSQL)。每个数据源都有一个特定的查询编辑器,该编辑器针对特定数据源公开的特性和功能进行了自定义。安装Grafana请参考在Ubuntu 18.04/Debian 9上安装Grafana的方法

 

一、在Linux上安装Ansible

你需要在Linux系统上安装和使用ansible才能使用此方法,参考在Ubuntu 18.04系统中安装Ansible 2.7.5的方法

你也可以使用python pip包管理器在任何Linux上轻松安装ansible,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

同时在安装Pip后可以参考在RHEL 8/CentOS 8系统上安装和配置Ansible一文来完成安装。

 

二、设置Ansible环境

创建ansible基目录:

mkdir -p ~/ansible

切换到ansible基目录并创建一个目录来存储所有Ansible角色:

cd ~/ansible

mkdir roles

在roles目录下,我们将有tasks和defaults变量文件夹:

mkdir -p roles/grafana-datasource/{tasks,defaults]

 

三、定义Ansible变量

我们用于向Grafana添加数据源的变量将在fileroles/defaults/main.yml上定义,在此示例中,我们将向Grafana添加InfluxDB数据源,下面是我们的/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的URL,它在默认端口3000上运行。

Grafana管理员用户是admin,密码为GrafanaAdminPassword。

要添加的数据源名为ldap.example.com。

数据源类型是Influxdb。

http://192.168.50.4:8086是InfluxDB服务器的URL。

对于具有身份验证的InfluxDB(推荐),分别定义用户名和密码:Influx_user和StrongPassword。

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

安装InfluxDB请参考在Ubuntu 18.04/Debian 9系统上安装InfluxDB的方法

 

四、创建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 }}"

filedefaults/main.yml上定义的任务引用值。

 

五、运行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

到这里就可以在sectionData Sources下确认Grafana上的数据源:

使用Ansible添加Grafana数据源的方法

你现在就可以通过仅为所有InfluxDB数据源编辑名称来添加许多数据源了。

 

相关主题

详细介绍使用Ansible来实现网络自动化

精选文章
热门文章