目录
1、安装Zabbix server,Web前端,agent ,mysql-server
一、关闭防火墙和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、网站配置
创建模板

创建监控


818

被折叠的 条评论
为什么被折叠?



