配置ansible
-
下载ansible
apt -y install ansible
-
配置ansible
mkdir /root/mansi
cd /root/mansi
touch ansible.cfg
touch hosts
[root@localhost mansi]# cat hosts
[agents]
agent1 ansible_host=10.6.10.2
agent2 ansible_host=10.6.10.3
agent3 ansible_host=10.6.10.4
[all:vars]
ansible_ssh_private_key_file=/root/mansi/key
ansible_python_interpreter = "/usr/bin/python3" #指定python解释器
root@ansible:~/mansi# cat ansible.cfg
[defaults]
inventory =/root/mansi/hosts
-
免密操作
ssh-keygen -t rsa -b 2048 -N ' ' -f /root/mansi/key ## 创建密钥
-t 指定加密算法
-b 指定加密位数
-N 指定使用密钥时的密码
-f 指定密钥路径和文件名
ansible agents -m command -a 'ssh-copy-id -i /root/mansi/key.pub root@10.6.10.2' #用ssh-copy-id 传输公钥
ansible agents -m command -a 'ssh-copy-id -i /root/mansi/key.pub root@10.6.10.3'
ansible agents -m command -a 'ssh-copy-id -i /root/mansi/key.pub root@10.6.10.4'
客户机下载配置zabbix-agent2
-
下载1
ansible agents -m shell -a 'wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb'
ansible agents -m shell -a 'dpkg -i zabbix-release_latest+debian12_all.deb'
ansible agents -m shell -a 'apt update'
ansible agents -m shell -a 'apt install zabbix-agent2 zabbix-agent2-plugin-*'
ansible agents -m shell -a 'systemctl restart zabbix-agent2'
ansible agents -m shell -a 'systemctl enable zabbix-agent2'
-
下载2
vim zabbix.yml
---
- name: Install and configure Zabbix Agent 2 on agents
hosts: agents
become: yes
tasks:
- name: Download Zabbix repository package
shell: wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
- name: Install Zabbix repository package
shell: dpkg -i zabbix-release_latest+debian12_all.deb
- name: Update package lists
shell: apt update
- name: Install Zabbix Agent 2 and plugins
shell: apt install -y zabbix-agent2 zabbix-agent2-plugin-*
- name: Restart Zabbix Agent 2
shell: systemctl restart zabbix-agent2
- name: Enable Zabbix Agent 2 to start on boot
shell: systemctl enable zabbix-agent2
-
下载2的运行
ansible-playbook -i /root/mansi/hosts install_zabbix_repo.yml
-
修改配置文件
root@ansible:~/mansi# ansible agents -m shell -a "sed -i `s/Server=127.0.0.1/Server=10.6.10.1/g /etc/zabbix/zabbix_agent2.conf`"
服务端配置
-
下载zabbix-server
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
dpkg -i zabbix-release_latest+debian12_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent mariadb-server
-
MySQL
-
配置数据库
mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
-
导入数据库
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
-
开始禁用
# mysql -uroot -p password mysql> set global log_bin_trust_function_creators = 0; mysql> quit;
-
修改配置文件
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBPassword=password
-
启动服务
# systemctl restart zabbix-server zabbix-agent nginx
# systemctl enable zabbix-server zabbix-agent nginx
设置自动发现
网络发现:网络发现模块每次检测到服务和主机(IP)都会生成一个发现事件。
执行工作:所有工作都是居于发现事件的,基于事件的网络发现工作,可以根据设备类型、IP地址、状态、运行事件等进行配置。
创建主机:我们可以在执行工作过程中选择添加主机操作,包括添加主机至主机组、将主机链接到模板等。
移除主机:从Zabbix2.4.0开始,如果已发现的实体不在自动发现规则的IP范围内,那么由网络发现规则创建的主机将会被自动删除
-
创建自动发现规则
-
如果希望主机名称用hostname命令设置的主机名(不是IP地址),修改如下配置文件内容
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
#Hostname=server01
HostnameItem=system.hostname # 190行取消注释
[root@server01 ~]# systemctl restart zabbix-agent.service
-
创建自动发现动作
-
验证自动发现
自动注册
-
删除前面创建的自动发现
-
删除“告警”——>“动作”中刚才创建的发现动作
-
删除“数据采集”——>“自动发现”中刚才的创建自动发现规则
-
删除“数据采集”——>“主机”中自动发现的主机
-
客户端修改配置
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.93.101
ServerActive=192.168.93.101
Hostname=server01 ### 改名字不能和zabbix默认监控主机名一样
[root@server01 ~]# systemctl restart zabbix-agent.service
# 备注 可选择项
自动注册属于agent端的主动模式的功能,所以要设置ServerActive参数
可选参数:
HostnameItem=system.hostname:获取主机名的Key,当Hostname参数设置时,此参数无效
HostMetadata=Linux Linux_host:主机元数据标识
HostMetadataItem=system.uname:获取主机内核名称的Key,当HostMetadata设置时,此参数无效
-
创建自动注册动作
主动模式的创建
-
删除前面创建的自动注册
-
删除“告警”——>“动作”中刚才创建的自动注册动作
-
删除“数据采集”——>“主机”中自动注册的主机
-
在被监控端调整Agent为主动模式
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
#Server=192.168.93.101 # 主动模式需要注释掉此行
StartAgents=0 # 为server端的连接开启的进程,0表示关闭被动模式
ServerActive=192.168.93.101 # 主动模式的IP地址
Hostname=server01 # 客户端hostname,不配置则使用主机名
[root@server01 ~]# systemctl restart zabbix-agent.service
-
查看zabbix agent进程,此时已经没有了agent进程(在主动模式下,agent不再监听10050的端口)
[root@server01 ~]# netstat -anpt | grep 10050
-
添加主机
模板选择带有active的(本次使用的模板为Linux by Zabbix active)
-
查看添加结果
“数据采集”——>“主机”,查看监控到的主机列表
-
查看检测到的数据
-
“检测”——>“主机”,找到主机,查看“最新数据”和“图形”
-