Rocky9部署Zabbix7(小白的“升级打怪”成长之路)

目录

一、关闭防火墙和SElinux和配置安装源

二、zabbxi服务器配置

1、安装Zabbix server,Web前端,agent ,mysql-server

2、配置mysql数据库

3、为Zabbix server配置数据库

4、启动对应服务

三、登录zabbix

四、客户端部署

五、解决中文乱码问题

六、配置监控客户端内容

1、配置监控内容

2、使用现有模板添加

七、网络设备监控

1、GNS模拟器的使用

2、登录zabbix

八、中间件监控

1、MySQL数据库监控

2、网站访问配置监控

九、监控nginx服务

1、配置nginx运行状态模块

2、浏览器访问

3、编写监控nginx脚本

4、网站设置

十、监控redis服务

1、配置redis运行状态模块

2、编写监控redis监控文件

3、在zabbix server测试

4、网站设置

十一、监控mysql主从复制

1、创建免密登录

2、编写监控mysql_slave监控文件

3、在zabbix server测试

4、网站配置


一、关闭防火墙和SElinux和配置安装源

[root@bogon ~]#  systemctl disable --now firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@bogon ~]# setenforce 0
​

二、zabbxi服务器配置

服务器IP为192.168.58.170

1、安装Zabbix server,Web前端,agent ,mysql-server

[root@bogon ~]# hostnamectl set-hostname zabbix
[root@bogon ~]# bash
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
​
[root@zabbix yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
​
[root@zabbix yum.repos.d]# yum install -y mysql-server
​
[root@zabbix yum.repos.d]# systemctl start mysqld

2、配置mysql数据库

[root@zabbix yum.repos.d]# mysql
​
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.01 sec)
​
mysql> create user zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.02 sec)
​
mysql>  grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
​
mysql>  set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
​
mysql> quit;
Bye
​
##导入初始架构和数据,系统将提示您输入新创建的密码:zabbix
[root@zabbix yum.repos.d]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix 
Enter password: 

3、为Zabbix server配置数据库

[root@zabbix yum.repos.d]# vim /etc/zabbix/zabbix_server.conf 
​
# DBPassword=改为
​
DBPassword=zabbix
​
##更改端口号,不改也行
[root@zabbix yum.repos.d]# cd /etc/nginx/
[root@zabbix nginx]# ls
conf.d        fastcgi.conf.default    koi-utf     mime.types.default  scgi_params          uwsgi_params.default
default.d     fastcgi_params          koi-win     nginx.conf          scgi_params.default  win-utf
fastcgi.conf  fastcgi_params.default  mime.types  nginx.conf.default  uwsgi_params
[root@zabbix nginx]# vim nginx.conf
​
 #       listen       80;
​
 #      listen       [::]:80;
​
​
[root@zabbix nginx]# cd conf.d/
[root@zabbix conf.d]# ls
php-fpm.conf  zabbix.conf
[root@zabbix conf.d]# vim zabbix.conf 
​
 #        listen          8080;改为
​
        listen          80;
         
        

4、启动对应服务

[root@zabbix conf.d]# systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
​

三、登录zabbix

网站访问192.168.58.170

密码为zabbix

密码为zabbix

四、客户端部署

客户端IP为I192.168.58.171

