zabbix監控管理工具簡介及安裝

zabbix監控管理工具

在介紹zabbix之前,先需要知道爲什麼需要監控,監控內容是什麼。監控就是通過一系列的數據採集和分析,將處理的信息反饋給管理者,以便於管理者即時做出的管理操作,規避風險。監控內容主要分類有:

  • 硬件----溫度、電壓、損壞等
  • 系統----CPU、內存、硬盤、網卡流量、TCP連接數、進程數
  • 應用----mysql、php、redis、ngnix等
  • 日誌----系統日誌、服務日誌、訪問日誌、錯誤日誌等
  • 安全----敏感文件
  • API----可用性、接口請求、響應時間
  • 業務----例如電商交易訂單、註冊用戶數、活躍時間等
  • 流量----客戶訪問的地理位置、頁面訪問量、頁面訪問時長等

一、zabbix概述

zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。

二、zabbix的主要特點

安裝與配置簡單,學習成本低、支持多語言(包括中文)、免費開源、自動發現服務器與網絡設備、分佈式監視以及WEB集中管理功能、可以無agent監視、用戶安全認證和柔軟的授權方式、通過WEB界面設置或查看監視結果、email等通知功能

三、zabbix組件

  • Zabbix server 是 Zabbix軟件的核心組件,agent 向其報告可用性、系統完整性信息和統計信息。server也是存儲所有配置信息、統計信息和操作信息的核心存儲庫。
  • 數據庫,所有配置信息以及 Zabbix 採集到的數據都被存儲在數據庫中。

  • Zabbix proxy 可以代替 Zabbix server採集性能和可用性數據。Zabbix proxy在Zabbix的部署是可選部分;但是proxy的部署可以很好的分擔單個Zabbix server的負載。

  • Web 界面,爲了從任何地方和任何平臺輕鬆訪問 Zabbix ,我們提供了基於 web 的界面。該界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 運行在同一臺物理機器上。

  • Zabbix agents 部署在被監控目標上,用於主動監控本地資源和應用程序,並將收集的數據發送給 Zabbix server。

四、環境準備及安裝zabbix

  1. 硬件配置參考
  2. 測試虛擬機安裝環境準備
#mysql安裝
[root@localhost ~]# yum -y install yum-utils
[root@localhost ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
[root@localhost ~]# yum-config-manager --disable mysql80-community     #取消安裝新版
[root@localhost ~]# yum-config-manager --enable mysql57-community      #設置安裝以前版
[root@localhost ~]# yum install mysql-community-server                 #安裝mysql
[root@localhost ~]# systemctl start mysqld                             #啓動mysql
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log      #獲取密碼
[root@localhost ~]# mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by 'Zabbix2020!';      #登錄mysql並重新設定密碼

[root@localhost ~]# vi /etc/my.cnf                                     #編輯mysql配置
[mysql]
socket = /tmp/mysql.sock

[mysqld]
user = mysql
port = 3306
datadir = /var/lib/mysql
socket = /tmp/mysql.sock
bind-address = 0.0.0.0
pid-file = /var/run/mysqld/mysqld.pid
character-set-server = utf8
collation-server = utf8_general_ci
log-error = /var/log/mysqld.log

max_connections = 1024
open_files_limit = 65535
innodb_buffer_pool_size = 512M
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M

#安裝zabbix
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@localhost ~]# yum install zabbix-server-mysql zabbix-web-mysql

#添加創建數據庫
mysql> create database zabbix;
#數據庫創建用戶
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'mypass';
mysql> GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';

#導入表數據
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.16/
[root@localhost zabbix-server-mysql-4.0.16]# zcat create.sql.gz|mysql -uzabbix -p zabbix 

