
zabbix基础使用(上)
1. zabbix安装部署
1.1 安装部署mysql
1. 下载mysql8.0版本
2. 解压数据库
3. rpm安装
[root@zabbix ~]#rpm -ivh mysql-community-common-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-client-plugins-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-libs-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-client-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-icu-data-files-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-devel-8.0.36-1.el8.x86_64.rpm
[root@zabbix ~]#rpm -ivh mysql-community-server-8.0.36-1.el8.x86_64.rpm
4. 启动数据库
[root@zabbix ~]#systemctl start mysqld.service
5. 进入数据库修改密码
查看随机生成的密码
[root@zabbix ~]#cat /var/log/mysqld.log |grep root@local
2025-06-04T08:08:32.462252Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #s=phoJko6Oo
修改密码
[root@zabbix ~]#mysql -uroot -p'Vp0Zk<dgHmtt'
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';
清理mysql安装包
[root@zabbix ~]#rm -rf mysql-*
7. 下载zabbix的源码包,将sql数据导入到zabbix库中
官网也可下载或课程里压缩包
[root@zabbix ~]#tar xf zabbix-5.0.47.tar.gz
进入源码目录
[root@zabbix ~/zabbix-5.0.47]#cd database/mysql/
[root@zabbix ~/zabbix-5.0.47/database/mysql]#ll
total 17008
-rw-r--r-- 1 1000 1000 15252182 May 20 15:10 data.sql
-rw-r--r-- 1 1000 1000 282 May 20 15:10 double.sql
-rw-r--r-- 1 1000 1000 1978341 May 19 19:09 images.sql
-rw-r--r-- 1 1000 1000 482 May 20 15:10 Makefile.am
-rw-r--r-- 1 1000 1000 15936 May 20 15:10 Makefile.in
-rw-r--r-- 1 1000 1000 156294 May 20 15:10 schema.sql
需要将schema.sql images.sql data.sql导入zabbix库
[root@zabbix ~/zabbix-5.0.47/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.47/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.47/database/mysql]#mysql -uzabbix -p'Oldboy123.com' zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
1.2 安装部署php服务
1. 安装php服务
[root@zabbix ~/zabbix-5.0.47/database/mysql]# 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.47/database/mysql]#grep -n 9000 /etc/php-fpm.d/www.conf
39:listen = 127.0.0.1:9000
3. 启动加入开机启动
[root@zabbix ~/zabbix-5.0.47/database/mysql]#systemctl start php-fpm[root@zabbix ~/zabbix-5.0.47/database/mysql]#systemctl enable php-fpm
4. 查看是否启动
[root@zabbix ~/zabbix-5.0.47/database/mysql]#netstat -tnulp
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 57812/php-fpm: mast
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1116/sshd: /usr/sbi
tcp6 0 0 :::3306 :::* LISTEN 56629/mysqld
tcp6 0 0 :::22 :::* LISTEN 1116/sshd: /usr/sbi
tcp6 0 0 :::33060 :::* LISTEN 56629/mysqld
udp 0 0 127.0.0.1:323 0.0.0.0:* 790/chronyd
udp6 0 0 ::1:323 :::* 790/chronyd
1.3 部署nginx服务
1. 配置nginx仓库
[root@zabbix ~/zabbix-5.0.47/database/mysql]#cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
2. 安装nginx服务
[root@zabbix:~]#yum -y install nginx
3. 配置nginx服务
[root@zabbix /etc/yum.repos.d]#cat /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name _;
root /code;
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;
}
}
[root@zabbix /etc/yum.repos.d]#nginx -t
[root@zabbix /etc/yum.repos.d]#systemctl start nginx
[root@zabbix /etc/yum.repos.d]#systemctl enable nginx
4. 检查9000 3306 80端口
[root@zabbix /etc/yum.repos.d]#netstat -tnulp
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 57812/php-fpm: mast
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 58131/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1116/sshd: /usr/sbi
tcp6 0 0 :::3306 :::* LISTEN 56629/mysqld
5. 将代码文件拷贝到/code目录
[root@zabbix ~]#mkdir /code
[root@zabbix ~]#cd /code
拷贝源码中的前端页面代码到/code目录
[root@zabbix /code]#cp -r /root/zabbix-5.0.47/ui/* .
[root@zabbix /code]#chown -R apache.apache /code
统一用户php和nginx都是用apache运行
[root@zabbix /code]#grep apache /etc/nginx/nginx.conf
user apache;
[root@zabbix /code]#grep apache /etc/php-fpm.d/www.conf
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
group = apache
listen.acl_users = apache,nginx
[root@zabbix:code]#systemctl restart nginx
1.4 编译zabbix服务
1. 进入源码目录
[root@zabbix:~]#cd zabbix-5.0.43/
2. 安装依赖包
[root@zabbix ~/zabbix-5.0.47]#yum -y install libxml2 libxml2-devel net-snmp-devel curl-devel libevent-devel
3. 配置zabbix
[root@zabbix ~/zabbix-5.0.47]#./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
4. 编译
[root@zabbix ~/zabbix-5.0.47]#make
5. 安装
[root@zabbix ~/zabbix-5.0.47]#make install
6. 完成后检查 在命令行输入zabbix tab键 检查文件是否相同
[root@zabbix ~]#zabbix_
zabbix_agentd zabbix_js zabbix_server
zabbix_get zabbix_sender
7. 配置zabbix连接数据库信息
[root@zabbix ~]#grep -n ^DB /usr/local/etc/zabbix_server.conf
94:DBName=zabbix
110:DBUser=zabbix
118:DBPassword=Oldboy123.com
8. 创建启动虚拟用户zabbix
[root@zabbix:~]#useradd zabbix
9. 启动
zabbix_server # 启动服务端
zabbix_agented # 启动客户端
编写systemctl运行zabbix
[root@zabbix ~]#cat /usr/lib/systemd/system/zabbix.service
[Unit]
Description=Zabbix server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/usr/local/sbin/zabbix_server stop
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
这里需要先杀死进程:
pkill zabbix
ps -axu|grep zabbix
重新加载配置
[root@zabbix:~]#systemctl daemon-reload
[root@zabbix:~]#systemctl start zabbix
[root@zabbix:~]#systemctl enable zabbix
检查端口
[root@zabbix ~]#netstat -tnulp
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 57812/php-fpm: mas
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 58246/nginx: maste
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1116/sshd: /usr/sb
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 69656/zabbix_serve
tcp6 0 0 :::3306 :::* LISTEN 56629/mysqld
tcp6 0 0 :::22 :::* LISTEN 1116/sshd: /usr/sb
tcp6 0 0 :::10051 :::* LISTEN 69656/zabbix_serve
tcp6 0 0 :::33060 :::* LISTEN 56629/mysqld
udp 0 0 127.0.0.1:323 0.0.0.0:* 790/chronyd
udp6 0 0 ::1:323 :::*
1.5 界面安装部署
[root@zabbix ~]#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 ~]#php-fpm -t
[04-Jun-2025 17:35:16] NOTICE: configuration file /etc/php-fpm.conf test is successful
重启php服务
[root@zabbix ~]#systemctl restart php-fpm
2. zabbix界面配置
2.1 修改语言为中文
2.2 修改默认的字体
[root@zabbix ~]#cd /code/assets/fonts/
将windows的字体上传到当前目录修改名称
[root@zabbix /code/assets/fonts]#mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix /code/assets/fonts]#mv STXINWEI.TTF DejaVuSans.ttf.bak
3. 监控Zabbix服务器本身
1.安装客户端zabbix_agentd 默认已经编译(可以zabbix_agent进行tab一下试试)
2.启动客户端
[root@zabbix:~]#zabbix_agentd
4. 监控客户端
1. 准备客户端10.0.0.7
2. 安装zabbix-agent客户端 Kylin系统直接安装(其他操作 部署YUM仓库)
下载epel源
[root@WEB01 ~]#yum -y install zabbix-agent
3. 配置zabbix客户端配置文件指向服务端10.0.0.71
[root@WEB01 ~]#grep -n ^Server /etc/zabbix_agentd.conf
115:Server=172.16.1.71
4. 启动zabbix客户端
[root@WEB01 ~]#systemctl start zabbix-agent.service
[root@WEB01 ~]#systemctl enable zabbix-agent.service
5. zabbix页面配置添加监控的主机
4.1 添加一台主机
4.2 添加模版
4.3 日志存放位置
服务端日志: /tmp/zabbix_server.log
客户端yum安装:
/var/log/zabbix/zabbix_agentd.log
变绿说明成功
5.zabbix自定义监控
5.1 自定义监控流程
基本流程
1. 取值(命令行)
2. 配置到客户端的配置文件 zabbix-agent.conf
3. 在zabbix服务端命令行使用zabbix_get取值测试
4. 将自定义的key添加到zibbix页面进行监控
------------------------------------------------------------
1. 取值
[root@WEB01 ~]#uptime|awk '{print $(NF-6)}'
2. 写入客户端的配置文件中
2.1 自定义路径:
[root@WEB01 ~]#mkdir /etc/zabbix_agentd.conf.d/
[root@WEB01 ~]#mkdir /etc/zabbix_agentd.conf.d/user.conf
2.2 配置在include包含的文件内
[root@WEB01 ~]#cat /etc/zabbix_agentd.conf.d/user.conf
UserParameter=user_login,uptime|awk '{print $(NF-6)}'
3. 重启客户端生效
[root@WEB01 ~]#systemctl restart zabbix-agent.service
4. 服务端主动获取
[root@zabbix ~]#zabbix_get -s 172.16.1.7 -k user_login
扩展:查看本地定义的监控项列表
[root@WEB01 ~]#zabbix_agentd -p|grep user_login
5. 添加到zabbix界面配置监控项
客户端检查k值
[root@WEB01 ~]#zabbix_agentd -p|grep user_login
user_login [t|2]
FS2uA32dP5XyUzrq11
5.2 自定义端口是否存活
1. 客户端配置
UserParameter=ng_port,netstat -tnulp|grep 80|grep -w tcp |wc -l
2. 重启
[root@WEB01 ~]#systemctl restart zabbix-agent.service
3. 服务端测试取key值
出现如图,提示需要root权限执行netstat,
加s权限,任何用户执行此命令时,临时获得 root 权限
[root@WEB01 ~]#chmod u+s /usr/bin/netstat
页面添加监控项
5.3. 自定义值映射
5.4 使用系统自带的监控项监控端口
自带监控项,不需要web端自定义配置
5.5 自定义监控内存使用率
UserParameter=mem_use,free|awk 'NR==2{print $3/$2*100}'
6. 设置触发器
6.1 设置用户登录数超过2个则告警通知,默认告警到zabbix 界面上。
6.2设置内存超过40%告警(实际工作中80%)
6.3设置联合告警
7. 配置邮箱邮件告警
7.1 配置媒介
注意用户名为邮箱,是个坑!!!!
7.2 配置动作
7.3 配置收件人
7.4 配置自定义告警模版
默认标题:
故障: {EVENT.NAME}
消息内容:
报警主机: {HOST.NAME1}
报警服务: {ITEM.NAME}
报警key1: {ITEM.KEY1}: {ITEM.VALUE1}
报警key2: {ITEM.KEY2}: {ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
恢复操作
默认标题:
恢复: {EVENT.NAME}
消息内容:
恢复主机: {HOST.NAME1}
恢复服务: {ITEM.NAME}
恢复key1: {ITEM.KEY1}: {ITEM.VALUE1}
恢复key2: {ITEM.KEY2}: {ITEM.VALUE2}
7.5 配置远程执行命令
7.5.1 监听nginx端口
7.5.2 客户端开启免密权限和远程执行命令功能
配置sudo提权
[root@WEB01 ~]#grep zabbix /etc/sudoers
zabbix ALL=(ALL) NOPASSWD: ALL
[root@WEB01 ~]#grep -n ^EnableRemoteCommand /etc/zabbix_agentd.conf
91:EnableRemoteCommands=1
[root@WEB01 ~]#systemctl restart zabbix-agent.service
7.5.3 配置动作(执行条件+执行远程命令)
5.4 配置事件通知升级过程
8.配置企业微信告警
8.1 基本步骤和前面jenkins部署企业微信一样(省略)
https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome
1. 上传包里面的脚本
2. 修改weixin.py的三个参数
vim weixin.py
...
corpid='ww4f16cdc27c1a64234'
appsecret='xxx'
agentid=1000002
...
安装python2版本
[root@zabbix:~]#yum -y install python2
安装python2-pip # 用来安装python依赖
[root@zabbix:~]#yum -y install python2-pip
安装运行python脚本的依赖
[root@zabbix:~]#pip2.7 install requests
测试脚本:
[root@zabbix:~]#python2.7 weixin.py "ZhaoJunJie" "下雨了" "回家开车"
8.2 集成到zabbix页面中
将脚本移动到固定的目录将脚本移动到固定的目录
[root@zabbix ~]#mv weixin.py /usr/local/share/zabbix/alertscripts/
[root@zabbix ~]#chmod +x /usr/local/share/zabbix/alertscripts/weixin.py
[root@zabbix ~]#ll /usr/local/share/zabbix/alertscripts/weixin.py
-rwxr-xr-x 1 root root 1352 Jun 8 10:46 /usr/local/share/zabbix/alertscripts/weixin.py
操作日志
[root@zabbix ~]#chown zabbix.zabbix /tmp/weixin.log
[root@zabbix ~]#ll /tmp/weixin.log
-rw-r--r-- 1 zabbix zabbix 904 Jun 8 10:52 /tmp/weixin.log
Sun, 08 Jun 2025 10:52:15, weixin.py, INFO, sendto:sunyingmin;;subject:下雨了;;message:下雨了 回家开车
8.3 略,参考邮箱报警
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果