監控服務zabbix部署

監控服務zabbix部署前端

1. zabbix介紹

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

zabbix由2部分構成,zabbix server與可選組件zabbix agentc++

zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。web

zabbix agent須要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操做系統有關的內存,CPU等信息的收集。sql

zabbix server能夠單獨監視遠程服務器的服務狀態;同時也能夠與zabbix agent配合,能夠輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),能夠與SNMP軟件(例如:net-snmp)等配合使用。數據庫

2. zabbix特色

zabbix的主要特色:apache

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

Zabbix主要功能:vim

  • 系統基礎監控
    • 內存
    • cpu
    • 硬盤
  • 網絡設備
    • 路由器
    • 防火牆
    • 交換機
  • 硬件監控IPMI
    • 電源
    • CPU溫度
    • 硬盤溫度
  • 業務監控
    • 進程
    • 端口
    • 日誌

3. zabbix配置文件

zabbix配置文件有三種:瀏覽器

  • 服務器端配置文件(/usr/local/etc/zabbix_server.conf)
  • 客戶端配置文件(/usr/local/etc/zabbix_agentd.conf)
  • zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)

服務器端配置文件zabbix_server.conf經常使用配置參數

參數 做用
LogFile 設置服務端日誌文件存放路徑
ListenIP 設置服務端監聽IP
ListenPort 設置服務端監聽的端口號
PidFile 設置服務端進程號文件存放路徑
DBHost 指定zabbix的數據庫服務器IP
DBName 指定zabbix使用的數據庫庫名
DBUser 指定zabbix數據庫登陸用戶
DBPassword 指定zabbix數據庫登陸密碼
DBPort 指定zabbix數據庫端口號
User 設置zabbix以什麼用戶的身份運行
AlertScriptsPath 設置告警腳本存放路徑
ExternalScripts 外部腳本存放路徑

客戶端配置文件zabbix_agentd.conf經常使用配置參數

參數 做用
Server 指定zabbix服務器的IP或域名
ServerActive 指定zabbix服務器的IP或域名
Hostname 指定本機的主機名,此項必須與web界面配置項一致
UnsafeUserParameters 是否啓用自定義監控項,可選值爲{1
UserParameter 指定自定義監控腳本參數
LogFile 設置客戶端日誌文件存放路徑

4. 部署zabbix

環境說明:

環境 IP 要安裝的應用
服務器 192.168.112.166 lamp架構
zabbix server
zabbix agent
客戶端 192.168.112.167 zabbix agent

由於zabbix是用php語言開發的,因此必須先部署lamp架構,使其可以支持運行php網頁

4.1 zabbix服務端安裝

//安裝依賴包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel

//下載zabbix
[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
debug  kernels  zabbix-4.0.3.tar.gz

//解壓
[root@localhost src]# tar -xf zabbix-4.0.3.tar.gz 
[root@localhost src]# ls
debug  kernels  zabbix-4.0.3  zabbix-4.0.3.tar.gz

//建立zabbix用戶和組
[root@localhost src]# groupadd -r zabbix
[root@localhost src]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@localhost src]# id zabbix
uid=995(zabbix) gid=993(zabbix) 組=993(zabbix)

//配置zabbix數據庫
[root@localhost src]# mysql -uroot -pcwh123!
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 4
Server version: 5.7.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

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;  //這裏是使zabbix數據庫支持中文
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123!';  //這裏是建立zabbix用戶並賦予其對zabbix數據庫的全部權限
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> flush privileges;  //刷新權限表
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

//將zabbix解壓包中的數據庫模板複製到zabbix數據中去
[root@localhost src]# cd /usr/src/zabbix-4.0.3/database/mysql/
[root@localhost mysql]# ls
data.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.

//編譯安裝zabbix
root@localhost mysql]# cd /usr/src/zabbix-4.0.3
[root@localhost zabbix-4.0.3]# ./configure --enable-server \    //開啓zabbix監控服務端
> --enable-agent \   //開啓zabbix被監控端(客戶)
> --with-mysql \    //使用也MySQL數據庫
> --with-net-snmp \   //開啓支持SNMP協議
> --with-libcurl \    
> --with-libxml2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
.
.
.

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
  //zabbix編譯安裝直接make install,不須要先make
[root@localhost zabbix-4.0.3]# make install

4.2 zabbix服務端配置

[root@localhost ~]# ls /usr/local/etc/
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_server.conf  zabbix_server.conf.d

//修改服務端配置文件
//設置數據庫信息
[root@localhost ~]# vim /usr/local/etc/zabbix_server.conf
....
DBPassword=zabbix123!       //設置zabbix數據庫鏈接密碼

//啓動zabbix_server和zabbix_agentd
[root@localhost zabbix-4.0.3]# zabbix_server 
zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

    //此時發現會先報錯:沒法發現libmysqlclient.so.20的庫文件。
    
