Linux 7 安裝 Zabbix 4.4.8 + grafana 6.6.2


 

目錄

1 Zabbix 簡介

2 Zabbix 服務安裝部署及監控配置

3 配置監控進程主機

4 解決 zabbix 中文亂碼

5 文件系統可用空間小於 20G 自動告警

6 使用 Grafana 展示 zabbix 監控圖表

 

############################# 開始部署  ############################

 

1  zabbix 簡介

 

1.1  zbabix 簡介

官方網站:http://www.zabbix.com/

 

企業級監控解決方案

zabbix 是一個基於 WEB 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案 zabbix 能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位解決存在的各種問題。

 

Zabbix 主要特點 

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

 

Zabbix 主要功能

監控 CPU 負載、內存使用、磁盤使用、網絡狀態、端口監視、日志監視、插件開發自定義

 

1.2  Zabbix 運行機制

 

Zabbix Server 和 Zabbix agent

Zabbix Server 可以通過 SNMP,Zabbix agent,Ping,端口監視等你方法提供對進程服務器/網絡狀態的 監視,數據收集功能,可以在運行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD, OX X,Windows 多 平台。

 

Zabbix Agent 安裝在需要被監控的目標服務器上,主要完成對硬件信息不操作系統有關的內存, CPU 等你 信息收集。

 

Zabbix Server 可以單獨監視進程服務器的服務狀態,同時也可以不 Zabbix Agent 結合。可以輪詢 Zabbix Agent 主勱接收監視數據(trapping 傳遞 方式),同時還可以被勱接收 Zabbix Agent 發送的數據。

 

Zabbix 運行過程圖

 

 

 

 

 

Zabbix 支持多種網絡方式下的監控,可以通過分布式的部署和安裝監控代理 Zabbix,通過 C/S 模式采集數據,通過 B/S 模式在 Web 端展示和配置!Agent 監控端口 10050

 

服務端安裝 Zabbix Server 和 Zabbix Agent 兩個服務,客戶端只安裝 Zabbix Agent 一個服務,監控原理 就是 Zabbix Agent 服務將從系統中獲取的相關數據傳送給 Zabbix Server,然后 Zabbix Server 服務將數據分析之后以 PHP 頁面展示出來!

 

2 Zabbix 服務安裝部署及監控配置

 

2.1 安裝LNMP 環境

 

2.2  方法一  Zabbix 官網安裝 :

https://www.zabbix.com/cn/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx

 

 

2.3 方法二  自己部署 LNMP 平台

安裝MySQL5.7 數據庫

MySQL 官網下載: https://downloads.mysql.com/archives/community/

 

選着版本,下載本地再上傳至服務器,我這下載的是

mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar.gz  

 

~]# mkdir mysql

 ~]# cd mysql

mysql]# rz

 

 

 

 

mysql]# tar -xf  mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar.gz

mysql]# ll

 

 

 

 

mysql]# yum -y install mysql-community-*.rpm

mysql]# systemctl start  mysqld

mysql]# systemctl enable mysqld

mysql]# netstat -ntulp | grep  mysqld

tcp6       0      0 :::3306        :::*             LISTEN      18427/mysqld

 

mysql]# grep password  /var/log/mysqld.log   ## 查找數據庫初始密碼

2020-05-07T08:07:03.706853Z 1 [Note] A temporary password is generated for root@localhost: ahU82+fwz:0Y

 

mysql]# mysql -u root -p  

Enter password:  ##輸入初始密碼登錄數據庫

mysql> alter user  "root"@"localhost"  identified  by  "poweroff"; ##設置新密碼

mysql> exit;

 

 

mysql]# mysql -u root -p

Enter password:  ##輸入新密碼登錄數據庫

mysql> create database zabbix character set utf8 collate utf8_bin; ##創建zabbix庫

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';   ## 添加 zabbix 庫授權用戶

mysql> quit;

 

 

 

安裝Nginx

