zabbix部署
[toc]
zabbix介绍:
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
zabbix特点:
zabbix的主要特点:
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
Zabbix主要功能:
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视
zabbix配置文件
zabbix配置文件有两种:
服务器端配置文件(/usr/local/etc/zabbix_server.conf)
客户端配置文件(/usr/local/etc/zabbix_agentd.conf)
zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
zabbix服务端安装
安装依赖包
[root@localhost ~]# dnf -y install net-snmp-devel libevent-devel
下载
官网https://www.zabbix.com/
通过xftp传过来
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1 pass
apr-1.7.0 httpd-2.4.43 zabbix-5.2.6.tar.gz
#解压
[root@localhost ~]# tar xf zabbix-5.2.6.tar.gz
ls[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1 pass zabbix-5.2.6.tar.gz
apr-1.7.0 httpd-2.4.43 zabbix-5.2.6
#创建系统用户
[root@localhost ~]# useradd -r -M -s /sbin/nologin zabbix
[root@localhost ~]# id zabbix
uid=991(zabbix) gid=989(zabbix) groups=989(zabbix)
配置zabbix数据库
[root@localhost ~]# mysql -uroot -phzy
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identifiedd by 'zabbix123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| zabbix |
+--------------------+
5 rows in set (0.00 sec)
mysql> show tables from zabbix;
Empty set (0.00 sec)
mysql> quit
Bye
导入数据库
[root@localhost ~]# cd zabbix-5.2.6
[root@localhost zabbix-5.2.6]# ls
aclocal.m4 compile configure.ac INSTALL man sass
AUTHORS conf COPYING install-sh misc src
bin config.guess database m4 missing ui
build config.sub depcomp Makefile.am NEWS
ChangeLog configure include Makefile.in README
[root@localhost zabbix-5.2.6]# cd database/
[root@localhost database]# ls
elasticsearch Makefile.in oracle sqlite3
Makefile.am mysql postgresql
[root@localhost database]# cd mysql/
[root@localhost mysql]# ls
data.sql double.sql images.sql Makefile.am Makefile.in schema.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix123 zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -pzabbix123 zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -pzabbix123 zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -pzabbix123 -e'show tables from zabbix'
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
| auditlog |
| auditlog_details |
| autoreg_host |
|............... |
+----------------------------+
#就会看到以上数据
编译安装zabbix
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1 pass zabbix-5.2.6.tar.gz
apr-1.7.0 httpd-2.4.43 zabbix-5.2.6
[root@localhost ~]# cd zabbix-5.2.6
[root@localhost zabbix-5.2.6]#
[root@localhost zabbix-5.2.6]# ./configure --enable-server \
> --enable-agent \
> --with-mysql \
> --with-net-snmp \
> --with-libcurl \
> --with-libxml2
[root@localhost zabbix-5.2.6]# make install
zabbix服务端配置
[root@localhost zabbix-5.2.6]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_server.conf
zabbix_agentd.conf.d zabbix_server.conf.d
#修改服务端配置文件,设置数据库信息
[root@localhost etc]# vim zabbix_server.conf
#找到118行设置zabbix数据库连接密码
118 DBPassword=zabbix123
[root@localhost etc]# zabbix_server
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
zabbix服务端web界面安装与配置
zabbix web界面安装前配置
修改/etc/php.ini的配置并重启php-fpm
[root@localhost zabbix-5.2.6]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-5.2.6]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-5.2.6]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-5.2.6]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix-5.2.6]# service php-fpm restart
Redirecting to /bin/systemctl restart php-fpm.service
[root@localhost apache]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# ls
hzy index.html
[root@localhost htdocs]# mv hzy zabbix
[root@localhost htdocs]# ls
index.html zabbix
[root@localhost htdocs]# cd zabbix/
[root@localhost zabbix]# ls
index.php
[root@localhost zabbix]# rm -f index.php
[root@localhost zabbix]# ll
total 0
#把安装目录里面的ui cp到/usr/local/apache/htdocs/zabbix/
[root@localhost zabbix]# cd ~
[root@localhost ~]# cd zabbix-5.2.6
[root@localhost zabbix-5.2.6]# ls
aclocal.m4 conf configure.ac install-sh misc ui
AUTHORS config.guess COPYING m4 missing
bin config.log database Makefile NEWS
build config.status depcomp Makefile.am README
ChangeLog config.sub include Makefile.in sass
compile configure INSTALL man src
[root@localhost zabbix-5.2.6]# ls ui
actionconf.php host_discovery.php overview.php
api_jsonrpc.php hostgroups.php queue.php
app hostinventoriesoverview.php report2.php
assets hostinventories.php report4.php
audio host_prototypes.php robots.txt
auditacts.php hosts.php screenconf.php
browserwarning.php httpconf.php screenedit.php
chart2.php httpdetails.php screen.import.php
chart3.php image.php screens.php
chart4.php imgstore.php services.php
chart5.php include setup.php
chart6.php index_http.php slideconf.php
chart7.php index.php slides.php
chart.php index_sso.php srv_status.php
composer.json items.php sysmap.php
composer.lock js sysmaps.php
conf jsLoader.php templates.php
conf.import.php jsrpc.php toptriggers.php
correlation.php local tr_events.php
discoveryconf.php locale trigger_prototypes.php
disc_prototypes.php maintenance.php triggers.php
favicon.ico map.import.php vendor
graphs.php map.php zabbix.php
history.php modules
[root@localhost zabbix-5.2.6]# cp -r ui/* /usr/local/apache/htdocs/zabbix/
[root@localhost zabbix-5.2.6]# ll /usr/local/apache/htdocs/zabbix/
total 948
-rw-r--r-- 1 root root 22808 May 13 18:43 actionconf.php
-rw-r--r-- 1 root root 2350 May 13 18:43 api_jsonrpc.php
drwxr-xr-x 5 root root 71 May 13 18:43 app
drwxr-xr-x 5 root root 44 May 13 18:43 assets
drwxr-xr-x 2 root root 173 May 13 18:43 audio
-rw-r--r-- 1 root root 5081 May 13 18:43 auditacts.php
-rw-r--r-- 1 root root 1419 May 13 18:43 browserwarning.php
-rw-r--r-- 1 root root 5095 May 13 18:43 chart2.php
-rw-r--r-- 1 root root 6986 May 13 18:43 chart3.php
-rw-r--r-- 1 root root 5593 May 13 18:43 chart4.php
-rw-r--r-- 1 root root 5711 May 13 18:43 chart5.php
-rw-r--r-- 1 root root 3596 May 13 18:43 chart6.php
-rw-r--r-- 1 root root 3901 May 13 18:43 chart7.php
-rw-r--r-- 1 root root 4505 May 13 18:43 chart.php
-rw-r--r-- 1 root root 48 May 13 18:43 composer.json
-rw-r--r-- 1 root root 8010 May 13 18:43 composer.lock
drwxr-xr-x 3 root root 94 May 13 18:43 conf
-rw-r--r-- 1 root root 7330 May 13 18:43 conf.import.php
-rw-r--r-- 1 root root 16645 May 13 18:43 correlation.php
-rw-r--r-- 1 root root 13872 May 13 18:43 discoveryconf.php
-rw-r--r-- 1 root root 57032 May 13 18:43 disc_prototypes.php
-rw-r--r-- 1 root root 32988 May 13 18:43 favicon.ico
-rw-r--r-- 1 root root 25580 May 13 18:43 graphs.php
-rw-r--r-- 1 root root 4453 May 13 18:43 history.php
-rw-r--r-- 1 root root 35772 May 13 18:43 host_discovery.php
-rw-r--r-- 1 root root 9707 May 13 18:43 hostgroups.php
-rw-r--r-- 1 root root 6445 May 13 18:43 hostinventoriesoverview.php
-rw-r--r-- 1 root root 9291 May 13 18:43 hostinventories.php
-rw-r--r-- 1 root root 22008 May 13 18:43 host_prototypes.php
-rw-r--r-- 1 root root 51467 May 13 18:43 hosts.php
-rw-r--r-- 1 root root 29471 May 13 18:43 httpconf.php
-rw-r--r-- 1 root root 6514 May 13 18:43 httpdetails.php
-rw-r--r-- 1 root root 1856 May 13 18:43 image.php
-rw-r--r-- 1 root root 3576 May 13 18:43 imgstore.php
drwxr-xr-x 4 root root 4096 May 13 18:43 include
-rw-r--r-- 1 root root 3201 May 13 18:43 index_http.php
-rw-r--r-- 1 root root 4136 May 13 18:43 index.php
-rw-r--r-- 1 root root 8951 May 13 18:43 index_sso.php
-rw-r--r-- 1 root root 78615 May 13 18:43 items.php
drwxr-xr-x 5 root root 4096 May 13 18:43 js
-rw-r--r-- 1 root root 16046 May 13 18:43 jsLoader.php
-rw-r--r-- 1 root root 19490 May 13 18:43 jsrpc.php
drwxr-xr-x 4 root root 60 May 13 18:43 local
drwxr-xr-x 35 root root 4096 May 13 18:43 locale
-rw-r--r-- 1 root root 14295 May 13 18:43 maintenance.php
-rw-r--r-- 1 root root 4188 May 13 18:43 map.import.php
-rw-r--r-- 1 root root 2136 May 13 18:43 map.php
drwxr-xr-x 2 root root 6 May 13 18:43 modules
-rw-r--r-- 1 root root 10770 May 13 18:43 overview.php
-rw-r--r-- 1 root root 8633 May 13 18:43 queue.php
-rw-r--r-- 1 root root 18738 May 13 18:43 report2.php
-rw-r--r-- 1 root root 7284 May 13 18:43 report4.php
-rw-r--r-- 1 root root 974 May 13 18:43 robots.txt
-rw-r--r-- 1 root root 11970 May 13 18:43 screenconf.php
-rw-r--r-- 1 root root 10235 May 13 18:43 screenedit.php
-rw-r--r-- 1 root root 4210 May 13 18:43 screen.import.php
-rw-r--r-- 1 root root 4943 May 13 18:43 screens.php
-rw-r--r-- 1 root root 12254 May 13 18:43 services.php
-rw-r--r-- 1 root root 7052 May 13 18:43 setup.php
-rw-r--r-- 1 root root 13338 May 13 18:43 slideconf.php
-rw-r--r-- 1 root root 6663 May 13 18:43 slides.php
-rw-r--r-- 1 root root 5419 May 13 18:43 srv_status.php
-rw-r--r-- 1 root root 9870 May 13 18:43 sysmap.php
-rw-r--r-- 1 root root 16711 May 13 18:43 sysmaps.php
-rw-r--r-- 1 root root 35618 May 13 18:43 templates.php
-rw-r--r-- 1 root root 6341 May 13 18:43 toptriggers.php
-rw-r--r-- 1 root root 6931 May 13 18:43 tr_events.php
-rw-r--r-- 1 root root 26508 May 13 18:43 trigger_prototypes.php
-rw-r--r-- 1 root root 38231 May 13 18:43 triggers.php
drwxr-xr-x 7 root root 102 May 13 18:43 vendor
-rw-r--r-- 1 root root 842 May 13 18:43 zabbix.php
修改属主属组
[root@localhost zabbix-5.2.6]# chown -R apache.apache /usr/local/apache/htdocs/
配置apache虚拟主机
[root@localhost zabbix-5.2.6]# vim /etc/httpd24/extra/vhosts.conf
#修改如下
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName www.hzy.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://0.0.0.0:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
[root@localhost zabbix-5.2.6]# apachectl restart
[root@localhost zabbix-5.2.6]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@localhost zabbix-5.2.6]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@localhost zabbix-5.2.6]# ll -d /usr/local/apache/htdocs/zabbix/confdrwxrwxrwx 3 apache apache 94 May 13 18:43 /usr/local/apache/htdocs/zabbix/conf
数据库授权zabbix用户使用本地IP地址登录
[root@localhost zabbix-5.2.6]# mysql -uroot -pbwxh
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 73
Server version: 5.7.33 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant all on *.* to zabbix@'192.168.207.128' identified by 'zabbix123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
[root@localhost zabbix-5.2.6]# apachectl restart
安装zabbix web界面
恢复zabbix/conf目录的权限为755:
[root@localhost zabbix-5.2.6]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
[root@localhost zabbix-5.2.6]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxr-xr-x 3 apache apache 117 May 13 19:05 /usr/local/apache/htdocs/zabbix/conf
登录zabbix
zabbix默认登录用户名和密码:
用户名: Admin
密码:zabbix