//解決方法
[root@localhost zabbix-4.0.3]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
[root@localhost zabbix-4.0.3]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@localhost zabbix-4.0.3]# ldconfig -v
ldconfig: 沒法對 /libx32 進行 stat 操做: 沒有那個文件或目錄
ldconfig: 屢次給出路徑「/usr/lib」
ldconfig: 屢次給出路徑「/usr/lib64」
ldconfig: 沒法對 /usr/libx32 進行 stat 操做: 沒有那個文件或目錄
/usr/lib64/mysql:
    libmysqlclient.so.18 -> libmysqlclient_r.so
/usr/local/mysql/lib:
    libmysqlclient.so.20 -> libmysqlclient.so.20.3.9
/lib:
/lib64:
    libevent_pthreads-2.0.so.5 -> libevent_pthreads.so
    libevent_openssl-2.0.so.5 -> libevent_openssl.so
    libevent_extra-2.0.so.5 -> libevent_extra.so
    libnetsnmptrapd.so.31 -> libnetsnmptrapd.so.31.0.2
    libevent_core-2.0.so.5 -> libevent_core.so
    libnetsnmpmibs.so.31 -> libnetsnmpmibs.so.31.0.2
    libnetsnmphelpers.so.31 -> libnetsnmphelpers.so.31.0.2
    libmcrypt.so.4 -> libmcrypt.so.4.4.8
.
.
.
/lib/sse2: (hwcap: 0x0000000004000000)
/lib64/sse2: (hwcap: 0x0000000004000000)
/lib64/tls: (hwcap: 0x8000000000000000)

//再次啓動zabbix服務
[root@localhost zabbix-4.0.3]# zabbix_server 
[root@localhost zabbix-4.0.3]# zabbix_agentd 
[root@localhost zabbix-4.0.3]# ss -antl
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN      0      128                *:10050                          *:*                  
LISTEN      0      128                *:10051                          *:*                  
LISTEN      0      128        127.0.0.1:9000                           *:*                  
LISTEN      0      128                *:22                             *:*                  
LISTEN      0      100        127.0.0.1:25                             *:*                  
LISTEN      0      80                :::3306                          :::*                  
LISTEN      0      128               :::80                            :::*                  
LISTEN      0      128               :::22                            :::*                  
LISTEN      0      100              ::1:25                            :::*                  
    //10050和10051已經啓動說明zabbix啓動成功

//因此在編寫lamp安裝腳本時記得加入mysql的軟鏈接庫文件的配置

4.3 zabbix服務端web界面安裝與配置

4.3.1 zabbix web界面安裝前配置

//修改/etc/php.ini的配置並重啓php-fpm
[root@localhost zabbix-4.0.3]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-4.0.3]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix-4.0.3]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
    //或者進入/etc/php.ini中查找修改這幾個數據,若是不修改這款幾個數據,網頁web端將沒法安裝

//建立php網頁存放目錄zabbix
[root@localhost ~]# cd /usr/src/zabbix-4.0.3
[root@localhost zabbix-4.0.3]# ls
aclocal.m4  ChangeLog     config.log     configure.ac  frontends   m4           man      README
AUTHORS     compile       config.status  COPYING       include     Makefile     misc     sass
bin         conf          config.sub     database      INSTALL     Makefile.am  missing  src
build       config.guess  configure      depcomp       install-sh  Makefile.in  NEWS     upgrades
[root@localhost zabbix-4.0.3]# mkdir /usr/local/apache/htdocs/zabbix
[root@localhost zabbix-4.0.3]# cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
    //frontends目錄裏存放的是網頁前端文件
[root@localhost zabbix-4.0.3]# chown -R apache.apache /usr/local/apache/htdocs

//配置apache虛擬主機
[root@localhost zabbix-4.0.3]# vim /etc/httpd24/httpd.conf
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/zabbix"
    ServerName zabbix.cwh.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
    <Directory "/usr/local/apache/htdocs/zabbix">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

//設置/usr/local/apache/htdocs/zabbix/conf目錄的權限,讓zabbix有權限生成配置文件zabbix.conf.php
[root@localhost zabbix-4.0.3]# ll /usr/local/apache/htdocs/zabbix/conf -d
drwxr-xr-x 2 apache apache 81 12月 20 19:24 /usr/local/apache/htdocs/zabbix/conf
    //能夠看出這個目錄的屬主和屬組是apache,因此此時zabbix是沒法生成配置文件conf的
    
[root@localhost zabbix-4.0.3]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@localhost zabbix-4.0.3]# ll /usr/local/apache/htdocs/zabbix/conf -d
drwxrwxrwx 2 apache apache 81 12月 20 19:24 /usr/local/apache/htdocs/zabbix/conf