mysql]# cat /etc/yum.repos.d/nginx.repo  ##配置nginx yum源

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

 

mysql]# yum makecache  ##刷新緩存

mysql]# yum -y install nginx  ##安裝nginx

mysql]# nginx  -t

mysql]# systemctl start nginx

mysql]# netstat -ntulp | grep nginx

tcp       0      0 0.0.0.0:80         0.0.0.0:*        LISTEN      90777/nginx: master

 

注:

1、 Nginx 官網: http://nginx.org/en/download.html

2、nginx源的nginx官網源,yum 安裝時默認使用最新版本,不想使用最新版本也可以去nginx 官網下載源碼包安裝, 以下是nginx 源碼安裝模塊

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

 

 

 

安裝PHP

PHP 官網下載:https://www.php.net/downloads

選着版本,下載本地再上傳至服務器,我這下載的是 php-7.2.30.tar.gz

 

~]# mkdir php

~]# cd php

php]# rz

 

 

 

 

php]# tar -xf php-7.2.30.tar.gz

php]# ls

 

 

 

php]# cd php-7.2.30

php-7.2.30]# yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel MySQL pcre-devel  curl-devel libxslt-devel    ##安裝php 依賴包

 

php-7.2.30]# ./configure --prefix=/usr/local/php7.2 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir  --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite  --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm  --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex  --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-calendar  --with-bz2  --with-jpeg-dir --with-freetype-dir

 

php-7.2.30]# make

php-7.2.30]# make install

 

php-7.2.30]# cp  php.ini-production   /usr/local/php7.2/etc/php.ini

etc]# cd  /usr/local/php7.2/etc/

etc]# cp  php-fpm.conf.default  php-fpm.conf

php-fpm.d]# cd  php-fpm.d/

php-fpm.d]# cp  www.conf.default   www.conf

注: 這里都是相對路徑

 

創建PHP 啟動腳本

php-fpm.d]# cp  /opt/php-7.2.30/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

php-fpm.d]# chmod  755  /etc/init.d/php-fpm

 

啟動PHP

php-fpm.d]# /etc/init.d/php-fpm start

 

檢驗

php-fpm.d]# netstat -ntulp | grep php-fpm

tcp     0      0 127.0.0.1:9000      0.0.0.0:*      LISTEN      15391/php-fpm: mast

 

 

2.4、安裝zabbix4.4 版本

~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm   ## 安裝zabbix 官網 yum 源

~]# yum -y install epel-release

~]# yum makecache

~]# yum -y install zabbix-server-mysql

~]# yum -y install zabbix-agent

~]# yum -y  install zabbix-web-mysq

 注:這里有時會安裝失敗,與網絡有關,多安裝幾次

 

導入初始架構和數據,系統將提示輸入新創建的密碼。

~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

 

Zabbix server配置數據庫

~]# vim /etc/zabbix/zabbix_server.conf

DBPassword=password  ##數據庫鏈接密碼

 

Zabbix前端配置PHP

~]# mv  /etc/nginx/conf.d/default.conf{,.bak}

~]# cat /etc/nginx/conf.d/zabbix.conf

server {

        listen          80;

        server_name    www.zabbix.od.com.od;    ##這里域名是我虛擬機內網的域名,需要修改windows 的hosts 文件,解析域名

 

        root    /usr/share/zabbix;

 

        index   index.php;

 

        location = /favicon.ico {

                log_not_found   off;

        }

 

        location / {

                try_files       $uri $uri/ =404;

        }

 

        location /assets {

                access_log      off;

                expires         10d;

        }

 

        location ~ /\.ht {

                deny            all;

        }

 

        location ~ /(api\/|conf[^\.]|include|locale) {

                deny            all;

                return          404;

        }

 

        location ~ [^/]\.php(/|$) {

                fastcgi_pass    unix:/run/php-fpm/zabbix.sock;

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_index   index.php;

 

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;

                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;

                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

 

                include fastcgi_params;

                fastcgi_param   QUERY_STRING    $query_string;

                fastcgi_param   REQUEST_METHOD  $request_method;

                fastcgi_param   CONTENT_TYPE    $content_type;

                fastcgi_param   CONTENT_LENGTH  $content_length;

 

                fastcgi_intercept_errors        on;

                fastcgi_ignore_client_abort     off;

                fastcgi_connect_timeout         60;

                fastcgi_send_timeout            180;

                fastcgi_read_timeout            180;

                fastcgi_buffer_size             128k;

                fastcgi_buffers                 4 256k;

                fastcgi_busy_buffers_size       256k;

                fastcgi_temp_file_write_size    256k;

        }

}

 

 

