day52-Zabbix(第一部分)
1.每日复盘与今日内容
1.1复盘
- Jumpserver部署🍟🍟🍟🍟🍟
- 用户管理、资产授权、sudo提权
- 命令限制、MFA、网域
1.2今日内容
- 介绍、安装、部署zabbix
- LNMP架构、zabbix服务端、zabbix客户端的安装🍟🍟🍟🍟🍟
- 编译zabbix服务
- 配置zabbix服务端和客户端
- 监控客户端
- zabbix自定义监控🍟🍟🍟🍟🍟
- 设置触发器🍟🍟🍟🍟🍟
2.介绍
1..什么是监控
对我们的操作系统进行不间断的监控
2.为什么要监控
软件生命周期中非常重要的一个环节
能够做到事前告警,事后我们还可以根据监控内容排查问题
例:销售人员需求--->开发写代码-->测试代码-->运维-->部署操作系统-->安装服务优化服务运行服务-->日志处理日志分析--->交付(用户 自己的团队 测试) -- >如果监控不到位导致恶性循环-->最终导致项目流产-->公司倒闭 资金链断裂
开发经理(懂技术、懂管理、懂产品、懂客户) 开发压力大 写出好的产品? 代码债务。
运维经理(懂客户 懂产品 懂管理) 员工-->监控 运维债务
开公司: 销售+技术总监(架构师) 10个项目
金丝雀 监控指标
在有问题的时候 运维(管理) 运维债务
3.如何去监控监控什么内容:
监控硬件:磁盘 df -h 内存 free 磁盘IO 负载 CPU 网络
软件服务:端口 进程 状态
业务层面:业务数据进行数据 自定义监控 订单量 注册用户 充值用户 日志中 数据库中体现
业务之间:接口调用监控 curl
4.监控有哪些工具
• zabbix 硬件 服务状态 自定义监控 (万物皆可监控)
• Nagions 网络产品 交换机 路由器
• Cacti 流量
• OPen-Falcon 小米公司 互联网自研监控产品
• prometheus kubernetes docker
• 监控宝等
3.平台架构
基于LNMP平台 Linux Nginx MySQL PHP
zabbix端口
zabbix服务端: 10.0.0.91 端口10051
zabbix_proxy: 10.0.0.7 端口10051
java_gateway: 10.0.0.7 端口10052
zabbix_agent: 10.0.0.7 10.0.0.8 端口10050
4.zabbix安装部署
1.安装部署mysql
通过网盘分享的文件:mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar
链接: https://pan.baidu.com/s/1mkORd1EZLPo6vlJYxqp6eA?pwd=1234 提取码: 1234
--来自百度网盘超级会员v5的分享
通过网盘分享的文件:zabbix-5.0.43.tar.gz
链接: https://pan.baidu.com/s/1j3kQdabSS1WEsVZDbtPzTw?pwd=1234 提取码: 1234
--来自百度网盘超级会员v5的分享
#1.下载并解压mysql 8.0版本
#将上面下载的文件拖入Linux中,解压
root@zabbix ~# tar xf mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar#2.rpm安装
root@zabbix ~# vim 1.txt
rpm -ivh mysql-community-common-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.36-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el8.x86_64.rpm#3.启动数据库
root@zabbix ~# systemctl start mysqld#4.查看数据库默认密码
root@zabbix ~# cat /var/log/mysqld.log|grep root@local
2025-09-22T09:41:54.252667Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: f5,c4EfgpPde#5.进入数据库并修改密码
root@zabbix ~# mysql -uroot -p'f5,c4EfgpPde'mysql> alter user root@localhost identified by 'Oldboy123.com';#6.创建zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by 'Oldboy123.com';
mysql> ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Oldboy123.com';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';#7.删除mysql安装包
root@zabbix ~# rm -fr *#8.下载并解压zabbix源码包
#将下载包拖入
root@zabbix ~# tar xf zabbix-5.0.43.tar.gz#9.将zabbix自带的数据库中的内容导入到自己的数据库中
#需要将schema.sql images.sql data.sql导入zabbix库
#进入目录
root@zabbix ~/zabbix-5.0.43/database/mysql# ll
total 17008
-rw-r--r-- 1 1000 1000 15252182 Aug 13 2024 data.sql
-rw-r--r-- 1 1000 1000 282 Aug 13 2024 double.sql
-rw-r--r-- 1 1000 1000 1978341 Aug 13 2024 images.sql
-rw-r--r-- 1 1000 1000 482 Aug 13 2024 Makefile.am
-rw-r--r-- 1 1000 1000 15936 Aug 13 2024 Makefile.in
-rw-r--r-- 1 1000 1000 156294 Aug 13 2024 schema.sql
#开导
root@zabbix ~/zabbix-5.0.43/database/mysql# mysql -uzabbix -p'Oldboy123.com' zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
root@zabbix ~/zabbix-5.0.43/database/mysql# mysql -uzabbix -p'Oldboy123.com' zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
root@zabbix ~/zabbix-5.0.43/database/mysql# mysql -uzabbix -p'Oldboy123.com' zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
2.安装部署php服务
#1.安装php服务
yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-process php-xml php-json php-ldap#2.修改监听方式
root@zabbix ~/zabbix-5.0.43/database/mysql# grep -n 9000 /etc/php-fpm.d/www.conf
38:listen = 127.0.0.1:9000#3.开启并加入开机自启动
root@zabbix ~/zabbix-5.0.43/database/mysql# systemctl start php-fpm
root@zabbix ~/zabbix-5.0.43/database/mysql# systemctl enable php-fpm#4.查看端口
root@zabbix ~/zabbix-5.0.43/database/mysql# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 56969/php-fpm: mast
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1085/sshd: /usr/sbi
tcp6 0 0 :::33060 :::* LISTEN 55775/mysqld
tcp6 0 0 :::3306 :::* LISTEN 55775/mysqld
tcp6 0 0 :::22 :::* LISTEN 1085/sshd: /usr/sbi
3.安装部署Nginx服务
#1.配置nginx仓库
root@zabbix ~/zabbix-5.0.43/database/mysql# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true#2.安装nginx服务
root@zabbix ~/zabbix-5.0.43/database/mysql# yum -y install nginx#3.配置nginx服务
root@zabbix /etc/nginx/conf.d# vim default.conf
server {
listen 80;
server_name own.zabbix.com;
root /code/ui;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}#4.将代码文件拷贝到/code/ui目录
root@zabbix ~/zabbix-5.0.43# cp -r ui/ /code/#5.统一用户
root@zabbix /etc/nginx/conf.d# grep apache /etc/nginx/nginx.conf
user apache;#6.授权文件属主属组
root@zabbix /etc/nginx/conf.d# chown -R apache.apache /code#7.启动nginx
root@zabbix /etc/nginx/conf.d# systemctl start nginx
4.编译zabbix服务
#1.安装依赖
root@zabbix ~/zabbix-5.0.43# yum -y install libxml2 libxml2-devel net-snmp-devel curl-devel libevent-devel#2.配置
root@zabbix ~/zabbix-5.0.43# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2#3.编译
root@zabbix ~/zabbix-5.0.43# make#4.安装
root@zabbix ~/zabbix-5.0.43# make install#5.验证是否安装成功
root@zabbix ~/zabbix-5.0.43# zabbix_
zabbix_agentd zabbix_get zabbix_js zabbix_sender zabbix_server#6.配置连接数据库信息
root@zabbix ~/zabbix-5.0.43# grep -n ^DB /usr/local/etc/zabbix_server.conf
85:DBHost=localhost
94:DBName=zabbix
110:DBUser=zabbix
118:DBPassword=Oldboy123.com#7.创建启动用户zabbix
root@zabbix ~/zabbix-5.0.43# useradd zabbix#8.启动
root@zabbix ~/zabbix-5.0.43# zabbix_server#9.查看
root@zabbix ~/zabbix-5.0.43# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 68911/zabbix_server
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 56969/php-fpm: mast
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 57395/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1085/sshd: /usr/sbi
tcp6 0 0 :::10051 :::* LISTEN 68911/zabbix_server
tcp6 0 0 :::33060 :::* LISTEN 55775/mysqld
tcp6 0 0 :::3306 :::* LISTEN 55775/mysqld
tcp6 0 0 :::22 :::* LISTEN 1085/sshd: /usr/sbi
5.配置zabbix服务端
现在就可以进入界面了,网页输入10.0.0.91
但是有很多配置问题,接下来一一更改
- 修改php配置
root@zabbix ~/zabbix-5.0.43# egrep -n "post_max_size|max_execution_time|max_input_time|timezone" /etc/php.ini |grep -v ';'
383:max_execution_time = 300
393:max_input_time = 300
672:post_max_size = 16M
902:date.timezone = Asia/ShangHai#检测php
root@zabbix ~/zabbix-5.0.43# php-fpm -t#重启php
root@zabbix ~/zabbix-5.0.43# systemctl restart php-fpm
下一步,密码使用刚才设置的数据库密码即可
下一步,默认配置
默认账户
用户名:Admin
密码:zabbix
- 设置为中文
- 设置字体
#1.在自己的windows电脑找一个字体
#进入C:\Windows\Fonts随便复制一个字体将其拖入到/code/ui/assets/fonts
root@zabbix /code/ui/assets/fonts# ll
total 18388
-rw-r--r-- 1 apache apache 756072 Sep 22 18:54 DejaVuSans.ttf.bak
-rw-r--r-- 1 root root 18070492 Mar 11 2025 SIMSUN.TTC#2.将之前的字体备份成以.bak结尾的文件#3.将这个文件改为之前的名字
root@zabbix /code/ui/assets/fonts# ll
total 18388
-rw-r--r-- 1 root root 18070492 Mar 11 2025 DejaVuSans.ttf
-rw-r--r-- 1 apache apache 756072 Sep 22 18:54 DejaVuSans.ttf.bak#4.刷新网页即可
6.配置zabbix客户端(本机)
#启动客户端
root@zabbix ~# zabbix_agentd
5.监控客户端(10.0.0.7)
#1.准备客户端10.0.0.7
#2.安装zabbix-agent客户端 Kylin系统直接安装(其他操作 部署YUM仓库)
root@WEB01 ~# yum -y install zabbix-agent#或是通过阿里云下载
https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.43-1.el7.x86_64.rpm#3.配置zabbix客户端配置文件指向服务端10.0.0.91
root@WEB01 ~# grep -n ^Server /etc/zabbix_agentd.conf
115:Server=172.16.1.91#4.启动zabbix客户端
root@WEB01 ~# systemctl start zabbix-agent.service#5.配置页添加主机
将基本信息填入即可
使用创建好的模板
变绿说明成功
- 日志位置
服务端日志: /tmp/zabbix_server.log
客户端yum安装:
/var/log/zabbix/zabbix_agentd.log
6.zabbix自定义监控
面试题:监控登陆的用户数量
#1.取值
root@WEB01 ~# uptime | awk '{print $(NF-6)}'#2.配置到客户端的配置文件中 zabbix-agent.conf
root@WEB01 ~# grep user_login /etc/zabbix_agentd.conf
UserParameter=user_login,uptime|awk '{print $(NF-6)}'#3.能否生效
root@WEB01 ~# zabbix_agentd -p
root@WEB01 ~# systemctl restart zabbix-agent#4.在zabbix服务端取值测试
root@zabbix ~# zabbix_get -s 172.16.1.7 -k user_login#4.将自定义的key添加到zabbix页面进行监控
点击监控项
创建监控项
将刚才配置文件的key填入,更新间隔可以设置(这里设置短点方便演示)
查看数据
双击Xshell窗口,多创建几个出来
刷新,发现数值变动
- 自定义监控端口
#1.配置
root@WEB01 ~# grep nginx_port /etc/zabbix_agentd.conf
UserParameter=nginx_port,netstat -lntup | grep 80 | grep -w tcp | wc -l#2.检查(为1则生效)
root@WEB01 ~# zabbix_agentd -p#3.重启客户端
root@WEB01 ~# systemctl restart zabbix-agent#4.在zabbix服务端取值测试
root@zabbix ~# zabbix_get -s 172.16.1.7 -k nginx_port
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
1#5.将自定义的key添加到zabbix页面进行监控
发现获取到的值是字符串,只为数字
原因是netstat命令没有权限
#6.授予netstat权限
root@WEB01 ~# chmod u+s /usr/bin/netstat#7.再此获取
root@zabbix ~# zabbix_get -s 172.16.1.7 -k nginx_port
1#8.重新添加
- 使用系统自带的监控
已启用
7.自定义映射值
我们发现上述很多变量都堆在一个地方,非常杂乱,故使用include
#1.修改配置文件
root@WEB01 ~# cat /etc/zabbix_agentd.conf|grep -i include
### Option: Include
# You may include individual files or all files in a directory in the configuration file.
# Installing Zabbix will create include directory in /etc, unless modified during the compile time.
# Include=
# Include=/etc/zabbix_agentd.userparams.conf
# Include=/etc/zabbix_agentd.conf.d/
Include=/etc/zabbix_agentd.conf.d/*.conf
# It is allowed to include multiple LoadModule parameters.#2.将之前设置的keys放到Include目录下
root@WEB01 /etc/zabbix_agentd.conf.d# vim os.conf
UserParameter=user_login,uptime|awk '{print $(NF-6)}'
UserParameter=nginx_port,netstat -lntup | grep 80 | grep -w tcp | wc -l
8.设置触发器
点击触发器
点击创建
设置当用户数为4时,报警
点击Xshell,模拟多个用户
zabbix报警
配置报警声
关闭用户,则解决问题
9.今日总结
- 介绍、安装、部署zabbix
- LNMP架构、zabbix服务端、zabbix客户端的安装🍟🍟🍟🍟🍟
- 编译zabbix服务
- 配置zabbix服务端和客户端
- 监控客户端
- zabbix自定义监控🍟🍟🍟🍟🍟
- 设置触发器🍟🍟🍟🍟🍟