系統環境
OS: centos7.5
software: zabbix 4.0 LTS
DBSever: MariaDB-10.2.15
一、需要先把數據庫裝上,這裏用到的是mariadb 二進制包安裝
1、下載二進制包,
官網的下載路徑:
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.15/bintar-linux-x86_64/mariadb-10.2.15-linux-x86_64.tar.gz
2、添加組和用戶
[root@node2 ~]# groupadd -r -g 306 mysql
[root@node2 ~]# useradd -g mysql -u 306 -r mysql
3、解壓mariadb二進制包到/usr/local下去
[root@node2 ~]# tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/
4、進入到/usr/local下面創建mysql的軟連接
[root@node2 ~]# cd /usr/local/
[root@node2 /usr/local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql
5、修改mysql的相對應的屬主和屬組權限
[root@node2 /usr/local]# chown -R root.mysql mysql/
6、創建數據文件的存放路徑,並修改所屬組的權限爲mysql
[root@node2 ~]# cd /app/
[root@node2 /app]# mkdir mydata
[root@node2 ]# chown -R mysql.mysql /app
7、初始化數據庫,指定好數據文件的存放路徑和用戶
[root@node2 ]# cd /usr/local/mysql/
[root@node2 /usr/local/mysql/]# scripts/mysql_install_db --datadir=/app/mydata --user=mysql
8、拷貝mariadb的啓動腳本到/etc/rc.d/init.d下命名爲mysqld
[root@node2 /usr/local/mysql/]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
9、把mysqld設置爲開機啓動
[root@node2 /usr/local/mysql/]# chkconfig --add mysqld
10、創建mariadb的配置文件存放路徑,並拷貝模版文件到這個目錄下命名爲my.cnf
[root@node2 /usr/local/mysql/]# mkdir /etc/mysql
[root@node2 /usr/local/mysql/]#cp support-files/my-large.cnf /etc/mysql/my.cnf
11、配置系統環境變量,重讀配置文件讓它生效
[root@node2 /usr/local/mysql/]# vim /etc/profile.d/mysql.sh
[root@node2 /usr/local/mysql/]#export PATH=/usr/local/mysql/bin:$PATH
[root@node2 /usr/local/mysql/]# . /etc/profile.d/mysql.sh
12、修改mariadb的配置文件需要增加幾條內容
[root@node2 /usr/local/mysql/]# vim /etc/mysql/my.cnf
lower_case_table_names = 1
character-set-server = utf8
datadir = /app/mydata
innodb_file_per_table = on
skip_name_resolve = o
13、啓動數據庫服務
[root@node2 /usr/local/mysql/]# service mysqld start
14、查看mariadb的服務端口是否正常監聽
[root@node2 /app]#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:52874 *:*
LISTEN 0 128 *:11211 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 :::3306 :::*
15、數據庫的安全初始操作,設置完之後就可以先創建zabbix相關的庫和用戶
[root@node2 /app]#mysql_secure_installation
[root@node2 /app]#mysql -uroot -p
16、創建zabbix庫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
17、給zabbix庫授權並指定用戶
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'192.168.137.%' identified by '123456';
18、在另一臺主機上測試用zabbix用是否能正常登陸數據庫
[root@node7 ~]#mysql -uzabbix -p123456 -h192.168.137.54
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.2.15-MariaDB-log MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| zabbix |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]>
19、在zabbix server主機上導入zabbix自帶的三個表,路徑在/root/zabbix-4.0.1/database/mysql下後綴爲.sql的三個文件
[root@node6 ~/zabbix-4.0.1]#ls -l database/mysql/
total 5816
-rw-r--r-- 1 1001 1001 3795433 Oct 30 01:36 data.sql
-rw-r--r-- 1 1001 1001 1978341 Oct 30 01:36 images.sql
-rw-r--r-- 1 root root 15323 Nov 26 22:44 Makefile
-rw-r--r-- 1 1001 1001 392 Oct 30 01:36 Makefile.am
-rw-r--r-- 1 1001 1001 15711 Oct 30 01:36 Makefile.in
-rw-r--r-- 1 1001 1001 140265 Oct 30 01:36 schema.sql
20、導入sql文件是有先後順序的,先導schema.sql、images.sql、data.sql.
[root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < schema.sql
[root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < images.sql
[root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < data.sql
21、進到數據庫裏面查看zabbix庫是否導入成功
[root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
| auditlog |
| auditlog_details |
| autoreg_host |
| conditions |
| config |
| corr_condition |
| corr_condition_group |
.......
| users |
| users_groups |
| usrgrp |
| valuemaps |
| widget |
| widget_field |
+----------------------------+
144 rows in set (0.00 sec)
二、編譯zabbix
1、安裝編譯環境所需要的依賴包組
[root@node6 ~]#yum install gcc libxml2-devel libevent-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel –y
還需要安裝一些php的依賴包後續在網頁端安裝zabbix時需要用到所以先提前安裝好
[root@node6 ~]#yum install php-gettext php-session php-ctype php-xmlreader php-xmlwrer php-xml php-net-socket php-gd php-mysql -y
2、安裝jdk環境,裝的是jdk-8u191-linux-x64.rpm的包,要不後面編譯時會報Java找不到。
[root@node6 ~]#yum -y install jdk-8u191-linux-x64.rpm
3、創建zabbix用戶
[root@node6 ~]#useradd zabbix -s /sbin/nologin
4、下載zabbix的源碼包
[root@node6 ~]#wget http://192.168.137.53/yum/zabbix/zabbix-4.0.1.tar.gz
5、解壓源碼包,並進入到解壓後的目錄裏去
[root@node6 ~]#tar xf zabbix-4.0.1.tar.gz
[root@node6 ~]#cd zabbix-4.0.1/
[root@node6 ~/zabbix-4.0.1]#
6、開始編譯安裝zabbix
[root@node6 ~/zabbix-4.0.1./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--enable-java
7、執行make install
[root@node6 ~/zabbix-4.0.1]#make -j 2 && make install
8、拷貝啓動腳本文件到/etc/init.d目錄下
[root@node6 ~/zabbix-4.0.1]#cp misc/init.d/fedora/core/* /etc/init.d/
9、拷貝過去的腳本需要修改下目錄路徑,server和agent都需要改
[root@node6 ~/zabbix-4.0.1]#vim /etc/init.d/zabbix_server
22 BASEDIR=/usr/local
改成:
22 BASEDIR=/usr/local/zabbix
agent啓動腳本修改也是一樣
[root@node6 ~/zabbix-4.0.1vim /etc/init.d/zabbix_agentd
22 BASEDIR=/usr/local
改成:
22 BASEDIR=/usr/local/zabbix
10、創建zabbix的日誌存放路徑和修改/usr/local/zabbix的所屬主爲zabbix
[root@node6 ~/zabbix-4.0.1]#mkdir /var/log/zabbix
[root@node6 ~/zabbix-4.0.1]#chown -R zabbix.zabbix /var/log/zabbix
[root@node6 ~/zabbix-4.0.1]#ll /var/log/zabbix/ -d
drwxr-xr-x 2 zabbix zabbix 6 Nov 27 09:17 /var/log/zabbix/
[root@node6 ~]#chown -R zabbix.zabbix /usr/local/zabbix/
[root@node6 ~]#ll -d /usr/local/zabbix/
drwxr-xr-x 7 zabbix zabbix 64 Nov 26 22:45 /usr/local/zabbix/
11、修改配置文件
[root@node6 ~/zabbix-4.0.1]#vim /usr/local/zabbix/etc/zabbix_server.conf
ListenPort=10051 啓用監聽端口,不過默認也是啓用的。
LogFile=/var/log/zabbix/zabbix_server.log 修改日誌存放路徑,默認是在/tmp下
LogFileSize=5 開啓日誌滾動,單位爲MB、達到指定值之後就生成新的日誌文件。
DebugLevel=4 日誌級別等級,4爲debug,利於排除錯誤,排錯之後可以改成3級別的。
PidFile=/usr/local/zabbix/zabbix_server.pid zabbix pid文件路徑默認爲tmp下需要改成安裝目錄,並且安裝目錄的所屬組要改成zabbix用戶
# SocketDir=/tmp
User=zabbix 啓動的用戶默認也是zabbix,如果要改成root的話 還需要修改一項
# AllowRoot=0 需要改成1才能使用root來啓動,默認0的話是被禁止用root啓動,不過最好別用root
SocketDir=/usr/local/zabbix socket 文件存放路徑默認在/tmp下
DBHost=192.168.137.54 數據庫地址必須要填
DBName=zabbix 數據庫名稱
DBUser=zabbix 數據庫連接用戶
DBPassword=123456 數據庫連接密碼,建議在生產中密碼不要太簡單了。
DBPort=3306 數據庫端口,其實也不用開默認就是3306
12、啓動zabbix、並查看端口是否正常監聽
[root@node6 ~/zabbix-4.0.1]#service zabbix_server start
Reloading systemd: [ OK ]
Starting zabbix_server (via systemctl): [ OK ]
[root@node6 ~/zabbix-4.0.1]#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
13、裝前端展示端
[root@node6 ~/zabbix-4.0.1]#yum -y install httpd
14、在httpd的默認工作目錄下創建一個zabbix目錄
[root@node6 ~/zabbix-4.0.1]#mkdir /var/www/html/zabbix
15、從zabbix解壓包裏面把php的所有文件拷貝到/var/www/html/zabbix目錄下
[root@node6 ~/zabbix-4.0.1]#cp -a frontends/php/* /var/www/html/zabbix/
16、啓動httpd、查看端口是否正常監聽
[root@node6 ~]#systemctl start httpd
[root@node6 ~]#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::80 :::*
17、通過網頁來安裝zabbix
修改php.ini 裏面的值
[root@node6 ~]#vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
重啓httpd服務
[root@node6 ~]#systemctl restart httpd
18、修改agent配置文檔
[root@node6 ~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1 被動模式下的server地址、這裏agent和server都在同一臺上面 默認用127.0.0.1就行
ListenPort=10050 agent的監聽地址爲10050
StartAgents=1 開啓多少個線程來採集數據,不過agent端的話默認就行,如果是server端那就要開大點
ServerActive=127.0.0.1 主動模式下的server地址
Hostname=Zabbix server 這塊需要注意要跟主機上的hostname一致,而且在網頁上添加監控主機時也需要添加這個要不然是找不到主機
Timeout=30 數據採集時的超時時長默認爲3,需要改成最大值30
UnsafeUserParameters=1 允許做一些特殊符號的計算
# UserParameter= 自定義監控項參數時用到
19、啓動zabbix server 端的agent,後續就可以採集到數據
[root@node6 ~]#service zabbix_agentd start
Starting zabbix_agentd (via systemctl): [ OK ]
[root@node6 ~]#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
20、把zabbix_server、zabbix_agent、httpd設爲開機啓動
[root@node6 ~]#chkconfig zabbix_agentd on
[root@node6 ~]#chkconfig zabbix_server on
[root@node6 ~]#systemctl enable httpd