####192.168.58.171
[root@bogon ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
​
[root@bogon ~]# yum install -y zabbix-agent
​
[root@bogon ~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=127.0.0.1改为:
Server=192.168.58.170
​
Hostname=Zabbix server改为
Hostname=host1
​
[root@bogon ~]# systemctl start zabbix-agent.service 

五、解决中文乱码问题

####192.168.58.170
[root@zabbix zabbix]# cd /usr/share/zabbix/assets/fonts
[root@zabbix fonts]# ls
graphfont.ttf  zabbix-icons.svg  zabbix-icons.ttf  zabbix-icons.woff  zabbix-icons.woff2
[root@zabbix fonts]# ls -l
总用量 196
lrwxrwxrwx. 1 root root     33  7月 22 19:56 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r--. 1 root root 149851  6月 27 15:08 zabbix-icons.svg
-rw-r--r--. 1 root root  22072  6月 27 15:08 zabbix-icons.ttf
-rw-r--r--. 1 root root  11716  6月 27 15:08 zabbix-icons.woff
-rw-r--r--. 1 root root   9756  6月 27 15:08 zabbix-icons.woff2
​

从windows系统中:C:\Windows\Fonts路径下(宋体常规)拷贝到zabbix server中,放到/usr/share/zabbix/assets/fonts

[root@zabbix fonts]# yum install -y lrzsz
​
[root@zabbix fonts]# rz
rz waiting to receive.**[root@zabbix fonts]# ls
graphfont.ttf  SIMSUN.TTC  zabbix-icons.svg  zabbix-icons.ttf  zabbix-icons.woff  zabbix-icons.woff2
[root@zabbix fonts]# unlink graphfont.ttf
[root@zabbix fonts]# cp SIMSUN.TTC graphfont.ttf 
[root@zabbix fonts]# ls
graphfont.ttf  SIMSUN.TTC  zabbix-icons.svg  zabbix-icons.ttf  zabbix-icons.woff  zabbix-icons.woff2

六、配置监控客户端内容

1、配置监控内容

监控磁盘使用率

监控登录系统的用户数量

####192.168.58.171
[root@bogon zabbix-agent]# cd /etc/zabbix/zabbix_agentd.d/
[root@bogon zabbix_agentd.d]# ls
[root@bogon zabbix_agentd.d]# vim disk.conf
UserParameter=disk_use[*],df | grep "$1$" | awk '{print $(NF-1)}' | cut -d% -f1
UserParameter=count_user[*],last | grep -v wtmp | grep -v "^$" | awk '{print $(NF+1-NF)}' | sort | uniq -c | grep "$1" | awk '{print $(NF+1-NF)}'
​
[root@bogon zabbix_agentd.d]# systemctl restart zabbix-agent.service 
​

测试添加的监控项是否能正常使用

####192.168.58.170
[root@zabbix fonts]# yum install -y zabbix-get
[root@zabbix fonts]# zabbix_get -s 192.168.58.171 -p 10050 -k disk_use[/]
11
[root@zabbix fonts]# zabbix_get -s 192.168.58.171 -p 10050 -k count_user[root]
9

2、使用现有模板添加

自己创建模板监控项

同理操作,加入监控用户登录数量

七、网络设备监控

1、GNS模拟器的使用

根据路由器的ip和端口号加入远程连接

R1配置

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit 
R1(config)#int f1/0
R1(config-if)#ip address 192.168.200.254 255.255.255.0
R1(config-if)#no shutdown

R2配置

ip address 192.168.58.200 255.255.255.0
no shutdown
R2(config-if)#snmp-server community c2505  

zabbxi服务器测试

####192.168.58.170
[root@zabbix ~]# ping 192.168.58.200
PING 192.168.58.200 (192.168.58.200) 56(84) 比特的数据。
64 比特,来自 192.168.58.200: icmp_seq=2 ttl=255 时间=15.8 毫秒
64 比特,来自 192.168.58.200: icmp_seq=3 ttl=255 时间=12.4 毫秒
^C
--- 192.168.58.200 ping 统计 ---
已发送 3 个包, 已接收 2 个包, 33.3333% packet loss, time 2011ms
rtt min/avg/max/mdev = 12.440/14.106/15.773/1.666 ms

2、登录zabbix

网站访问192.168.58.170

八、中间件监控

1、MySQL数据库监控

客户端配置

####192.168.58.171
[root@bogon ~]# yum install -y mysql-server
​
##拷贝自定义的监控脚本到指定目录
[root@bogon ~]# cp /usr/share/doc/zabbix-agent/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@bogon ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@bogon zabbix_agentd.d]# ls
disk.conf  userparameter_mysql.conf
[root@bogon zabbix_agentd.d]# systemctl restart zabbix-agent.service 
[root@bogon zabbix_agentd.d]# systemctl start mysqld
​
​
​
##添加监控用户
[root@bogon zabbix_agentd.d]# mysql
​
mysql> create user root@'192.168.58.%' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
​
mysql> grant all on *.* to root@'192.168.58.%';
Query OK, 0 rows affected (0.01 sec)
​
mysql> exit
Bye
​
[root@bogon zabbix_agentd.d]# vim /etc/my.cnf
[client]
protocol=tcp
user='root'
password='123.com'

在zabbix-server服务端测试数据

[root@zabbix ~]# zabbix_get -s 192.168.58.171 -p 10050 -k mysql.ping[192.168.58.171,3306]
mysqld is alive
​
[root@zabbix ~]# zabbix_get -s 192.168.58.171 -p 10050 -k mysql.get_status_variables[192.168.58.171,3306]
<?xml version="1.0"?>
​
<resultset statement="show global status
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
        <field name="Variable_name">Aborted_clients</field>
        <field name="Value">0</field>

2、网站访问配置监控

九、监控nginx服务

192.168.58.171

1、配置nginx运行状态模块

[root@bogon zabbix]# vim /etc/nginx/nginx.conf
##在server字段中加入
        location /status {              #定义运行状态页面名称,页面为status
               stub_status on; #开启模块
               access_log off; #不开启访问日志记录
               allow 127.0.0.1;    #运行127.0.0.1地址访问此网页
               allow 192.168.58.171/24;   #只运行192.168.2.0网段的主机访问此网页
               deny all;                       #其余网段主机不允许访问
               }
[root@bogon zabbix]# systemctl restart nginx

2、浏览器访问

192.168.58171/status

3、编写监控nginx脚本

##编写监控nginx脚本
[root@bogon zabbix_agentd.d]# vim userparameter_nginx.conf 
UserParameter=nginx.active,bash /etc/zabbix/ngx_status.sh active
​
UserParameter=nginx.accepts,bash /etc/zabbix/ngx_status.sh accepts
​
UserParameter=nginx.handled,bash /etc/zabbix/ngx_status.sh handled
​
UserParameter=nginx.requests,bash /etc/zabbix/ngx_status.sh requests
​
UserParameter=nginx.reading,bash /etc/zabbix/ngx_status.sh reading
​
UserParameter=nginx.writing,bash /etc/zabbix/ngx_status.sh writing
​
UserParameter=nginx.waiting,bash /etc/zabbix/ngx_status.sh waiting
​
[root@bogon zabbix_agentd.d]# cd /etc/zabbix/
[root@bogon zabbix]# ls
ngx_status.sh  zabbix_agentd.conf  zabbix_agentd.d
[root@bogon zabbix]# vim ngx_status.sh 
#!/bin/bash
#定义Nginx status页面
ngx_status="http://127.0.0.1/status"
#判断status页面是否存活
ngx_status_code() {
        http_code=`curl -o /dev/null -s -w %{http_code} ${ngx_status}`
        if [ ${http_code} == "200" ];then
                return 1
        else
                echo "Nginx status is not running."
        fi
}
​
#获取当前活动的客户端连接数
active() {
        ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}
​
#获取接收客户端连接的总数量
accepts() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}
​
#获取已处理的连接总数量
handled() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}
​
#获取客户端请求总数量
requests() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}
​
#获取正在读取请求标头的当前连接数量
reading() {
        ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}
