zibbix
zibbix
一、zabbix简介
用通俗易懂的话来说,zabbix是一个监控系统,它可以帮助我们实时检查设备的状态,比如服务器、网络设备等。当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。同时,它还可以把收集到的数据转化成图表和报告,让我们更直观地了解设备的运行情况。
1.1 zabbix特性
数据采集:zabbix agent会定期收集设备的各种指标数据,比如CPU使用率、内存占用、网络流量等。这些数据会被zabbix server主动获取。
触发检测告警:zabbix会根据我们事先设定的阈值和触发条件,对采集到的数据进行检测。如果某个指标超过了阈值或满足了触发条件,zabbix会触发一个告警。zabbix会根据事先设置的通知方式,比如邮件、短信等,通知相关的人员或团队。这样我们可以及时知道设备出现了问题。
数据存储:zabbix将采集到的数据存储在数据库中。
数据展示:zabbix提供了丰富的可视化功能,可以将采集到的数据转化成各种图表和报表。这样我们可以直观地了解设备的运行状态和趋势。
1.2 zabbix结构
Zabbix server:收集监控数据,计算是否满足触发条件,向用户发送通知。
Zabbix database:所有配置信息和zabbix收集到的数据都被存储在数据库中。
Zabbix Web:为了在任何地方和任何平台都能轻松地访问zabbix,zabbix提供了基于Web的界面。该界面zabbix server的一部分,通常跟Zabbix server运行在同一台物理机器上。
Zabbix proxy:Zabbix proxy可以替Zabbix server收集性能和可用性数据。Proxy代理服务器是zabbix软件可选择部署的一部分。当然,Proxy代理服务器可以帮助单台Zabbix server分担负载压力。
Zabbix agent:Zabbix agents监控代理部署在监控目标上,主动监控本地资源和应用(硬件驱动,内存等)。
二、zabbix安装
2.1 关闭防火墙、selinux,配置yum源
# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld# 关闭selinuxsed -ri 's/(SELINUX=).*/\1disabled/' /etc/selinux/configreboot
# 配置yum源[root@zabbix-server ~]# mount /dev/cdrom /mnt/[root@zabbix-server ~]# cd /etc/yum.repos.d/[root@zabbix-server yum.repos.d]# rm -rf *[root@zabbix-server yum.repos.d]# vim server.repo[aa]name=aabaseurl=file:///mnt/BaseOSenabled=1gpgcheck=0[bb]name=bb1baseurl=file:///mnt/AppStreamenabled=1gpgcheck=0
2.2 安装工具包,设置时钟同步
# 安装工具包[root@zabbix-server ~]# yum -y install lrzsz tar net-tools chrony# 设置时钟同步[root@zabbix-server ~]# systemctl restart chronyd[root@zabbix-server ~]# systemctl enable chronydCreated symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service.[root@zabbix-server ~]# hwclock -w
2.3 安装zabbix源
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm[root@zabbix-server ~]# ls /etc/yum.repos.d/redhat.repo server.repo zabbix.repo zabbix-tools.repo
2.4 安装zabbix server、Web、agent
[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
2.5 安装并为zabbix配置数据库
安装数据库:
[root@zabbix-server ~]# yum -y install mariadb-server mariadb
初始化数据库:
# 启动数据库[root@zabbix-server ~]# systemctl restart mariadb.service [root@zabbix-server ~]# systemctl enable mariadb.service Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.# 初始化数据库[root@zabbix-server ~]# mysql_secure_installation......Switch to unix_socket authentication [Y/n] y......Change the root password? [Y/n] yNew password: Re-enter new password: ......Remove anonymous users? [Y/n] y......Disallow root login remotely? [Y/n] n......Remove test database and access to it? [Y/n] y......Reload privilege tables now? [Y/n] y......Thanks for using MariaDB!
配置数据库:
# 登录数据库[root@zabbix-server ~]# mysql -uroot -pEnter password: # 创建zabbix数据库MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;Query OK, 1 row affected (0.000 sec)# 创建zabbix用户MariaDB [(none)]> create user zabbix@localhost identified by '123456';Query OK, 0 rows affected (0.001 sec)# 为zabbix用户增加权限MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;Query OK, 0 rows affected (0.001 sec)# 开启全局logbin,方便导入数据MariaDB [(none)]> set global log_bin_trust_function_creators = 1;Query OK, 0 rows affected (0.000 sec)# 更新权限MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.000 sec)# 退出数据库MariaDB [(none)]> exitBye
导入zabbix表数据:
[root@zabbix-server ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixEnter password:
查看数据是否导入成功:
# 登录数据库[root@zabbix-server ~]# mysql -uroot -pEnter password: # 查看zabbix数据库MariaDB [(none)]> use zabbix;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -AMariaDB [zabbix]> show tables;# 可以看到一堆表# 关闭全局logbinMariaDB [zabbix]> set global log_bin_trust_function_creators = 0;Query OK, 0 rows affected (0.000 sec)# 更新权限MariaDB [zabbix]> flush privileges;Query OK, 0 rows affected (0.000 sec)# 退出数据库MariaDB [zabbix]> exitBye
2.6 配置zabbix并启动服务
# 修改zabbix server配置文件[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf ListenPort=10051 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123456 DBSocket=/var/lib/mysql/mysql.sock ListenIP=0.0.0.0# 为zabbix前端配置php[root@zabbix-server ~]# vim /etc/nginx/conf.d/zabbix.conflisten 8080; # 去掉注释server_name example.com; # 去掉注释# 启动zabbix-server zabbix-agent nginx php-fpm服务[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent nginx php-fpmCreated symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /usr/lib/systemd/system/zabbix-agent.service.Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
2.7 访问zabbix的Web界面
浏览器访问http://ip:8080
2.8 解决中文乱码问题
1.找到Windows下的简体楷体常规
C:\Windows\Fonts
2.将该文件复制出来
3.上传到Linux系统中的/usr/share/zabbix/assets/fonts目录中
4.替换原先的字体文件:
[root@zabbix-server fonts]# lsgraphfont.ttf zabbix-icons.svg zabbix-icons.woffsimkai.ttf zabbix-icons.ttf zabbix-icons.woff2[root@zabbix-server fonts]# mv simkai.ttf graphfont.ttf mv:是否覆盖'graphfont.ttf'? yes
刷新网页
三、监控远程Linux服务器
以CentOS-7系统为例
# 关闭防火墙与selinux# 配置yum源(阿里源)rm -rf /etc/yum.repos.d/*curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 下载zabbix agent源rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-latest-7.0.el7.noarch.rpm# 安装zabbix agentyum -y install zabbix-agent# 修改zabbix agent配置文件vim /etc/zabbix/zabbix_agentd.confServer=192.168.100.2 # zabbix server的IPServerActive=192.168.100.2 # zabbix server的IPHostname=zabbix-agent # 不能是zabbix server# 启动zabbix agent服务systemctl restart zabbix-agentsystemctl enable zabbix-agent
zabbix的Web界面添加该Linux服务器