//重啓apache服務
[root@localhost ~]# /usr/local/apache/bin/apachectl restart
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN      0      128                *:10050                          *:*                  
LISTEN      0      128                *:10051                          *:*                  
LISTEN      0      128        127.0.0.1:9000                           *:*                  
LISTEN      0      128                *:22                             *:*                  
LISTEN      0      100        127.0.0.1:25                             *:*                  
LISTEN      0      80                :::3306                          :::*                  
LISTEN      0      128               :::80                            :::*                  
LISTEN      0      128               :::22                            :::*                  
LISTEN      0      100              ::1:25                            :::*       

[root@localhost ~]# ls /usr/local/apache/htdocs/zabbix/conf/
.htaccess                maintenance.inc.php      zabbix.conf.php.example
    //能夠看出zabbix.conf已經生成了因此在web頁面安裝完成後要將權限改回755

4.3.2 安裝zabbix web界面

  • 修改/etc/hosts文件,添加域名與IP的映射
  • 在瀏覽器上訪問域名,本文設置的域名爲zabbix.cwh.com
  • 恢復zabbix/conf目錄的權限爲755
  • zabbix默認登陸用戶名和密碼:Admin zabbix

image

image

image

image

image

image

image

image

恢復zabbix/conf目錄的權限爲755:

root@localhost ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
[root@localhost ~]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxr-xr-x 2 apache apache 104 Aug 17 13:05 /usr/local/apache/htdocs/zabbix/conf

4.4 zabbix客戶端配置

//在客戶端安裝zabbix須要的環境
[root@localhost ~]# yum install -y gcc gcc-c++ wget vim 

//解壓和編譯安裝zabbix的安裝包
[root@localhost ~]#  cd /usr/src
[root@localhost src]# tar -xf zabbix-4.0.3.tar.gz 
[root@localhost src]# cd zabbix-4.0.3
[root@localhost zabbix-4.0.3]# 
[root@localhost zabbix-4.0.3]# ./configure --enable-agent
[root@localhost zabbix-4.0.3]# make install

//配置agented.conf文件
[root@localhost zabbix-4.0.3]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@localhost etc]# vim zabbix_agentd.conf
Server=192.168.112.166  //將這一條修改成服務端IP
ServerActive=192.168.112.166  //將這一條修改成服務端IP
Hostname=167  //不是真正的hostname,只是一個標識本身是誰的標識符

//建立zabbix用戶
[root@localhost etc]# groupadd -r zabbix
[root@localhost etc]# useradd -r -M -s /sbin/nologin -g zabbix zabbix

//啓動zabbix-agentd服務
[root@localhost etc]# zabbix_agentd 
[root@localhost etc]# ss -antl
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN      0      128                *:10050                          *:*                  
LISTEN      0      128                *:22                             *:*                  
LISTEN      0      100        127.0.0.1:25                             *:*                  
LISTEN      0      128               :::22                            :::*                  
LISTEN      0      100              ::1:25                            :::*

4.5在web端添加對客戶端的監控

1.將界面改爲中文界面,進入後點擊右上角admin,進入後language選擇chinese

image

2.添加主機

image

3.成功添加主機,此時添加的主機尚未模板須要添加模板進去

image

4.往添加的主機中增長模板

image

5.模板更新成功

image

6.點擊右上角編輯儀表盤,編輯界面

image

7.此時新添加的主機綠色的ZBX已經亮起來了,說明服務端已經開始監控

image

8.查看內存的使用狀況,但會發現中文有亂碼狀況,下面給出解決方案

image

4.6 zabbix一解決web界面中文亂碼問題

問題緣由: Zabbix 網頁目錄中缺乏字體
1.打開 Windows 的 C:\Windows\Fonts 字體存放目錄,選一款你喜歡的字體
image

2.我選擇的是 楷體常規,文件名爲 simkai.ttf,把這個文件傳到服務器的 Zabbix 網頁目錄中

//若是你不知道存放字體的目錄位置請用find命令查找以fonts結尾的目錄
[root@localhost ~]# find / -name fonts
/boot/grub2/fonts
/usr/local/apache/htdocs/zabbix/fonts
/usr/src/zabbix-4.0.3/frontends/php/fonts

//將simkai.ttf上傳到/usr/local/apache/htdocs/zabbix/fonts下
[root@localhost ~]# cd /usr/local/apache/htdocs/zabbix/fonts/
[root@localhost fonts]# ls
DejaVuSans.ttf
[root@localhost fonts]# ls
DejaVuSans.ttf  simkai.ttf

3.編輯/usr/local/apache/htdocs/zabbix/include/defines.inc.php文件,找到 define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); 行,將 DejaVuSans 修改成 simkai 便可。

[root@localhost fonts]# vim /usr/local/apache/htdocs/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

4.刷新頁面就能看到效果
image

相關文章
相關標籤/搜索