Zabbix 7 LTS的初始化 | Word Count: 1.8k | Reading Time: 8mins | Post Views:
Zabbix概述 Zabbix是⼀个基于WEB界⾯的提供分布式系统监视以及⽹络监视功能的企业级的开源解决⽅案,由 Alexei Vladishev 在1991年的莫斯科写下第一版,目前由 Zabbix SIA 主导开发和支持。Zabbix能监视各种⽹络参数,保证服务器系统的安全运营;并提供各种通知机制以让系统管理员快速定位/解决存在的各种问题。Zabbix主要由2部分构成,Zabbix server与可选组件Zabbix agent。Zabbix server可以通过SNMP,Zabbix agent,Ping,端⼝监视等⽅法提供对远程服务器/⽹络状态的监视,数据收集等功能,它可以运⾏在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。Zabbix 是免费的。Zabbix 是在 GPL 通用公共许可证第 2 版下编写和分发的。这意味着它的源代码是免费分发的,可供公众使用。
Zabbix是⼀款综合了数据收集、数据展⽰、数据提取、监控报警配置、⽤⼾展⽰等⽅⾯的⼀款综合运维监控平台。Zabbix学习⼊⻔较快,功能也很强⼤,是⼀个可以迅速⽤起来的监控软件,能够满⾜中⼩企业的监控报警需求,因此是中⼩型企业运维监控的⾸选平台。
Zabbix⽬前发布的版本有标准版和⻓期⽀持版(LTS)两种,LTS为Long Term Support的简写。Zabbix LTS版本,将为客⼾提供5年的⽀持服务。前三年完全⽀持与后两年有限制⽀持。前三年包括⼀般、关键、安全性问题解决,后两年包括关键、安全性问题解决。超出时间不提供技术⽀持服务。Zabbix标准版,发布计划周期为六个⽉,每六个⽉将有⼀个新的Zabbix稳定版本发布。⽬前Zabbix LTS最新版本为Zabbix 7.0 LTS。
2024.06 摄于广州海珠·广州医科大学第一附属医院住院部
Server端安装 数据库准备 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # 安装MySQL Server 8.0数据库 dnf -y install mysql-server # 指定客户端和服务端使用utf8来访问mariadb cat > /etc/my.cnf.d/charset.cnf <<'EOF' [mysqld] character-set-server = utf8mb4 [client] default-character-set = utf8mb4 EOF # 拉起服务 systemctl enable --now mysqld # 创建数据库 mysql -uroot << EOF CREATE USER zabbix@localhost IDENTIFIED BY 'zabbix'; CREATE DATABASE zabbix CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin'; GRANT all privileges on zabbix.* to 'zabbix'@'localhost'; FLUSH PRIVILEGES; set global log_bin_trust_function_creators = 1; exit EOF # 访问测试 mysql -uzabbix -pzabbix -hlocalhost <<EOF show databases; exit EOF
服务端部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 # 获取Nginx官方源 cat > /etc/yum.repos.d/nginx.repo <<'EOF' [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true EOF # 使用Redhat系主机,如果开启EPEL,需要在epel的repo源中取消zabbix的安装包 rm -rf /etc/yum.repos.d/epel* cat > /etc/yum.repos.d/epel.repo <<'EOF' [epel] name=Extra Packages for Enterprise Linux $releasever - $basearch baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever excludepkgs=zabbix* EOF # 获取官方源 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm dnf clean all dnf makecache dnf install -y nginx php php-fpm dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent # 修改php-fpm时区 cat >> /etc/php-fpm.d/zabbix.conf <<EOF php_value[date.timezone] = Asia/Shanghai EOF # 导入数据库 zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix # 字体问题解决 dnf install -y mkfontdir mkfontscale wget https://dl.rockylinux.org/pub/rocky/8/AppStream/aarch64/os/Packages/w/wqy-microhei-fonts-0.2.0-0.22.beta.el8.noarch.rpm rpm -Uvh wqy-microhei-fonts-0.2.0-0.22.beta.el8.noarch.rpm # 字体备用站点 # wget https://abf-downloads.openmandriva.org/5.0/repository/x86_64/unsupported/release/fonts-ttf-wqy-zenhei-0.9.45-4-omv4002.noarch.rpm # rpm -Uvh fonts-ttf-wqy-zenhei-0.9.45-4-omv4002.noarch.rpm cd /etc/alternatives rm -rf zabbix-web-font ln -s /usr/share/fonts/wqy-microhei/wqy-microhei.ttc zabbix-web-font # ln -s /usr/share/fonts/TTF/wqy-zenhei/wqy-zenhei.ttc zabbix-web-fontcd ~ # 修改Zabbix Server配置文件 cat >>/etc/zabbix/zabbix_server.conf <<EOF DBPassword=zabbix DBSocket=/var/lib/mysql/mysql.sock EOF # 重新配置数据库全局属性 mysql -uroot << EOF set global log_bin_trust_function_creators = 0; exit EOF # 修改Nginx配置文件 sed 's/8080/80/g; s/example.com/zbx.sujx.net/g; s/#//g' /etc/nginx/conf.d/zabbix.conf # 启动进程 systemctl enable --now zabbix-server zabbix-agent nginx php-fpm # 锁定软件版本,防止意外升级 dnf install -y python3-dnf-plugin-versionlock dnf versionlock add zabbix-* mysql-server # 配置防火墙 systemctl enable --now firewalld firewall-cmd --permanent --add-service={http,https} firewall-cmd --permanent --add-port={10051/tcp,10050/tcp} firewall-cmd --reload
配置WEB
使用setup向导部署web ui
前置安装条件检查
配置数据库
配置时区和主题
安装结束
进入系统
Agent端部署 配置Yum源 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 使用Redhat系主机,如果开启EPEL,需要在epel的repo源中取消zabbix的安装包 # CentOS、RockyLinux、RHEL等RPM系主机的agent部署 rm -rf /etc/yum.repos.d/epel* cat > /etc/yum.repos.d/epel.repo <<'EOF' [epel] name=Extra Packages for Enterprise Linux $releasever - $basearch baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever excludepkgs=zabbix* EOF rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm dnf clean all dnf makecache # Ubuntu、Debian等deb系主机的部署 # wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu22.04_all.deb # dpkg -i ./zabbix-release_7.0-2+ubuntu22.04_all.deb # apt update
手动安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # CentOS、RockyLinux、RHEL等RPM系主机的agent部署 # 安装Agent2 dnf install zabbix-agent2 zabbix-agent2-plugin-* dnf install -y python3-dnf-plugin-versionlock dnf versionlock add zabbix-* # Ubuntu、Debian等deb系主机的部署 # apt install zabbix-agent2 zabbix-agent2-plugin-* # apt-mark hold zabbix-agent2* # 修改Agent2的配置文件 sed -i 's/Server=127.0.0.1/Server=zbx.sujx.net/; s/ServerActive=127.0.0.1/ServerActive=zbx.sujx.net/; s/Hostname=Zabbix server/# Hostname= Zabbix Agent/; s/# UnsafeUserParameters=0/UnsafeUserParameters=1/; s/# HostnameItem=system.hostname/HostnameItem=system.hostname/; s/# HostMetadata=/HostMetadata=linux zabbix.beijing/ ' /etc/zabbix/zabbix_agent2.conf # 启动服务 systemctl enable --now zabbix-agent2 # 配置防火墙 systemctl enable --now firewalld firewall-cmd --permanent --add-service=zabbix-agent firewall-cmd --reload
创建主机
查看视图
告警配置 电子邮件 添加邮件媒介
设置电子邮件SMTP
用户添加E-Mail通知
添加动作
启用“通知管理员”
配置发送条件
电话告警 可以使用饭碗告警 的邮件转电话方式来实现电话通知 。
自动化 自动化部署Agent 部署Ansible 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 # 创建目录 mkdir -p ~/ansible/{files,log,tmp,playbook,pem} touch ~/ansible/{inventory,ansible.cfg} dnf makecache dnf update # 配置证书 # 由于主机使用证书方式访问SSH,所以需要将pem文件放置到~/ansible/pem目录下 chmod 400 ~/ansible/pem/wulanchabu.pem dos2unix ~/ansible/pem/wulanchabu.pem # 安装Ansible dnf install -y ansible # 配置Ansible cat > ~/ansible/ansible.cfg <<'EOF' [defaults] inventory = ./inventory remote_tmp = ./tmp local_tmp = ./tmp log_path = ./log/ansible.log private_key_file = ./pem/wulanchabu.pem forks = 5 poll_interval = 15 transport = smart host_key_checking = False # [privilege_escalation] # become = True # become_method = sudo # become_user = root EOF cat >> ~/ansible/inventory <<'EOF' [MartixAccount] macc[20:39].sujx.net EOF # 校验 ansible all -m ping
批量部署 创建执行脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # !/bin/bash # touch /tmp/zabbix_agent_install.shrm -rf /etc/yum.repos.d/epel* cat > /etc/yum.repos.d/epel.repo <<'EOF' [epel] name=Extra Packages for Enterprise Linux $releasever - $basearch baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever excludepkgs=zabbix* EOF rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm dnf clean all dnf makecache dnf install -y zabbix-agent2 zabbix-agent2-plugin-* dnf install -y python3-dnf-plugin-versionlock dnf versionlock add zabbix-* sed -i 's/Server=127.0.0.1/Server=zbx.sujx.net/; s/ServerActive=127.0.0.1/ServerActive=zbx.sujx.net/; s/Hostname=Zabbix server/# Hostname= Zabbix Agent/; s/# UnsafeUserParameters=0/UnsafeUserParameters=1/; s/# HostnameItem=system.hostname/HostnameItem=system.hostname/; s/# HostMetadata=/HostMetadata=linux zabbix.beijing/ ' /etc/zabbix/zabbix_agent2.conf systemctl enable --now zabbix-agent2
Ansible部署 1 2 ansible all -m copy -a "src=/tmp/zabbix_agent_install.sh dest=/tmp/" ansible all -m shell -a 'sh /tmp/zabbix_agent_install.sh'
自动化添加主机 添加规则
启用动作