first commit
commit
618c5ef1a0
|
|
@ -0,0 +1,38 @@
|
|||
Role Name
|
||||
=========
|
||||
|
||||
A brief description of the role goes here.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
|
||||
|
||||
- hosts: servers
|
||||
roles:
|
||||
- { role: username.rolename, x: 42 }
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
BSD
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
# defaults file for zabbix
|
||||
rhel_db_packages:
|
||||
- postgresql-server
|
||||
- postgresql
|
||||
- postgresql-plpython3
|
||||
- zabbix-agent2
|
||||
|
||||
rhel_srv_packages:
|
||||
- zabbix-server-pgsql
|
||||
- zabbix-sql-scripts
|
||||
- zabbix-selinux-policy
|
||||
- zabbix-agent2
|
||||
|
||||
rhel_agent_packages:
|
||||
- zabbix-agent2
|
||||
|
||||
rhel_front_packages:
|
||||
- zabbix-web-pgsql
|
||||
- zabbix-nginx-conf
|
||||
- zabbix-agent2
|
||||
|
||||
|
||||
rhel_proxy_packages:
|
||||
- mariadb
|
||||
- zabbix-proxy-mysql
|
||||
- zabbix-sql-scripts
|
||||
- zabbix-agent2
|
||||
|
||||
debian_db_packages:
|
||||
- postgresql-contrib
|
||||
- postgresql
|
||||
- python3-psycopg2
|
||||
- zabbix-sql-scripts
|
||||
- zabbix-agent2
|
||||
|
||||
debian_srv_packages:
|
||||
- zabbix-server-pgsql
|
||||
- zabbix-agent2
|
||||
|
||||
debian_proxy_packages:
|
||||
- mariadb-server
|
||||
- zabbix-proxy-mysql
|
||||
- zabbix-sql-scripts
|
||||
- zabbix-agent2
|
||||
|
||||
debian_agent_packages:
|
||||
- zabbix-agent2
|
||||
|
||||
debian_front_packages:
|
||||
- zabbix-frontend-php
|
||||
- php8.4-pgsql
|
||||
- zabbix-nginx-conf
|
||||
- nginx
|
||||
- zabbix-agent2
|
||||
|
||||
roles_cibles: ['srv', 'proxy']
|
||||
|
||||
db_name: zabbix
|
||||
db_user: zabbix
|
||||
db_passwd: zabbix
|
||||
|
||||
proxy_db_name: zabbix_proxy
|
||||
proxy_db_user: zabbix_proxy
|
||||
proxy_db_passwd: zabbix_proxy
|
||||
|
||||
zabbix_ca: zabbix_ca
|
||||
zabbix_server: zabbix_server
|
||||
zabbix_proxy: zabbix_proxy
|
||||
zabbix_agent: zabbix_agent
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICKTCCAYqgAwIBAgIUZxhmpvLrqv/1ePzPg28YX/V3q5YwCgYIKoZIzj0EAwMw
|
||||
ITELMAkGA1UEBhMCRlIxEjAQBgNVBAMMCXphYmJpeF9jYTAeFw0yNjAyMTQxNzAw
|
||||
NTZaFw0yNzAyMTQxNzAwNTZaMCQxCzAJBgNVBAYTAkZSMRUwEwYDVQQDDAx6YWJi
|
||||
aXhfYWdlbnQwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAF1NBVjvH9JE+SbFBVI
|
||||
aZZiJn9gXzUHUjhPwCzcHt55jOmbrrszPpOUeYe+5ahqr96sdNS5d+Gc3JNym0UU
|
||||
mXS6rgHj/3weApB6SmRUOk7im/PmegSECOgA4GSEgP97eoBjYNJNbGw7ybpGoTX0
|
||||
Bu+amWlETXDlpi5huUkXx86wiy93vaNaMFgwHwYDVR0jBBgwFoAUIO5hY4gGmlcl
|
||||
Mw78YGdwHqHJLVswCQYDVR0TBAIwADALBgNVHQ8EBAMCBPAwHQYDVR0OBBYEFPRT
|
||||
QcdvRdtphLmDBwtx+7MXd9NiMAoGCCqGSM49BAMDA4GMADCBiAJCAXCtWzhuuXX7
|
||||
r9duhPWWPJcoL94r71QOgTuMIFp2hGEQQTkpDn8npQe33SEzKleiYlgk1TsNcOGC
|
||||
V7bzrryRAZbFAkIAzgZP2zW2Vhr6AF0EDW3S7A35v/oi0bGOuuCE7Kb2V9rcaAwM
|
||||
k9tVv3bRZIAF6bowHcdxNCdUlptk0q1NNE6h43I=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN EC PARAMETERS-----
|
||||
BgUrgQQAIw==
|
||||
-----END EC PARAMETERS-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHcAgEBBEIBIKtXJBBZMdk4xVf9qKzrJGJks/aruTaX226yh0XHDR2l+49jlwIh
|
||||
z2LuWCBSnWkOearNi0CiD/0SqBypl6GAvtmgBwYFK4EEACOhgYkDgYYABAF1NBVj
|
||||
vH9JE+SbFBVIaZZiJn9gXzUHUjhPwCzcHt55jOmbrrszPpOUeYe+5ahqr96sdNS5
|
||||
d+Gc3JNym0UUmXS6rgHj/3weApB6SmRUOk7im/PmegSECOgA4GSEgP97eoBjYNJN
|
||||
bGw7ybpGoTX0Bu+amWlETXDlpi5huUkXx86wiy93vQ==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICLjCCAZCgAwIBAgIUf6NkS48Id1xnJfmxiYE95Rt5W/IwCgYIKoZIzj0EAwMw
|
||||
ITELMAkGA1UEBhMCRlIxEjAQBgNVBAMMCXphYmJpeF9jYTAeFw0yNjAyMTQxNjU5
|
||||
MjlaFw0zNjAyMTIxNjU5MjlaMCExCzAJBgNVBAYTAkZSMRIwEAYDVQQDDAl6YWJi
|
||||
aXhfY2EwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABACYb7pFnvHYBLPUiUNtaBqK
|
||||
/zxQQ0JQ0xBBvKN1Lfpew0BlmPy8ZFdTrUz4BohVbmYmkdQ58BO/Gs1CUlxiHS7P
|
||||
8AApdAfIUdQtOdcy6KQ7FErTyDwyf594GHqWw4ycLaOaYocrV3ItZyYE083piGds
|
||||
Fbg9vlzj1deBlTRCkgSglCLoa6NjMGEwHQYDVR0OBBYEFCDuYWOIBppXJTMO/GBn
|
||||
cB6hyS1bMB8GA1UdIwQYMBaAFCDuYWOIBppXJTMO/GBncB6hyS1bMA8GA1UdEwEB
|
||||
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA4GLADCBhwJBRUwp
|
||||
n7+2jjrsTkR9NjP5DJP2sav0JJf5u80Y86mslp6rEIU4VTcwVhNXyvzUPrTS308t
|
||||
FlCnOcKDA/Pd68A8My4CQgHb5LHzI+Np3FT+kb4gvOw9YgHFUS5iDy4yB9ffT6z1
|
||||
5QrcIaD0atAPVyM4u7wVoif9wcHcyRiGFR+qaV6UwwoFHA==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHcAgEBBEIB+MT26kyyojwNQxOgLQ10uFxH2DHG+iT2h9xa82BwvUod9AhPytAB
|
||||
mQJhx/GYHMnFH5ff4nya20Xsj1/NTEeVHH+gBwYFK4EEACOhgYkDgYYABACYb7pF
|
||||
nvHYBLPUiUNtaBqK/zxQQ0JQ0xBBvKN1Lfpew0BlmPy8ZFdTrUz4BohVbmYmkdQ5
|
||||
8BO/Gs1CUlxiHS7P8AApdAfIUdQtOdcy6KQ7FErTyDwyf594GHqWw4ycLaOaYocr
|
||||
V3ItZyYE083piGdsFbg9vlzj1deBlTRCkgSglCLoaw==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICKTCCAYqgAwIBAgIUZxhmpvLrqv/1ePzPg28YX/V3q5cwCgYIKoZIzj0EAwMw
|
||||
ITELMAkGA1UEBhMCRlIxEjAQBgNVBAMMCXphYmJpeF9jYTAeFw0yNjAyMTQxODE5
|
||||
MjlaFw0yNzAyMTQxODE5MjlaMCQxCzAJBgNVBAYTAkZSMRUwEwYDVQQDDAx6YWJi
|
||||
aXhfcHJveHkwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABACasAU16MClAB06k8lQ
|
||||
G2hn6CUJCBKhjOcIRZqL1L5PdWprqnKfYdioOgzHfIlgikBrGryI66wj3SMWwtOB
|
||||
pZXg3wDcPRLSDDkwZa0hjCQfUHqO1wPQKN8sfnY1X41LXz4RrV79OLEbw1zvbAvG
|
||||
+Z0yIlNnEFtP/vAapciWFaUUChSarqNaMFgwHwYDVR0jBBgwFoAUIO5hY4gGmlcl
|
||||
Mw78YGdwHqHJLVswCQYDVR0TBAIwADALBgNVHQ8EBAMCBPAwHQYDVR0OBBYEFPPI
|
||||
gzk03dz6sWYKdd2MW2n4Y5LrMAoGCCqGSM49BAMDA4GMADCBiAJCASKlHzi830st
|
||||
8RM0DtPRF4v4YiPNSK4bFXiAS+/OjveR1Y6oFQfuZZinTFUU3P9A5UfinxqLrDJW
|
||||
iMtjmym4JYmZAkIAmwn9mVrpoKtUmxwBbPDhJLrgCTXPP0sttIuRRDbrGsSTCDhB
|
||||
HXaRfoA5969eZJ6zcGxI84TZzYSRvvE5AjMxH+k=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN EC PARAMETERS-----
|
||||
BgUrgQQAIw==
|
||||
-----END EC PARAMETERS-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHcAgEBBEIBlgrJJI/T9N2pOj5pFrMfuDaYboRfqckR2U0NnOVpqgUBLyVzQK+l
|
||||
s7iNnopgtqPEUI6zRVQCMAEII0Relhoc7+egBwYFK4EEACOhgYkDgYYABACasAU1
|
||||
6MClAB06k8lQG2hn6CUJCBKhjOcIRZqL1L5PdWprqnKfYdioOgzHfIlgikBrGryI
|
||||
66wj3SMWwtOBpZXg3wDcPRLSDDkwZa0hjCQfUHqO1wPQKN8sfnY1X41LXz4RrV79
|
||||
OLEbw1zvbAvG+Z0yIlNnEFtP/vAapciWFaUUChSarg==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICKTCCAYugAwIBAgIUZxhmpvLrqv/1ePzPg28YX/V3q5UwCgYIKoZIzj0EAwMw
|
||||
ITELMAkGA1UEBhMCRlIxEjAQBgNVBAMMCXphYmJpeF9jYTAeFw0yNjAyMTQxNzAw
|
||||
MzRaFw0yNzAyMTQxNzAwMzRaMCUxCzAJBgNVBAYTAkZSMRYwFAYDVQQDDA16YWJi
|
||||
aXhfc2VydmVyMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAQNnum/k11nyoW7yc
|
||||
6LICHe+rHmv18AguNfVg/tQ1lk9DPkOYp3xC+kcZQDkazeKqxEKY9l3jzG84gxvW
|
||||
qtlc4o0BvoYEEKLPiLXfKSzhkXcmyiAwXKT71t6peDIGYCnZHC8n6Hsio1UH9voA
|
||||
R6+bc3/rX+xxsDn1KiJ9ibHwyYeoSgGjWjBYMB8GA1UdIwQYMBaAFCDuYWOIBppX
|
||||
JTMO/GBncB6hyS1bMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgTwMB0GA1UdDgQWBBQ+
|
||||
1/AYNQleyhffJLBauHtkqwYu0TAKBggqhkjOPQQDAwOBiwAwgYcCQQf2/5hVMbPP
|
||||
L18i8VzeSZvNu+hqho0zGqTMY7oCekbEH6J4w+QQqslr9ps+9d+ce3nuQtuJEIBl
|
||||
1PCgaTHq5Ht7AkIBs+uzxTYQCRRvZ3CtjxYYYKLbSimqGWlnV9qMHASBxV/dskHU
|
||||
nP/JzeMgJuG44HwdaeqAb1dS1PYsYkPMkdwtLcQ=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN EC PARAMETERS-----
|
||||
BgUrgQQAIw==
|
||||
-----END EC PARAMETERS-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHcAgEBBEIBWA0qpIubCVTvFj0jmQvNl5ucVI5wngXTLwiH6R9naCscSw7fxdRN
|
||||
W52RikdZnQpExdY7m7cP7oWc/rTsTOAc2wqgBwYFK4EEACOhgYkDgYYABABA2e6b
|
||||
+TXWfKhbvJzosgId76sea/XwCC419WD+1DWWT0M+Q5infEL6RxlAORrN4qrEQpj2
|
||||
XePMbziDG9aq2VzijQG+hgQQos+Itd8pLOGRdybKIDBcpPvW3ql4MgZgKdkcLyfo
|
||||
eyKjVQf2+gBHr5tzf+tf7HGwOfUqIn2JsfDJh6hKAQ==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
# handlers file for zabbix
|
||||
- name: Restart postgresql
|
||||
service:
|
||||
name: postgresql
|
||||
state: restarted
|
||||
|
||||
- name: Restart nginx
|
||||
service:
|
||||
name: nginx
|
||||
state: restarted
|
||||
|
||||
- name: Restart Zabbix Server
|
||||
service:
|
||||
name: zabbix-server
|
||||
state: restarted
|
||||
|
||||
- name: Restart Zabbix Proxy
|
||||
service:
|
||||
name: zabbix-proxy
|
||||
state: restarted
|
||||
|
||||
- name: Restart Zabbix Agent2
|
||||
service:
|
||||
name: zabbix-agent2
|
||||
state: restarted
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
galaxy_info:
|
||||
author: your name
|
||||
description: your role description
|
||||
company: your company (optional)
|
||||
|
||||
# If the issue tracker for your role is not on github, uncomment the
|
||||
# next line and provide a value
|
||||
# issue_tracker_url: http://example.com/issue/tracker
|
||||
|
||||
# Choose a valid license ID from https://spdx.org - some suggested licenses:
|
||||
# - BSD-3-Clause (default)
|
||||
# - MIT
|
||||
# - GPL-2.0-or-later
|
||||
# - GPL-3.0-only
|
||||
# - Apache-2.0
|
||||
# - CC-BY-4.0
|
||||
license: license (GPL-2.0-or-later, MIT, etc)
|
||||
|
||||
min_ansible_version: 2.1
|
||||
|
||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||
# min_ansible_container_version:
|
||||
|
||||
#
|
||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
||||
# To view available platforms and versions (or releases), visit:
|
||||
# https://galaxy.ansible.com/api/v1/platforms/
|
||||
#
|
||||
# platforms:
|
||||
# - name: Fedora
|
||||
# versions:
|
||||
# - all
|
||||
# - 25
|
||||
# - name: SomePlatform
|
||||
# versions:
|
||||
# - all
|
||||
# - 1.0
|
||||
# - 7
|
||||
# - 99.99
|
||||
|
||||
galaxy_tags: []
|
||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||
# remove the '[]' above, if you add tags to this list.
|
||||
#
|
||||
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
||||
# Maximum 20 tags per role.
|
||||
|
||||
dependencies: []
|
||||
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
||||
# if you add dependencies to this list.
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
|
||||
- name: Install Agent2 Debian packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ debian_agent_packages }}"
|
||||
tags:
|
||||
- install_srv
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Install packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ rhel_agent_packages }}"
|
||||
tags:
|
||||
- install_srv
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Find Group
|
||||
set_fact:
|
||||
my_group: "{{ group_names | first }}"
|
||||
|
||||
- name: Créer la liste des hôtes correspondant aux rôles cibles
|
||||
set_fact:
|
||||
hotes_filtres: >-
|
||||
{{ groups[my_group] |
|
||||
map('extract', hostvars) |
|
||||
selectattr('role', 'in', roles_cibles) |
|
||||
map(attribute='inventory_hostname') |
|
||||
list }}
|
||||
|
||||
- name: Generate Server List
|
||||
set_fact:
|
||||
Server: "{{ hotes_filtres | join(',') }}"
|
||||
|
||||
- name: Generate ActiveServer List
|
||||
set_fact:
|
||||
ServerActive: "{{ hotes_filtres | join(';') }}"
|
||||
|
||||
- name: Generate agent2 config
|
||||
ansible.builtin.template:
|
||||
src: zabbix_agent2.conf.j2
|
||||
dest: /etc/zabbix/zabbix_agent2.conf
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
mode: 0640
|
||||
|
||||
- name: Create cert directory if zabbix_crypt=="tls"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/zabbix/certs"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Copy Certificats
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "/etc/zabbix/certs/{{ item }}"
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
loop:
|
||||
- "{{ zabbix_ca }}.crt"
|
||||
- "{{ zabbix_agent }}.crt"
|
||||
- "{{ zabbix_agent }}.key"
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Enable and start service zabbix agent2
|
||||
ansible.builtin.service:
|
||||
name: "{{ item }}"
|
||||
state: restarted
|
||||
enabled: true
|
||||
loop:
|
||||
- zabbix-agent2
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
|
||||
|
||||
- name: Install RHEL packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ rhel_db_packages }}"
|
||||
tags:
|
||||
- install_db
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Install Debian packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ debian_db_packages }}"
|
||||
tags:
|
||||
- install_db
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
- name: Enable and start service postgresl
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: started
|
||||
enabled: yes
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
- name: Generate create db script
|
||||
ansible.builtin.template:
|
||||
src: create_db.j2
|
||||
dest: /tmp/create_db.sql
|
||||
owner: postgres
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
- name: Run create db script
|
||||
ansible.builtin.shell: su - postgres -c 'psql -f /tmp/create_db.sql'
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
- name: Add zabbix user to pg_hba
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf
|
||||
insertafter: '# Database administrative login by Unix domain socket'
|
||||
line: "local {{ db_name }} {{ db_user }} trust"
|
||||
firstmatch: yes
|
||||
state: present
|
||||
|
||||
- name: Find Group
|
||||
set_fact:
|
||||
my_group: "{{ group_names | first }}"
|
||||
|
||||
- name: Créer les entrées pg_hba pour tous les hosts avec rôle 'srv'
|
||||
lineinfile:
|
||||
path: /etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf
|
||||
line: "host {{ db_name }} {{ db_user }} {{ hostvars[item]['ansible_default_ipv4']['address'] }}/32 md5"
|
||||
state: present
|
||||
loop: "{{ groups[my_group] }}"
|
||||
when:
|
||||
- hostvars[item].role is defined
|
||||
- hostvars[item].role == 'srv' or hostvars[item].role == 'front'
|
||||
- hostvars[item]['ansible_default_ipv4'] is defined
|
||||
|
||||
- name: Configure postgres Listen address
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/postgresql/17/main/postgresql.conf
|
||||
regexp: '^#listen_addresses = .*'
|
||||
line: "listen_addresses = '*'"
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
|
||||
- name: Restart postgresql
|
||||
service:
|
||||
name: postgresql
|
||||
state: restarted
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
- name: Populate zabbix database
|
||||
ansible.builtin.shell: 'zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | psql -Uzabbix zabbix'
|
||||
tags:
|
||||
- install_db
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
- name: Install RHEL Front
|
||||
when: ansible_os_family == "RedHat"
|
||||
block:
|
||||
- name: Install packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ rhel_front_packages }}"
|
||||
tags:
|
||||
- install_front
|
||||
- name: Generate front php config
|
||||
ansible.builtin.template:
|
||||
src: zabbix.conf.php.j2
|
||||
dest: /usr/share/zabbix/conf/zabbix.conf.php
|
||||
owner: root
|
||||
group: root
|
||||
mode: 644
|
||||
tags:
|
||||
- install_front
|
||||
|
||||
- name: Install Debian Front
|
||||
when: ansible_os_family == "Debian"
|
||||
block:
|
||||
- name: Install Debian packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ debian_front_packages }}"
|
||||
tags:
|
||||
- install_front
|
||||
|
||||
- name: Configure nginx port
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/zabbix/nginx.conf
|
||||
regexp: 'listen 8080;'
|
||||
line: " listen 80;"
|
||||
tags:
|
||||
- install_srv
|
||||
|
||||
- name: Configure nginx url
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/zabbix/nginx.conf
|
||||
regexp: 'server_name example.com;'
|
||||
line: " server_name {{ inventory_hostname }};"
|
||||
tags:
|
||||
- install_srv
|
||||
notify: Restart nginx
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
- name: Proxy - Install Debian Proxy packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ debian_proxy_packages }}"
|
||||
tags:
|
||||
- install_proxy
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
|
||||
- name: Proxy - Install RedHat packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ rhel_proxy_packages }}"
|
||||
tags:
|
||||
- install_proxy
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Proxy - Enable and start service mariadb
|
||||
ansible.builtin.service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Generate mariadb proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db.j2
|
||||
dest: /tmp/create_proxy_db.sql
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Create mariadb proxy database
|
||||
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Populate mariadb proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Find Group
|
||||
set_fact:
|
||||
my_group: "{{ group_names | first }}"
|
||||
|
||||
- name: Proxy - Génération la liste des servers
|
||||
set_fact:
|
||||
hotes_filtres: >-
|
||||
{{ groups[my_group] |
|
||||
map('extract', hostvars) |
|
||||
selectattr('role', 'in', 'srv') |
|
||||
map(attribute='inventory_hostname') |
|
||||
list }}
|
||||
|
||||
- name: Proxy - Set fact Server
|
||||
set_fact:
|
||||
Server: "{{ hotes_filtres | join(';') }}"
|
||||
|
||||
- name: Proxy - Generate config
|
||||
ansible.builtin.template:
|
||||
src: zabbix_proxy.conf.j2
|
||||
dest: /etc/zabbix/zabbix_proxy.conf
|
||||
owner: root
|
||||
group: zabbix
|
||||
mode: 400
|
||||
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Create certificats directory
|
||||
ansible.builtin.file:
|
||||
path: "/etc/zabbix/certs"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Proxy - Copy certificats
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "/etc/zabbix/certs/{{ item }}"
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
loop:
|
||||
- "{{ zabbix_ca}}.crt"
|
||||
- "{{ zabbix_proxy}}.crt"
|
||||
- "{{ zabbix_proxy}}.key"
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Proxy - Enable and start service zabbix proxy
|
||||
ansible.builtin.service:
|
||||
name: "{{ item }}"
|
||||
state: restarted
|
||||
enabled: true
|
||||
loop:
|
||||
- zabbix-proxy
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
- name: Install Debian packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ debian_srv_packages }}"
|
||||
tags:
|
||||
- install_srv
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
|
||||
- name: Install packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ rhel_srv_packages }}"
|
||||
tags:
|
||||
- install_srv
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: Generate srv config
|
||||
ansible.builtin.template:
|
||||
src: zabbix_server.conf.j2
|
||||
dest: /etc/zabbix/zabbix_server.conf
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
mode: 0640
|
||||
tags:
|
||||
- install_srv
|
||||
|
||||
- name: Create cert directory if zabbix_crypt=="tls"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/zabbix/certs"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Copy Certificats
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "/etc/zabbix/certs/{{ item }}"
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
loop:
|
||||
- "{{ zabbix_ca}}.crt"
|
||||
- "{{ zabbix_server}}.crt"
|
||||
- "{{ zabbix_server}}.key"
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
- name: Enable and start service zabbix server
|
||||
ansible.builtin.service:
|
||||
name: "{{ item }}"
|
||||
state: restarted
|
||||
enabled: true
|
||||
loop:
|
||||
- zabbix-server
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
# tasks file for zabbix
|
||||
- name: check OS version
|
||||
debug: var=ansible_os_family
|
||||
- name: Prepare RHEL
|
||||
block:
|
||||
- name: Alma Repo
|
||||
ansible.builtin.shell:
|
||||
cmd: rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest.el9.noarch.rpm
|
||||
- name: disable firewall
|
||||
ansible.builtin.service:
|
||||
name: firewalld
|
||||
state: stopped
|
||||
enabled: false
|
||||
- name: clean repo
|
||||
ansible.builtin.shell:
|
||||
cmd: dnf clean all
|
||||
when: ansible_os_family == "RedHat"
|
||||
- name: Prepare Debian
|
||||
block:
|
||||
- name: Debian Repo
|
||||
ansible.builtin.apt:
|
||||
deb: https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.4+debian13_all.deb
|
||||
- name: Mise à jour le cache des paquets
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
|
||||
- name: Install Database
|
||||
when: role == "db"
|
||||
block:
|
||||
- name: Install Zabbix DB
|
||||
ansible.builtin.include_tasks: install-db.yml
|
||||
when: role == "db"
|
||||
tags:
|
||||
- database
|
||||
tags:
|
||||
- install_db
|
||||
|
||||
- name: Install server
|
||||
when: role == "srv"
|
||||
block:
|
||||
- name: Install Zabbix Server
|
||||
ansible.builtin.include_tasks: install-srv.yml
|
||||
when: role == "srv"
|
||||
tags:
|
||||
- install_srv
|
||||
|
||||
- name: Install zabbix_proxy
|
||||
when: role == "proxy"
|
||||
block:
|
||||
- name: Install Zabbix Proxy
|
||||
ansible.builtin.include_tasks: install-proxy.yml
|
||||
when: role == "proxy"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Install Front
|
||||
when: role == "front"
|
||||
block:
|
||||
- name: Install Zabbix Front
|
||||
ansible.builtin.include_tasks: install-front.yml
|
||||
when: role == "front"
|
||||
tags:
|
||||
- install_front
|
||||
|
||||
- name: Install Agent
|
||||
block:
|
||||
- name: Install Zabbix Agent
|
||||
ansible.builtin.include_tasks: install-agent2.yml
|
||||
tags:
|
||||
- install_agent
|
||||
- never
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
DROP DATABASE IF EXISTS {{ db_name }};
|
||||
DROP USER IF EXISTS {{ db_user }};
|
||||
CREATE DATABASE {{ db_name }};
|
||||
CREATE USER {{ db_user }} WITH ENCRYPTED PASSWORD '{{ db_passwd }}';
|
||||
GRANT ALL PRIVILEGES ON {{ db_name }} TO {{ db_user }};
|
||||
ALTER DATABASE {{ db_name }} OWNER TO {{ db_user }};
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
DROP DATABASE IF EXISTS {{proxy_db_name}};
|
||||
DROP USER IF EXISTS '{{proxy_db_user}}'@'localhost';
|
||||
create database {{proxy_db_name}} character set utf8mb4 collate utf8mb4_bin;
|
||||
create user {{proxy_db_user}}@localhost identified by '{{proxy_db_passwd}}';
|
||||
grant all privileges on {{proxy_db_user}}.* to {{proxy_db_name}}@localhost;
|
||||
set global log_bin_trust_function_creators = 1;
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
// Zabbix GUI configuration file.
|
||||
|
||||
$DB['TYPE'] = 'MYSQL';
|
||||
$DB['SERVER'] = '{{ db_host }}';
|
||||
$DB['PORT'] = '{{ db_port }}';
|
||||
$DB['DATABASE'] = '{{ db_name }}';
|
||||
$DB['USER'] = '{{ db_user }}';
|
||||
$DB['PASSWORD'] = '{{ db_passwd }}';
|
||||
|
||||
// Schema name. Used for PostgreSQL.
|
||||
$DB['SCHEMA'] = '';
|
||||
|
||||
// Used for TLS connection.
|
||||
$DB['ENCRYPTION'] = false;
|
||||
$DB['KEY_FILE'] = '';
|
||||
$DB['CERT_FILE'] = '';
|
||||
$DB['CA_FILE'] = '';
|
||||
$DB['VERIFY_HOST'] = true;
|
||||
$DB['CIPHER_LIST'] = '';
|
||||
|
||||
// Vault configuration. Used if database credentials are stored in Vault secrets manager.
|
||||
$DB['VAULT'] = '';
|
||||
$DB['VAULT_URL'] = '';
|
||||
$DB['VAULT_PREFIX'] = '';
|
||||
$DB['VAULT_DB_PATH'] = '';
|
||||
$DB['VAULT_TOKEN'] = '';
|
||||
$DB['VAULT_CERT_FILE'] = '';
|
||||
$DB['VAULT_KEY_FILE'] = '';
|
||||
// Uncomment to bypass local caching of credentials.
|
||||
// $DB['VAULT_CACHE'] = true;
|
||||
|
||||
// Uncomment and set to desired values to override Zabbix hostname/IP and port.
|
||||
// $ZBX_SERVER = '';
|
||||
// $ZBX_SERVER_PORT = '';
|
||||
|
||||
$ZBX_SERVER_NAME = '';
|
||||
|
||||
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
|
||||
|
||||
// Uncomment this block only if you are using Elasticsearch.
|
||||
// Elasticsearch url (can be string if same url is used for all types).
|
||||
//$HISTORY['url'] = [
|
||||
// 'uint' => 'http://localhost:9200',
|
||||
// 'text' => 'http://localhost:9200'
|
||||
//];
|
||||
// Value types stored in Elasticsearch.
|
||||
//$HISTORY['types'] = ['uint', 'text'];
|
||||
|
||||
// Used for SAML authentication.
|
||||
// Uncomment to override the default paths to SP private key, SP and IdP X.509 certificates, and to set extra settings.
|
||||
//$SSO['SP_KEY'] = 'conf/certs/sp.key';
|
||||
//$SSO['SP_CERT'] = 'conf/certs/sp.crt';
|
||||
//$SSO['IDP_CERT'] = 'conf/certs/idp.crt';
|
||||
//$SSO['SETTINGS'] = [];
|
||||
|
||||
// If set to false, support for HTTP authentication will be disabled.
|
||||
// $ALLOW_HTTP_AUTH = true;
|
||||
|
|
@ -0,0 +1,590 @@
|
|||
# This is a configuration file for Zabbix agent 2 (Unix)
|
||||
# To get more information about Zabbix, visit https://www.zabbix.com
|
||||
|
||||
############ GENERAL PARAMETERS #################
|
||||
|
||||
### Option: PidFile
|
||||
# Name of PID file.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# PidFile=/tmp/zabbix_agent2.pid
|
||||
|
||||
PidFile=/run/zabbix/zabbix_agent2.pid
|
||||
|
||||
### Option: LogType
|
||||
# Specifies where log messages are written to:
|
||||
# system - syslog
|
||||
# file - file specified with LogFile parameter
|
||||
# console - standard output
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# LogType=file
|
||||
|
||||
### Option: LogFile
|
||||
# Log file name for LogType 'file' parameter.
|
||||
#
|
||||
# Mandatory: yes, if LogType is set to file, otherwise no
|
||||
# Default:
|
||||
# LogFile=/tmp/zabbix_agent2.log
|
||||
|
||||
LogFile=/var/log/zabbix/zabbix_agent2.log
|
||||
|
||||
### Option: LogFileSize
|
||||
# Maximum size of log file in MB.
|
||||
# 0 - disable automatic log rotation.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-1024
|
||||
# Default:
|
||||
# LogFileSize=1
|
||||
|
||||
LogFileSize=0
|
||||
|
||||
### Option: DebugLevel
|
||||
# Specifies debug level:
|
||||
# 0 - basic information about starting and stopping of Zabbix processes
|
||||
# 1 - critical information
|
||||
# 2 - error information
|
||||
# 3 - warnings
|
||||
# 4 - for debugging (produces lots of information)
|
||||
# 5 - extended debugging (produces even more information)
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-5
|
||||
# Default:
|
||||
# DebugLevel=3
|
||||
|
||||
### Option: SourceIP
|
||||
# Source IP address for outgoing connections.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# SourceIP=
|
||||
|
||||
##### Passive checks related
|
||||
|
||||
### Option: Server
|
||||
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
|
||||
# Incoming connections will be accepted only from the hosts listed here.
|
||||
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
|
||||
# and '::/0' will allow any IPv4 or IPv6 address.
|
||||
# '0.0.0.0/0' can be used to allow any IPv4 address.
|
||||
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
|
||||
#
|
||||
# If left empty or not set will disable passive checks, and Zabbix agent 2 will not listen on the ListenPort.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# Server=
|
||||
|
||||
Server={{Server}}
|
||||
### Option: ListenPort
|
||||
# Agent will listen on this port for connections from the server.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1024-32767
|
||||
# Default:
|
||||
# ListenPort=10050
|
||||
|
||||
### Option: ListenIP
|
||||
# List of comma delimited IP addresses that the agent should listen on.
|
||||
# First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# ListenIP=0.0.0.0
|
||||
|
||||
### Option: StatusPort
|
||||
# Agent will listen on this port for HTTP status requests.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1024-32767
|
||||
# Default:
|
||||
# StatusPort=
|
||||
|
||||
##### Active checks related
|
||||
|
||||
### Option: ServerActive
|
||||
# Zabbix server/proxy address or cluster configuration to get active checks from.
|
||||
# Server/proxy address is IP address or DNS name and optional port separated by colon.
|
||||
# Cluster configuration is one or more server or proxy group member addresses separated by semicolon.
|
||||
# Multiple Zabbix servers/clusters and Zabbix proxies can be specified, separated by comma.
|
||||
# Unless using proxy groups, more than one Zabbix proxy should not be specified from each Zabbix server/cluster.
|
||||
# If Zabbix proxy is specified then Zabbix server/cluster for that proxy should not be specified.
|
||||
# Multiple comma-delimited addresses can be provided to use several independent Zabbix servers in parallel. Spaces are allowed.
|
||||
# If port is not specified, default port is used.
|
||||
# IPv6 addresses must be enclosed in square brackets if port for that host is specified.
|
||||
# If port is not specified, square brackets for IPv6 addresses are optional.
|
||||
# If this parameter is not specified, active checks are disabled.
|
||||
# Example for Zabbix proxy:
|
||||
# ServerActive=127.0.0.1:10051
|
||||
# Example for Zabbix proxy group:
|
||||
# ServerActive=proxy1.example.com;proxy2.example.com;proxy3.example.com;proxy4.example.com;proxy5.example.com
|
||||
# Example for multiple servers:
|
||||
# ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
|
||||
# Example for high availability:
|
||||
# ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051;zabbix.cluster.node3
|
||||
# Example for high availability with two clusters and one server:
|
||||
# ServerActive=zabbix.cluster.node1;zabbix.cluster.node2:20051,zabbix.cluster2.node1;zabbix.cluster2.node2,zabbix.domain
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
ServerActive={{ServerActive}}
|
||||
|
||||
### Option: Hostname
|
||||
# List of comma delimited unique, case sensitive hostnames.
|
||||
# Required for active checks and must match hostnames as configured on the server.
|
||||
# Value is acquired from HostnameItem if undefined.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# Hostname=
|
||||
|
||||
Hostname={{ansible_fqdn}}
|
||||
|
||||
### Option: HostnameItem
|
||||
# Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
|
||||
# Does not support UserParameters or aliases.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# HostnameItem=system.hostname
|
||||
|
||||
### Option: HostMetadata
|
||||
# Optional parameter that defines host metadata.
|
||||
# Host metadata is used at host auto-registration process.
|
||||
# An agent will issue an error and not start if the value is over limit of 2034 bytes.
|
||||
# If not defined, value will be acquired from HostMetadataItem.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-2034 bytes
|
||||
# Default:
|
||||
# HostMetadata=
|
||||
|
||||
### Option: HostMetadataItem
|
||||
# Optional parameter that defines an item used for getting host metadata.
|
||||
# Host metadata is used at host auto-registration process.
|
||||
# During an auto-registration request an agent will log a warning message if
|
||||
# the value returned by specified item is over limit of 65535 characters.
|
||||
# This option is only used when HostMetadata is not defined.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# HostMetadataItem=
|
||||
|
||||
### Option: HostInterface
|
||||
# Optional parameter that defines host interface.
|
||||
# Host interface is used at host auto-registration process.
|
||||
# An agent will issue an error and not start if the value is over limit of 255 characters.
|
||||
# If not defined, value will be acquired from HostInterfaceItem.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-255 characters
|
||||
# Default:
|
||||
# HostInterface=
|
||||
|
||||
### Option: HostInterfaceItem
|
||||
# Optional parameter that defines an item used for getting host interface.
|
||||
# Host interface is used at host auto-registration process.
|
||||
# During an auto-registration request an agent will log a warning message if
|
||||
# the value returned by specified item is over limit of 255 characters.
|
||||
# This option is only used when HostInterface is not defined.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# HostInterfaceItem=
|
||||
|
||||
### Option: RefreshActiveChecks
|
||||
# How often list of active checks is refreshed, in seconds.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1-86400
|
||||
# Default:
|
||||
# RefreshActiveChecks=5
|
||||
|
||||
### Option: BufferSend
|
||||
# Do not keep data longer than N seconds in buffer.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1-3600
|
||||
# Default:
|
||||
# BufferSend=5
|
||||
|
||||
### Option: BufferSize
|
||||
# Maximum number of values in a memory buffer. The agent will send
|
||||
# all collected data to Zabbix Server or Proxy if the buffer is full.
|
||||
# Option is not valid if EnablePersistentBuffer=1
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 2-65535
|
||||
# Default:
|
||||
# BufferSize=1000
|
||||
|
||||
### Option: EnablePersistentBuffer
|
||||
# Enable usage of local persistent storage for active items.
|
||||
# 0 - disabled, in-memory buffer is used (default); 1 - use persistent buffer
|
||||
# Mandatory: no
|
||||
# Range: 0-1
|
||||
# Default:
|
||||
# EnablePersistentBuffer=0
|
||||
|
||||
### Option: PersistentBufferPeriod
|
||||
# Zabbix Agent2 will keep data for this time period in case of no
|
||||
# connectivity with Zabbix server or proxy. Older data will be lost. Log data will be preserved.
|
||||
# Option is valid if EnablePersistentBuffer=1
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1m-365d
|
||||
# Default:
|
||||
# PersistentBufferPeriod=1h
|
||||
|
||||
### Option: PersistentBufferFile
|
||||
# Full filename. Zabbix Agent2 will keep SQLite database in this file.
|
||||
# Option is valid if EnablePersistentBuffer=1
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# PersistentBufferFile=
|
||||
|
||||
### Option: HeartbeatFrequency
|
||||
# Frequency of heartbeat messages in seconds.
|
||||
# Used for monitoring availability of active checks.
|
||||
# 0 - heartbeat messages disabled.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-3600
|
||||
# Default: 60
|
||||
# HeartbeatFrequency=
|
||||
|
||||
############ ADVANCED PARAMETERS #################
|
||||
|
||||
### Option: Alias
|
||||
# Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
|
||||
# Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
|
||||
# Different Alias keys may reference the same item key.
|
||||
# For example, to retrieve the ID of user 'zabbix':
|
||||
# Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
|
||||
# Now shorthand key zabbix.userid may be used to retrieve data.
|
||||
# Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range:
|
||||
# Default:
|
||||
|
||||
### Option: Timeout
|
||||
# Specifies how long to wait (in seconds) for establishing connection and exchanging data with Zabbix proxy or server.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1-30
|
||||
# Default:
|
||||
# Timeout=3
|
||||
|
||||
### Option:PluginTimeout
|
||||
# Timeout for connections with external plugins.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1-30
|
||||
# Default: <Global timeout>
|
||||
# PluginTimeout=
|
||||
|
||||
### Option:PluginSocket
|
||||
# Path to unix socket for external plugin communications.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:/tmp/agent.plugin.sock
|
||||
# PluginSocket=
|
||||
|
||||
PluginSocket=/run/zabbix/agent.plugin.sock
|
||||
|
||||
####### USER-DEFINED MONITORED PARAMETERS #######
|
||||
|
||||
### Option: UnsafeUserParameters
|
||||
# Allow all characters to be passed in arguments to user-defined parameters.
|
||||
# The following characters are not allowed:
|
||||
# \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
|
||||
# Additionally, newline characters are not allowed.
|
||||
# 0 - do not allow
|
||||
# 1 - allow
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-1
|
||||
# Default:
|
||||
# UnsafeUserParameters=0
|
||||
|
||||
### Option: UserParameter
|
||||
# User-defined parameter to monitor. There can be several user-defined parameters.
|
||||
# Format: UserParameter=<key>,<shell command>
|
||||
# See 'zabbix_agentd' directory for examples.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# UserParameter=
|
||||
|
||||
### Option: UserParameterDir
|
||||
# Directory to execute UserParameter commands from. Only one entry is allowed.
|
||||
# When executing UserParameter commands the agent will change the working directory to the one
|
||||
# specified in the UserParameterDir option.
|
||||
# This way UserParameter commands can be specified using the relative ./ prefix.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# UserParameterDir=
|
||||
|
||||
### Option: ControlSocket
|
||||
# The control socket, used to send runtime commands with '-R' option.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# ControlSocket=
|
||||
|
||||
ControlSocket=/run/zabbix/agent.sock
|
||||
|
||||
####### TLS-RELATED PARAMETERS #######
|
||||
|
||||
### Option: TLSConnect
|
||||
# How the agent should connect to server or proxy. Used for active checks.
|
||||
# Only one value can be specified:
|
||||
# unencrypted - connect without encryption
|
||||
# psk - connect using TLS and a pre-shared key
|
||||
# cert - connect using TLS and a certificate
|
||||
#
|
||||
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
|
||||
# Default:
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSConnect=cert
|
||||
{% else %}
|
||||
TLSConnect=unencrypted
|
||||
{% endif %}
|
||||
### Option: TLSAccept
|
||||
# What incoming connections to accept.
|
||||
# Multiple values can be specified, separated by comma:
|
||||
# unencrypted - accept connections without encryption
|
||||
# psk - accept connections secured with TLS and a pre-shared key
|
||||
# cert - accept connections secured with TLS and a certificate
|
||||
#
|
||||
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
|
||||
# Default:
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSAccept=cert
|
||||
{% else %}
|
||||
TLSAccept=unencrypted
|
||||
{% endif %}
|
||||
|
||||
### Option: TLSCAFile
|
||||
# Full pathname of a file containing the top-level CA(s) certificates for
|
||||
# peer certificate verification.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSCAFile=/etc/zabbix/certs/{{zabbix_ca}}.crt
|
||||
{% else %}
|
||||
# TLSCAFile=
|
||||
{% endif %}
|
||||
|
||||
### Option: TLSCRLFile
|
||||
# Full pathname of a file containing revoked certificates.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCRLFile=
|
||||
|
||||
### Option: TLSServerCertIssuer
|
||||
# Allowed server certificate issuer.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSServerCertIssuer=
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSServerCertIssuer={{TLSServerCertIssuer}}
|
||||
{% else %}
|
||||
# TLSServerCertIssuer=
|
||||
{% endif %}
|
||||
### Option: TLSServerCertSubject
|
||||
# Allowed server certificate subject.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSServerCertSubject=
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSServerCertSubject={{TLSServerCertSubject}}
|
||||
{% else %}
|
||||
# TLSServerCertSubject=
|
||||
{% endif %}
|
||||
### Option: TLSCertFile
|
||||
# Full pathname of a file containing the agent certificate or certificate chain.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSCertFile=/etc/zabbix/certs/{{zabbix_agent}}.crt
|
||||
{% else %}
|
||||
# TLSCertFile=
|
||||
{% endif %}
|
||||
### Option: TLSKeyFile
|
||||
# Full pathname of a file containing the agent private key.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
{% if zabbix_crypt=="tls" %}
|
||||
TLSKeyFile=/etc/zabbix/certs/{{zabbix_agent}}.key
|
||||
{% else %}
|
||||
# TLSKeyFile=
|
||||
{% endif %}
|
||||
|
||||
|
||||
### Option: TLSPSKIdentity
|
||||
# Unique, case sensitive string used to identify the pre-shared key.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSPSKIdentity=
|
||||
|
||||
### Option: TLSPSKFile
|
||||
# Full pathname of a file containing the pre-shared key.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSPSKFile=
|
||||
|
||||
####### PLUGIN-SPECIFIC PARAMETERS #######
|
||||
|
||||
### Option: Plugins
|
||||
# A plugin can have one or more plugin specific configuration parameters in format:
|
||||
# Plugins.<PluginName>.<Parameter1>=<value1>
|
||||
# Plugins.<PluginName>.<Parameter2>=<value2>
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range:
|
||||
# Default:
|
||||
|
||||
### Option: Plugins.Log.MaxLinesPerSecond
|
||||
# Maximum number of new lines the agent will send per second to Zabbix Server
|
||||
# or Proxy processing 'log' and 'logrt' active checks.
|
||||
# The provided value will be overridden by the parameter 'maxlines',
|
||||
# provided in 'log' or 'logrt' item keys.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 1-1000
|
||||
# Default:
|
||||
# Plugins.Log.MaxLinesPerSecond=20
|
||||
|
||||
### Option: AllowKey
|
||||
# Allow execution of item keys matching pattern.
|
||||
# Multiple keys matching rules may be defined in combination with DenyKey.
|
||||
# Key pattern is wildcard expression, which support "*" character to match any number of any characters in certain position. It might be used in both key name and key arguments.
|
||||
# Parameters are processed one by one according their appearance order.
|
||||
# If no AllowKey or DenyKey rules defined, all keys are allowed.
|
||||
#
|
||||
# Mandatory: no
|
||||
|
||||
### Option: DenyKey
|
||||
# Deny execution of items keys matching pattern.
|
||||
# Multiple keys matching rules may be defined in combination with AllowKey.
|
||||
# Key pattern is wildcard expression, which support "*" character to match any number of any characters in certain position. It might be used in both key name and key arguments.
|
||||
# Parameters are processed one by one according their appearance order.
|
||||
# If no AllowKey or DenyKey rules defined, all keys are allowed.
|
||||
# Unless another system.run[*] rule is specified DenyKey=system.run[*] is added by default.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# DenyKey=system.run[*]
|
||||
|
||||
### Option: Plugins.SystemRun.LogRemoteCommands
|
||||
# Enable logging of executed shell commands as warnings.
|
||||
# 0 - disabled
|
||||
# 1 - enabled
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# Plugins.SystemRun.LogRemoteCommands=0
|
||||
|
||||
### Option: ForceActiveChecksOnStart
|
||||
# Perform active checks immediately after restart for first received configuration.
|
||||
# Also available as per plugin configuration, example: Plugins.Uptime.System.ForceActiveChecksOnStart=1
|
||||
#
|
||||
# Mandatory: no
|
||||
# Range: 0-1
|
||||
# Default:
|
||||
# ForceActiveChecksOnStart=0
|
||||
|
||||
# Include configuration files for plugins
|
||||
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf
|
||||
|
||||
####### For advanced users - TLS ciphersuite selection criteria #######
|
||||
|
||||
### Option: TLSCipherCert13
|
||||
# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3.
|
||||
# Override the default ciphersuite selection criteria for certificate-based encryption.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherCert13=
|
||||
|
||||
### Option: TLSCipherCert
|
||||
# OpenSSL (TLS 1.2) cipher string.
|
||||
# Override the default ciphersuite selection criteria for certificate-based encryption.
|
||||
# Example:
|
||||
# EECDH+aRSA+AES128:RSA+aRSA+AES128
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherCert=
|
||||
|
||||
### Option: TLSCipherPSK13
|
||||
# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3.
|
||||
# Override the default ciphersuite selection criteria for PSK-based encryption.
|
||||
# Example:
|
||||
# TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherPSK13=
|
||||
|
||||
### Option: TLSCipherPSK
|
||||
# OpenSSL (TLS 1.2) cipher string.
|
||||
# Override the default ciphersuite selection criteria for PSK-based encryption.
|
||||
# Example:
|
||||
# kECDHEPSK+AES128:kPSK+AES128
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherPSK=
|
||||
|
||||
### Option: TLSCipherAll13
|
||||
# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3.
|
||||
# Override the default ciphersuite selection criteria for certificate- and PSK-based encryption.
|
||||
# Example:
|
||||
# TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherAll13=
|
||||
|
||||
### Option: TLSCipherAll
|
||||
# OpenSSL (TLS 1.2) cipher string.
|
||||
# Override the default ciphersuite selection criteria for certificate- and PSK-based encryption.
|
||||
# Example:
|
||||
# EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# TLSCipherAll=
|
||||
|
||||
####### Additional configuration files #######
|
||||
|
||||
### Option: Include
|
||||
# You may include individual files or all files in a directory in the configuration file.
|
||||
# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
|
||||
#
|
||||
# Mandatory: no
|
||||
# Default:
|
||||
# Include=
|
||||
|
||||
Include=/etc/zabbix/zabbix_agent2.d/*.conf
|
||||
|
||||
# Include=/usr/local/etc/zabbix_agent2.userparams.conf
|
||||
# Include=/usr/local/etc/zabbix_agent2.conf.d/
|
||||
# Include=/usr/local/etc/zabbix_agent2.conf.d/*.conf
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,2 @@
|
|||
localhost
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
- hosts: localhost
|
||||
remote_user: root
|
||||
roles:
|
||||
- zabbix
|
||||
|
|
@ -0,0 +1 @@
|
|||
# vars file for zabbix
|
||||
Loading…
Reference in New Issue