写在前面
- 关于监控的多样化与重要性,我就不介绍了,这里推荐一篇zabbix介绍的文章,我觉得这位大佬写的很nice。
- 官方文档:https://www.zabbix.com/documentation/5.0/zh/start
zabbix部署
- 当前环境。
0 16:22:06 root@zabbix,172.16.2.10:~ # cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
- 添加zabbix仓库源,并激活。
0 17:09:58 root@zabbix,172.16.2.10:~ # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
0 17:11:42 root@zabbix,172.16.2.10:~ # yum clean all
0 17:12:17 root@zabbix,172.16.2.10:~ # vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
- 安装zabbix组件。
0 17:12:17 root@zabbix,172.16.2.10:~ # yum -y install zabbix-server-mysql zabbix-agent centos-release-scl
0 17:14:03 root@zabbix,172.16.2.10:~ # yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl
- 部署mysql,并创建对应zabbix库。
0 17:16:42 root@mysql-public,172.16.2.4:~ # mysql -uroot -p -S /server/data/mysql_3310/mysql.sock
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to 'zabbix'@'172.16.%' identified by 'password';
mysql> flush privileges;
mysql> \q
- 导入sql文件。
# 默认sql文件在zabbix安装主机的/usr/share/doc/zabbix-server-mysql*/路径下,如果mysql是单独部署,则需要将sql文件拷贝到mysql主机再做导入。
0 17:30:32 root@mysql-public,172.16.2.4:~ # zcat create.sql.gz | mysql -uzabbix -p -h 172.16.2.4 -P 3310 zabbix
- 配置zabbix。
# 创建对应目录及文件。(/server是我数据盘)
0 14:06:30 root@zabbix,172.16.2.10:~ # mkdir -p /server/log/zabbix
0 14:06:40 root@zabbix,172.16.2.10:~ # touch /server/log/zabbix/zabbix_server.log
0 14:06:44 root@zabbix,172.16.2.10:~ # touch /server/log/zabbix/zabbix_agent.log
0 14:06:52 root@zabbix,172.16.2.10:~ # chown -R zabbix. /server/log/zabbix
# 修改zabbix-server的配置
0 14:07:10 root@zabbix,172.16.2.10:~ # cp /etc/zabbix/zabbix_server.conf{,.bak}
0 14:07:18 root@zabbix,172.16.2.10:~ # vim /etc/zabbix/zabbix_server.conf
# ListenPort=10051 # 监听端口,保持默认即可
# SourceIP= # 当server端有多个IP地址时,我们可以此选项指定服务端使用固定的IP与agent端进行通讯。
# LogType=file # 执行使用哪种方式记录日志,有三种方式:'system'表示将日志发往syslog,'file'表示使用指定的文件作为日志文件,'console'表示将日志发往控制台,默认为file。
LogFile=/server/log/zabbix/zabbix_server.log # 执行日志文件的位置
LogFileSize=200 # 指定日志文件达到多大时自动切割,单位为MB,设置为0代表不切割,所有日志保存在一个文件中。
# DebugLevel=3 # 指定日志级别,配置文件中有针对级别的说明,默认为3
PidFile=/var/run/zabbix/zabbix_server.pid # 指定PID文件的位置,此处指定PID文件后,手动将zabbix-server.service文件中的PID配置删除掉。
SocketDir=/var/run/zabbix # 指定存储socket的目录,从zabbix 3.4.0之后开始支持该参数。
DBHost=172.16.2.4 # 默认为localhost,当DB跟zabbix-server不在同一主机时,需要指定DB主机。
DBName=zabbix # 指定zabbix-server使用的DB库名
DBUser=zabbix # DB用户名
DBPassword=xxxxxxx # DB密码
DBPort=3310 # DB端口
# StartPollers=5 # 指定初始化时轮询的进程数量,启动的进程数越多,则服务端吞吐能力越强,对系统资源消耗越大。
Timeout=4 # 与agent,、SNMP设备或其它外部设备通信的超时时长(单位为秒)。根据网络和客户端具体状况调整此值,调大此值时,应考虑StartPollers参数是否也需要调大。
AlertScriptsPath=/usr/lib/zabbix/alertscripts # 自定义告警脚本的存放位置。
ExternalScripts=/usr/lib/zabbix/externalscripts # 外部脚本的存放位置
LogSlowQueries=3000 # 指定zabbix-server查询数据库所消耗的时间,单位是毫秒,1毫秒=0.001秒;超过该时间会记入日志。
StatsAllowedIP=172.16.0.0/20 # 指定允许访问zabbix-server的地址
# 修改时区为亚洲上海。
0 15:42:08 root@zabbix,172.16.2.10:~ # cp /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf{,.bak}
0 15:42:17 root@zabbix,172.16.2.10:~ # vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai
# 修改nginx主配置文件。
0 14:22:35 root@zabbix,172.16.2.10:~ # vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/opt/rh/rh-nginx116/log/nginx/error.log;
pid /var/opt/rh/rh-nginx116/run/nginx/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/opt/rh/rh-nginx116/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/opt/rh/rh-nginx116/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/opt/rh/rh-nginx116/nginx/conf.d/*.conf;
}
# 修改nginx-zabbix配置文件,只修改如下部分。
0 14:23:15 root@zabbix,172.16.2.10:~ # vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
listen 8000;
server_name 172.16.2.10;
fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;
#fastcgi_pass 127.0.0.1:9000; # 也可以使用代理到9000端口的方式,看个人。
- 启动zabbix。
0 14:26:37 root@zabbix,172.16.2.10:~ # systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
0 14:26:45 root@zabbix,172.16.2.10:~ # systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
- 图形化配置,浏览器输入http://IP:Port。如http://172.16.2.10:8000。






- 登录,默认用户Admin(大写A),默认密码:zabbix


写作不易,转载请注明出处,谢谢~~