寫在前面
- 關於監控的多樣化與重要性,我就不介紹了,這里推薦一篇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


寫作不易,轉載請注明出處,謝謝~~