​
#获取正在将响应写回到客户端的当前连接数量
writing() {
        ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}
​
#获取当前正在等待响应的客户端连接数量
waiting() {
        ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}
​
#使用位置变量控制脚本输出
case $1 in
        active)
                active;;
        accepts)
                accepts;;
        handled)
                handled;;
        requests)
                requests;;
        reading)
                reading;;
        writing)
                writing;;
        waiting)
                waiting;;
        *)
                echo "Unknown options"
esac
​
[root@bogon zabbix_agentd.d]# systemctl restart zabbix-agent.service

4、网站设置

创建模板

创建监控项

创建图形

创建监控主机,连接模板

查看监控结果

十、监控redis服务

192.168.58.171

1、配置redis运行状态模块

192.168.58.171
[root@bogon zabbix]# vim /etc/redis/redis.conf 
bind 192.168.58.171
protected-mode no
[root@bogon zabbix]# systemctl restart redis

2、编写监控redis监控文件

[root@bogon zabbix]# cd zabbix_agentd.d/
[root@bogon zabbix_agentd.d]# ls
disk.conf  userparameter_dingding.conf  userparameter_m-s_mysql.conf  userparameter_mysql.conf  userparameter_nginx.conf 
[root@bogon zabbix_agentd.d]# vim userparameter_redis.conf 
UserParameter=redis.ping[*], redis-cli -h "$1" ping | grep -c PONG
UserParameter=redis.version[*], redis-cli -h "$1" info | grep 'redis_version:' | cut -d: -f2
UserParameter=redis.dbsize[*], redis-cli -h "$1" -n "$2" dbsize
​
[root@bogon zabbix_agentd.d]# systemctl restart zabbix-agent.service