~]# cat /usr/local/php7.2/etc/php-fpm.d/zabbix.conf

[zabbix]

user = apache

group = apache

 

listen = /run/php-fpm/zabbix.sock

listen.owner = nginx

listen.allowed_clients = 127.0.0.1

 

pm = dynamic

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

 

php_value[session.save_handler] = files

php_value[session.save_path]    = /var/lib/php/session

 

php_value[max_execution_time] = 300

php_value[memory_limit] = 128M

php_value[post_max_size] = 16M

php_value[upload_max_filesize] = 2M

php_value[max_input_time] = 300

php_value[max_input_vars] = 10000

php_value[date.timezone] = Asia/Shanghai  ## 設置時區

 

重啟PHP 、Nginx

~]#  /etc/init.d/php-fpm7.2 restart

~]# nginx  -t

~]# systemctl restart nginx

 

啟動zabbix

~]# systemctl start zabbix-server  zabbix-agent

~]# systemctl enable  zabbix-server  zabbix-agent

 

 

2.5、配置 zabbix-web 前端頁面

 

瀏覽器訪問: http://www.zabbix.od.com.od/index.php,下一步 Next

 

 

 

 

開始檢查環境,確認所有選項都為 ok  下一步Next

 

 

 

 

 

 

 

#輸入用於連接數據庫的詳細信息。Zabbix 數據庫必須已經創建。下一步Next

 

 

 

 

這里不用改,直接下一步Next

 

 

 

確認信息,下一步Next

 

 

 

創建完成

 

 

 

默認用戶名為 Admin,密碼為 zabbix

 

 

注: 剛安裝完下面有一條報警信息,說 zabbix restarted 運行時間小於 10 分鍾,這個沒有影響,這樣的告警信息用於表示某些服務重啟。剛剛運行時間肯定小於 10 分鍾,所以忽略即可。

 

 

 

修改中文語言 ,如果看習慣英文,可以不用修改

 

 

 

 

 

注意:這里可用2 ,是我已經添加1台被監控的主機,剛創建成功時1台或者0台

 

 

 

3 配置監控進程主機

 

3.1 添加被監控主機

注意:這里新1台服務器做被監控主機

 

~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm   ## 安裝zabbix 官網 yum 源

 

~]# yum -y install zabbix-agent

 

~]#cat /etc/zabbix/zabbix_agentd.conf  

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=192.168.17.133  #zabbix server 地址

ServerActive=192.168.17.133 #主動檢查本主機的數據發送給 Zabbix Server

Hostname=192.168.17.132