#配置zabbix文件
[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf
#添加設置好的數據庫密碼DBPassword=密碼

#修改httpd的zabbix配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/zabbix.conf 
#修改時區php_value date.timezone Asua/Shanghai

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl start zabbix-server 
[root-@localhost ~]# ps -ef |grep zabbix    #啓動後,查看zabbix有多個進程
[root@localhost ~]# tail /var/log/zabbix/zabbix_server.log    #查看日誌看啓動是不是有問題

    3.啓動後,打開頁面 ,按照提示進行配置

      4.完成後,進行登錄測試,默認用戶admin,密碼zabbix(可以在個人中心修改密碼,語言設置)

五、源碼安裝

  1. 安裝內容----Nginx;PHP;初始化數據庫;Zabbix Server;Zabbix Web
#安裝nginx
[root@localhost ~]# wget https://nginx.org/download/nginx-1.16.1.tar.gz
[root@localhost ~]# yum install gcc pcre-devel openssl-devel -y
[root@localhost ~]# groupadd nginx && useradd -g nginx nginx -s /bin/false
[root@localhost src]# tar -zxvf nginx-1.16.1.tar.gz
[root@localhost src]# cd nginx-1.16.1
[root@localhost src]# ./configure --prefix=/usr/local/nginx/ --user=nginx --group=nginx --with-http_sub_module --with-http_ssl_module
#./cnfigure --help   查看模塊,根據需要配置添加需要模塊
make && make install

#修改配置文件
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
user  nginx;             #修改用戶
pid        /var/run/nginx.pid;         #修改PID

#添加systemctl管理 
[root@localhost nginx-1.16.1]# vi /usr/lib/systemd/system/nginx.service
#編輯內容如下
[Unit]
Description=The nginx http and reerse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=ture

[Install]
WantedBy=multi-user.target


#安裝PHP
[root@localhost src]# wget https://www.php.net/distributions/php-7.2.26.tar.gz
[root@localhost src]# tar -zxvf php-7.2.26.tar.gz

[root@localhost php-7.2.26]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-opcache --with-mysql --with-mysqli --enable-session --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --enable-xmlwriter --enable-xmlreader --enable-xml --enable-sockets --enable-bcmath --with-gettext
[root@localhost php-7.2.26]# make
[root@localhost php-7.2.26]# make install

[root@localhost php-7.2.26]# cp php.ini-production /usr/local/php/etc/php.ini
[root@localhost php-7.2.26]# cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
[root@localhost php-7.2.26]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@localhost ~]# cd /usr/local/php/etc/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# systemctl start php-fpm


#mysql安裝
[root@localhost ~]# yum -y install yum-utils
[root@localhost ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
[root@localhost ~]# yum-config-manager --disable mysql80-community     #取消安裝新版
[root@localhost ~]# yum-config-manager --enable mysql57-community      #設置安裝以前版
[root@localhost ~]# yum install mysql-community-server                 #安裝mysql
[root@localhost ~]# systemctl start mysqld                             #啓動mysql
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log      #獲取密碼
[root@localhost ~]# mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by 'Zabbix2020!';      #登錄mysql並重新設定密碼

[root@localhost ~]# vi /etc/my.cnf                                     #編輯mysql配置
[mysql]
socket = /tmp/mysql.sock

[mysqld]
user = mysql
port = 3306
datadir = /var/lib/mysql
socket = /tmp/mysql.sock
bind-address = 0.0.0.0
pid-file = /var/run/mysqld/mysqld.pid
character-set-server = utf8
collation-server = utf8_general_ci
log-error = /var/log/mysqld.log

max_connections = 1024
open_files_limit = 65535
innodb_buffer_pool_size = 512M
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M


#添加創建數據庫
mysql> create database zabbix;
#數據庫創建用戶
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'mypass';
mysql> GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';

[root@localhost src]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.17/zabbix-4.0.17.tar.gz
[root@localhost src]# tar -zxvf zabbix-4.0.17.tar.gz 

#安裝zabbix
[root@localhost ~]# yum install libxml2-devel libcurl-devel libevent-devel net-snmp-devel mysql-community-devel -y
[root@localhost ~]# groupadd zabbix
[root@localhost ~]# useradd -g zabbix zabbix -s /sbin/nologin
[root@localhost ~]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
[root@localhost zabbix-4.0.17]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
[root@localhost zabbix-4.0.17]# make && make install

[root@localhost zabbix-4.0.17]# vi /usr/lib/systemd/system/zabbix-server.service 
#編輯配置文件如下,zabbix_server進行systemctl管理
[Unit]
Description=Zabbix server
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target
#編輯配置文件如下,zabbix-agent進行systemctl管理
[Unit]
Description=Zabbix agentd
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agentd
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-use.target

#配置zabbix文件
[root@localhost ~]# vi /usr/local/zabbix/etc/zabbix_server.conf
#添加設置好的數據庫密碼DBPassword=密碼

#導入數據
[root@localhost ~]# cd src/zabbix-4.0.17/database/mysql/
[root@localhost mysql]# mysql -uzabbix -p'Minioe@1' zabbix < schema.sql 
[root@localhost mysql]# mysql -uzabbix -p'Minioe@1' zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p'Minioe@1' zabbix < data.sql 
#複製頁面文件
[root@localhost src]# cp zabbix-4.0.17/frontends/php/* /usr/local/nginx/html/ -rf
#修改PHP配置
[root@localhost ~]# vi /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
mysqli.default_socket = /var/lib/mysql/mysql.sock

#修改nginx配置
[root@localhost ~]# /usr/local/nginx/conf/nginx.conf
location / {
            root   html;
            index  index.php index.html index.htm;   #添加index.php
        }
#取消註釋並更改如下
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
         }

#開機自啓動
[root@localhost ~]# systemctl enable zabbix_server
[root@localhost ~]# systemctl enable php-fpm
[root@localhost ~]# systemctl enable nginx

 

發佈了38 篇原創文章 · 獲贊 14 · 訪問量 6391
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章