3、在zabbix server测试

[root@zabbix ~]# zabbix_get -s 192.168.58.171 -p 10050 -k redis.ping[192.168.58.171]
1
[root@zabbix ~]# zabbix_get -s 192.168.58.171 -p 10050 -k redis.version[192.168.58.171]
6.2.18
[root@zabbix ~]# zabbix_get -s 192.168.58.171 -p 10050 -k redis.dbsize[192.168.58.171]
3

4、网站设置

创建模板

创建监控项

创建图形

创建监控主机,连接模板

查看监控结果

十一、监控mysql主从复制

在配置好主从复制的基础上 192.168.58.172

1、创建免密登录

 mysql
 create user root@'192.168.58.%' identified by '123.com';
 grant all on *.* to root@'192.168.58.%';
[root@bogon zabbix_agentd.d]# vim /etc/my.cnf
##最后加上
[client]
protocol=tcp
user='root'
password='123.com'
​
[root@bogon zabbix_agentd.d]# systemctl restart mysqld.service 

2、编写监控mysql_slave监控文件

[root@bogon zabbix_agentd.d]# vim userparameter_mysql_master-slave.conf 
# 主从复制专用监控(免密版)
# 主从复制发现(返回JSON格式的完整复制状态)
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "SHOW SLAVE STATUS"
​
# 监控复制延迟(使用NF避免位置依赖)
UserParameter=mysql.slave.seconds_behind_master[*], mysql -h"$1" -P"$2" -e "SHOW SLAVE STATUS\G" | grep "Seconds_Behind_Master:" | awk '{print $(NF)}'
​
# 监控IO线程状态(使用NF)
UserParameter=mysql.slave.io_running[*], mysql -h"$1" -P"$2" -e "SHOW SLAVE STATUS\G" | grep "Slave_IO_Running:" | awk '{print $(NF)}'
​
# 监控SQL线程状态(使用NF)
UserParameter=mysql.slave.sql_running[*], mysql -h"$1" -P"$2" -e "SHOW SLAVE STATUS\G" | grep "Slave_SQL_Running:" | awk '{print $(NF)}'
​
[root@bogon zabbix_agentd.d]# systemctl restart zabbix-agent.service 

3、在zabbix server测试

[root@zabbix zabbix_agentd.d]# zabbix_get -s 192.168.58.172 -k "mysql.slave.seconds_behind_master"[192.168.58.172,3306]
0
[root@zabbix zabbix_agentd.d]# zabbix_get -s 192.168.58.172 -k "mysql.slave.io_running"[192.168.58.172,3306]
Yes
[root@zabbix zabbix_agentd.d]# zabbix_get -s 192.168.58.172 -k "mysql.slave.sql_running"[192.168.58.172,3306]
Yes

4、网站配置

创建模板

创建监控

看到感觉有帮助的朋友劳烦动动发财的小手给博主点个赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值