使用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