Include=/etc/zabbix/zabbix_agentd.d/*.conf

UnsafeUserParameters=1

 

~]# systemctl start zabbix-agent && systemctl enable zabbix-agent

~]# netstat -ntulp | grep zabbix

tcp 0    0 0.0.0.0:10050   0.0.0.0:*  LISTEN      24411/zabbix_agentd

tcp6 0   0 :::10050        :::*       LISTEN      24411/zabbix_agentd

 

 

3.2 zabbix 添加 Host 主機

 

 

 

 

 

 

添加后狀態為已啟動,等待可用性也變為綠色就可以正常獲取數據了。

 

 

 

  

查看監控到的數據,可以通過監測下圖形查看,這里先查看磁盤使用情況:

注:現在已經成功監控到一台服務器。但顯示網頁中的一些漢字是亂碼。

 

 

 

 

4 解決 zabbix 中文亂碼

windows找到 simkai.ttf 簡體字,上傳到 zabbix 服務器。

 

~]# cd /usr/share/zabbix/assets/fonts/  ##fonts 目錄沒有就創建

Fonts~]# rz

 

fonts]# rm -rf  /etc/alternatives/zabbix-web-font

fonts]# ln -s /usr/share/zabbix/fonts/msyh.ttf /etc/alternatives/zabbix-web-font

fonts]# vim /usr/share/zabbix/include/locales.inc.php

將         'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => false],

修改為  'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

 

 fonts]# systemctl restart zabbix-server

 

退出並重新登錄WEB,查看圖形,顯示正常。

 

 

 

 

5 文件系統可用空間小於 20G 自動告警

 

5.1 創建監控項

 

創建自定義的監控項以及觸發器,在 linux 主機模板中創建即可,以便於使用該模板的所有主機生效。

 

找到模板中的監控項進行創建

 

 

 

 

 

 

監控磁盤剩余空間,鍵值:vfs.fs.size[/,free]

注:

1、vfs 該鍵值用於檢測磁盤剩余空間,zabbix 內置了非常多的鍵值可以選着使用

2、單位B不需要修改,后期圖表中單位和G拼接起來就是GB

3、更新時間 10S ,在生產環境中不需要這么頻繁,建議1小時檢測一次,特殊業務除外

 

 

 

 

5.2 創建圖形

創建圖形,便於查看數據。

 

 

 

 

 

5.3 創建觸發器

模板中創建觸發器

 

 

 

 

 

 

 

 

添加表達式 

注: 結果大於20G 是根據服務器存儲空間情況而定

 

 

 

 

查看告警信息

 

 

 

 

 

6 使用 Grafana 展示 zabbix 監控圖表

 

安裝 Grafana

Grafana 是一個將數據可視化的工具,是網絡架構和應用分析中最流行的數據展示工具,相比於 zabbix 的圖形界面而言 Grafana 擁有更美觀的界面以及功能更強大的插件。

 

官網下載地址:https://grafana.com/grafana/download/6.6.2?platform=linux

 選着合適的版本下載

 

 ~]#  wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm

 ~]#  yum install grafana-6.6.2-1.x86_64.rpm -y

 

 

瀏覽器訪問: http://www.zabbix.od.com.od:3000

注:

1、用戶名:admin 密碼:admin

2、第一次登陸會提示讓你設置一個新的密碼,因為默認密碼是弱口令密碼,存在風險

 

 

添加數據源拓展插件

注:

1、Grafana 默認並沒有 zabbix 數據源的支持,

2、離線安裝插件

 

下載地址:

https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.10.5/download

 

上傳所需要安裝包

~]# rz

 

 

 

 

~]# unzip  alexanderzobnin-grafana-zabbix-v3.10.5-1-g2219691.zip  -d /var/lib/grafana/plugins/  ## 解壓至grafana 插件目錄

~]# systemctl restart grafana-server

 

啟用插件

 

 

 

 

下拉至最后找到 zabbix

 

 

 

 

點擊啟動

 

 

 

 

現在添加數據源就有 zabbix 的選項

 

 

 

 

下拉到最后選擇 zabbix

 

 

 

 

zabbix API 地址:http://www.zabbix.od.com.od/api_jsonrpc.php

注:

zabbix4.4.8的接口換了,地址中不要zabbix即可,

http://IP或 域名/api_jsonrpc.php 就能正常連接Grafana6.6

 

 

 

 

 

 

和設置 zabbix 信息同一界面,導入模板

 

 

 

查看效果

 

 

 

 

 

 

 

到此部署完成 Zabbix 4.4.8 + grafana 6.6.2 !!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM