Netdata Community

RPM netdata packages keep changing file structure

Hello,

We’ve been using ansible to install netdata agents using the netdata yum repository.
There is a task in the playbook to configure the health_alarm_notify.conf file for slack notifications.

The last version we installed of netdata (netdata-1.26.0-1.el7.x86_64) had no /etc/netdata/health_alarm_notify.conf file in that location and the docs recommending taking the approach of using the “edit-config” method of importing it in (which we deconstructed with ansible by copying the file from /usr/lib/netdata/conf.d/health_alarm_notify.conf)

The latest version we installed is now different.
It now has 3 packages

rpm -qa | grep netdata
  netdata-conf-1.26.0-2.el7.noarch
  netdata-1.26.0-2.el7.x86_64
  netdata-data-1.26.0-2.el7.noarch

There is no /usr/lib/netdata/conf.d location or edit-config tool.
And they moved health_alarm_notify.conf from /etc/netdata/health_alarm_notify.conf to /etc/netdata/conf.d/health_alarm_notify.conf.

Using the yum packages is the desirable method for our installations (for centos and amazon linux 2) and we would have expected more consistent installation behaviour.

Could someone provide clarity on why the installation is acting different from a minor version install?

The ansible tasks below

- name: Copy over health_alarm_notify.conf
  copy:
    src: "/usr/lib/netdata/conf.d/health_alarm_notify.conf"
    dest: "/etc/netdata/health_alarm_notify.conf"
    remote_src: yes
    force: no

- name: Add slack incomming webhook url when defined
  lineinfile:
    path: "/etc/netdata/health_alarm_notify.conf"
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
  when: netdata_slack_webhook_url is defined
  with_items:
    - { regexp: "^SEND_SLACK=", line: "SEND_SLACK=\"YES\"" }
    - { regexp: "^SLACK_WEBHOOK_URL=", line: "SLACK_WEBHOOK_URL=\"{{ netdata_slack_webhook_url }}\"" }
    - { regexp: "^DEFAULT_RECIPIENT_SLACK=", line: "DEFAULT_RECIPIENT_SLACK=\"{{ netdata_slack_default_recipient | default('devops-alarms') }}\"" }
  notify: restart netdata

Based on the package names you’re listing, it seems you’re installing distribution-provided Netdata packages. We have no control over how they choose to manage their packages, so you will need to ask whoever maintains them for the distro about the reason for the changes.

For reference, we do provide our own DEB/RPM packages, see the official documentation for info on installation.

Hi @Austin_Hemmelgarn

Thank you for the response. We are using the netdata packages (provided by netdata repos not distribution), we setup the repo’s using ansible as follows:

- name: Install pre-requisite pacakges for netdata
  yum:
    name:
      - pygpgme
      - yum-utils
    state: present

- name: Set netdata repo release when Amazon Linux 2
  set_fact:
    netdata_repo_release: "7"
  when: ansible_distribution == "Amazon"

- name: Create netdata yum repo
  yum_repository:
    name: "{{ item.name }}"
    description: "{{ item.description }}"
    baseurl: "{{ item.baseurl }}"
    repo_gpgcheck: "{{ item.repo_gpgcheck }}"
    gpgcheck: "{{ item.gpgcheck }}"
    gpgkey: "{{ item.gpgkey }}"
    sslverify: "{{ item.sslverify }}"
    sslcacert: "{{ item.sslcacert }}"
    metadata_expire: "{{ item.metadata_expire }}"
  with_items:
    - { name: "netdata_netdata", description: "netdata_netdata", baseurl: "https://packagecloud.io/netdata/netdata/el/{{ netdata_repo_release | default(ansible_distribution_major_version) }}/$basearch", repo_gpgcheck: "yes", gpgcheck: "no", gpgkey: "https://packagecloud.io/netdata/netdata/gpgkey", sslverify: "yes", sslcacert: "/etc/pki/tls/certs/ca-bundle.crt", metadata_expire: "300" }
    - { name: "netdata_netdata-source", description: "netdata_netdata-source", baseurl: "https://packagecloud.io/netdata/netdata/el/{{ netdata_repo_release | default(ansible_distribution_major_version) }}/SRPMS", repo_gpgcheck: "yes", gpgcheck: "no", gpgkey: "https://packagecloud.io/netdata/netdata/gpgkey", sslverify: "yes", sslcacert: "/etc/pki/tls/certs/ca-bundle.crt", metadata_expire: "300" }

