Zabbix平台部署

安装 Zabbix 软件仓库
[root@server1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm
[root@server1 ~]# dnf clean all
安装Zabbix server,Web前端,agent
[root@server1 ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
安装MySQL8.0
下载仓库包
[root@server1 ~]# wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
安装仓库包
[root@server1 ~]# dnf install -y mysql80-community-release-el9-1.noarch.rpm
确认仓库已成功启用
[root@server1 ~]# dnf repolist | grep mysql
导入MySQL最新官方密钥
[root@server1 ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
安装 MySQL 服务器及组件
[root@server1 ~]# dnf install -y mysql-community-server
创建初始数据库
[root@server1 ~]# mysql -pRoot@123456
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'Root@123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
导入初始架构和数据,系统将提示输入新创建的密码
[root@server1 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
导入数据库模式后,禁用 log_bin_trust_function_creators 选项
mysql> set global log_bin_trust_function_creators = 0;
为Zabbix server配置数据库
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf

启动Zabbix server和agent进程,并为它们设置开机自启
[root@server1 ~]# systemctl restart zabbix-server zabbix-agent httpd php-fpm
[root@server1 ~]# systemctl enable zabbix-server zabbix-agent httpd php-fpm
打开 Zabbix UI 网页
使用 Apache Web 服务器时,Zabbix UI 的默认 URL 为 http://host/zabbix


登录前端管理界面
管理员用户和密码:Admin/zabbix

拷贝字体文件
cp simkai.ttf /usr/share/zabbix/assets/fonts
cd /usr/share/zabbix/assets/fonts
重做软连接
rm -f graphfont.ttf
ln -s simkai.ttf graphfont.ttf
[root@server1 fonts]# systemctl restart zabbix-server zabbix-agent httpd php-fpm
这样就能正常显示

添加zabbix-agent
设置yum源
[root@server2 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm
安装zabbix-agent
[root@server2 ~]# yum install -y zabbix-agent
修改配置文件
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.247.142 #zabbix server的ip
ServerActive=192.168.247.142
Hostname=server2 #agent自己的主机名
启动服务
[root@server2 ~]# systemctl enable --now zabbix-agent
查看监听端口
[root@server2 ~]# ss -antlp | grep :10050
添加主机

添加一台CentOS7系统的主机进行监测
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.247.142 #zabbix server的ip
ServerActive=192.168.247.142
Hostname=lvs-master #agent自己的主机名
启动服务
systemctl enable --now zabbix-agent


快速入门
监控cpu负载

测试消耗cpu
[root@server2 ~]# md5sum /dev/zero

监控根分区使用情况


监控根分区空闲百分比

cpu负载过高触发器

[root@server2 ~]# for i in `seq 1 2`; do md5sum /dev/zero & done

[root@server2 ~]# pkill -9 md5sum
根分区空闲空间低于90% 触发器

[root@server2 ~]# dd if=/dev/zero of=/bigfile bs=1G count=2

[root@server2 ~]# rm -f /bigfile

创建监控图形

配置报警媒介

为用户配置收件邮箱

启用触发器动作

测试
[root@server2 ~]# for i in `seq 1 2`; do md5sum /dev/zero & done


添加用户组


添加用户



配置触发器动作


添加模板

复制监控项


自动发现
启动发现动作

配置发现规则

自动注册


配置agent 主机元数据
vim /etc/zabbix/zabbix_agentd.conf
HostMetadataItem=system.uname
重启服务
systemctl restart zabbix-agent.service

服务监控
nginx服务监控
在agent安装软件
[root@server2 ~]# yum install nginx
修改配置
[root@server2 ~]# vim /etc/nginx/nginx.conf

启动服务
[root@server2 ~]# systemctl enable --now nginx
测试
[root@server2 ~]# curl localhost/basic_status
主机关联服务监控模板

MySQL监控服务
拷贝模板
[root@server2 ~]# cp /usr/share/doc/zabbix-agent/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
重启服务
[root@server2 ~]# systemctl restart zabbix-agent
安装数据库
[root@server2 ~]# yum install -y mysql-server
[root@server2 ~]# systemctl enable --now mysqld
配置数据库监控用户
mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'westos';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
创建mysql客户端配置
[root@server2 ~]# mkdir /var/lib/zabbix
[root@server2 ~]# vim /var/lib/zabbix/.my.cnf
[client]
protocol=tcp
user='zbx_monitor'
password='westos'
主机关联服务监控模板

percona数据库监控模板
安装软件
[root@server2 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server2 ~]# dnf install -y php-cli php-mysqlnd
拷贝模板
[root@server2 ~]# cd /var/lib/zabbix/percona/templates
[root@server2 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
重启服务
[root@server2 templates]# systemctl restart zabbix-agent
修改配置
[root@server2 templates]# cd /var/lib/zabbix/percona/scripts
[root@server2 scripts]# vim ss_get_mysql_stats.php
![]()
创建软链接
[root@server2 scripts]# ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/
测试
su -s /bin/sh -c "/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg" zabbix
有返回值表示成功

导入模型


tomcat服务监控
安装jmx
[root@server1 ~]# yum install zabbix-java-gateway
[root@server1 ~]# systemctl enable --now zabbix-java-gateway
查看端口
[root@server1 ~]# ss -antlp|grep :10052
配置zabbix server
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=192.168.247.142 #jmx服务所在主机地址
JavaGatewayPort=10052
StartJavaPollers=5

重启服务
[root@server1 ~]# systemctl restart zabbix-server
agent上部署tomcat服务
[root@server2 ~]# yum install java-1.8.0-openjdk
[root@server2 ~]# tar -zxf apache-tomcat-9.0.120.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ln -s apache-tomcat-9.0.120/ tomcat
[root@server2 local]# cd tomcat/
修改配置
[root@server2 tomcat]# vim bin/catalina.sh
tomcat9.0配置 需要添加换行符
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888 \
-Dcom.sun.management.jmxremote.rmi.port=8889 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false'

启动服务
[root@server2 tomcat]# /usr/local/tomcat/bin/startup.sh
添加jmx接口

关联模板


集成外部告警
安装探针
cd /usr/lib/zabbix/alertscripts/
[root@server1 alertscripts]# wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.3.tar.gz
[root@server1 alertscripts]# tar -zxf ca_zabbix_release-4.0.3.tar.gz
[root@server1 alertscripts]# cd cloudalert/bin

./install.sh 80521b7c-eb16-46d8-a0fd-6a621f4938e4 #需要替换为自己创建的appkey


zabbix api
获取token
[root@server1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' http://192.168.247.142/zabbix/api_jsonrpc.php | python -m json.tool
获取以下token,后续api 调用都是使用此token
{
"jsonrpc": "2.0",
"result": "aa9efecd6b3b39dd58f70ea681b0a9b8",
"id": 1
}
获取主机列表
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "aa9efecd6b3b39dd58f70ea681b0a9b8" #填写上面获取的token
}' http://192.168.247.142/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# chmod +x zabbix-api.sh

删除主机
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10084" #填写上面指令获取的主机ID
],
"id": 1,
"auth": "aa9efecd6b3b39dd58f70ea681b0a9b8"
}' http://192.168.247.142/zabbix/api_jsonrpc.php | python -m json.tool

添加主机
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "Zabbix server",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "127.0.0.1",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "4"
}
],
"tags": [
{
"tag": "Host name",
"value": "server1"
}
],
"templates": [
{
"templateid": "10001"
},
{
"templateid": "10261"
}
]
},
"id": 1,
"auth": "aa9efecd6b3b39dd58f70ea681b0a9b8"
}' http://192.168.247.142/zabbix/api_jsonrpc.php | python -m json.tool



2551

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



