本文向你展示如何在不使用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数据源编辑名称来添加许多数据源了。
相关主题 |