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

文章目录

[隐藏]

  • 一、在Linux上安装Ansible
  • 二、设置Ansible环境
  • 三、定义Ansible变量
  • 四、创建Ansible任务
  • 五、运行Ansible Playbook

本文向你展示如何在不使用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上的数据源:

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

原文出处:ywnz -> https://ywnz.com/linuxyffq/4287.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。