- name: Update yum cache to enable netdata repo
  shell: "yum -q makecache -y --disablerepo='*' --enablerepo='netdata_netdata'"

- name: Install netdata package
  yum:
    name: netdata
    state: present

Hi @Austin_Hemmelgarn,

I dug a little further and noticed this seems to be the case, the packages look to be from epel and not netdata_netdata repo.

repoquery -i netdata

Name        : netdata
Version     : 1.26.0
Release     : 2.el7
Architecture: x86_64
Size        : 3862561
Packager    : Fedora Project
Group       : Unspecified
URL         : https://github.com/netdata/netdata/
Repository  : epel
Summary     : Real-time performance monitoring
Source      : netdata-1.26.0-2.el7.src.rpm
Description :
netdata is the fastest way to visualize metrics. It is a resource
efficient, highly optimized system for collecting and visualizing any
type of realtime time-series data, from CPU usage, disk activity, SQL
queries, API calls, web site visitors, etc.

netdata tries to visualize the truth of now, in its greatest detail,
so that you can get insights of what is happening now and what just
happened, on your systems and applications.

An additional note. Seems epel and netdata repo are competing and epel is coming out faster than netdata

yum info netdata
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
196 packages excluded due to repository priority protections
Installed Packages
Name        : netdata
Arch        : x86_64
Version     : 1.26.0
Release     : 1.el7
Size        : 37 M
Repo        : installed
From repo   : netdata_netdata
Summary     : Real-time performance monitoring, done right!
URL         : http://my-netdata.io
License     : GPLv3+
Description :   netdata is the fastest way to visualize metrics. It is a resource
            : efficient, highly optimized system for collecting and visualizing any
            : type of realtime timeseries data, from CPU usage, disk activity, SQL
            : queries, API calls, web site visitors, etc.
            :   netdata tries to visualize the truth of now, in its greatest detail,
            : so that you can get insights of what is happening now and what just
            : happened, on your systems and applications.

Available Packages
Name        : netdata
Arch        : x86_64
Version     : 1.26.0
Release     : 2.el7
Size        : 997 k
Repo        : epel/x86_64
Summary     : Real-time performance monitoring
URL         : https://github.com/netdata/netdata/
License     : GPLv3 and GPLv3+ and ASL 2.0 and CC-BY and MIT and WTFPL
Description : netdata is the fastest way to visualize metrics. It is a resource
            : efficient, highly optimized system for collecting and visualizing any
            : type of realtime time-series data, from CPU usage, disk activity, SQL
            : queries, API calls, web site visitors, etc.
            : 
            : netdata tries to visualize the truth of now, in its greatest detail,
            : so that you can get insights of what is happening now and what just
            : happened, on your systems and applications.

My last install defaulted to epel because netdata was older. I’ll have to look into locking a package to a specific repo.

Some additional notes for anyone coming across this.

Work around to avoid epel and netdata_netdata packages fighting with latest version:
Disable netdata* packages in the epel repo config

- name: Ensure EPEL excludes netdata packages
  ini_file:
    path: /etc/yum.repos.d/epel.repo
    section: epel
    option: exclude
    value: netdata*
    no_extra_spaces: yes

Additional question for netdata staff. Can someone contact Didier Fabert <didier.fabert@gmail.com> or other maintainers of the epel packages? https://buildsys.fedoraproject.org/koji/buildinfo?buildID=1508032

It seems like having two packages will likely lead to headache in future if they are constantly conflicting.
Also installing from EPEL vs netdata repos creates a giant filesystem mess which leads to having to uninstall the package and delete all of netdata’s folders to get back to a working state.