欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用?Docker安裝?Zabbix并配置自定義監(jiān)控項的過程詳解

 更新時間:2022年04月11日 15:41:35   作者:愿許浪盡天涯  
Zabbix?可以用來監(jiān)控各種網(wǎng)絡(luò)參數(shù),來保證服務(wù)器和系統(tǒng)的安全運行,是一個基于?Web?界面提供的分布式系統(tǒng)監(jiān)控以及網(wǎng)絡(luò)監(jiān)控功能的企業(yè)級開源解決方案,對Docker?安裝?Zabbix配置自定義監(jiān)控項相關(guān)知識感興趣的朋友一起看看吧

一、Zabbix 簡介

Zabbix 可以用來監(jiān)控各種網(wǎng)絡(luò)參數(shù),來保證服務(wù)器和系統(tǒng)的安全運行。并且 Zabbix 還提供了靈活的通知機制,以此來讓系統(tǒng)管理員快速定位/解決存在的各種問題。是一個基于 Web 界面提供的分布式系統(tǒng)監(jiān)控以及網(wǎng)絡(luò)監(jiān)控功能的企業(yè)級開源解決方案。

1.監(jiān)控功能

  • 主機性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控、多種告警方式、詳細的報表圖。
  • 監(jiān)控主機,我們可以使用 Zabbix 提供的 Agent 軟件,來監(jiān)控 Linux、Windows、FreeBSD 等系統(tǒng)。
  • 監(jiān)控網(wǎng)絡(luò)設(shè)備,我們可以通過 Zabbix 支持的 SNMP 協(xié)議來進行監(jiān)控(SSH 協(xié)議不常用)

1)監(jiān)控對象

  • 設(shè)備:服務(wù)器,路由器,交換機。
  • 軟件:OS,網(wǎng)絡(luò),應(yīng)用程序。

2)主機性能指標監(jiān)控

  • 故障監(jiān)控:宕機,服務(wù)不可用,主機不可達。

2.Zabbix 工作原理

首先,我們需要在被監(jiān)控的主機上安裝 Agent 軟件,用來收集當前服務(wù)器的各項數(shù)據(jù)信息,并發(fā)送給監(jiān)控端,當監(jiān)控端接收到 Agent 發(fā)送過來的信息后,會將數(shù)據(jù)存儲到數(shù)據(jù)庫中,接著通過 Web 界面來將數(shù)據(jù)在前端頁面上進行展示和繪圖。

這里 Agent 收集數(shù)據(jù)分為 主動和被動 兩種模式:

  • 主動: 客戶端通過連接監(jiān)控端的 10051 端口,來主動的將收集到的信息推送給監(jiān)控端。
  • 被動: 監(jiān)控端定時的通過連接客戶端的 10050 端口進行通信,來收集客戶端的各項數(shù)據(jù)信息。

Zabbix 默認使用的模式為被動模式,也就是說當我們需要監(jiān)控的主機數(shù)量較多時,可能會影響到監(jiān)控端的性能。因為監(jiān)控端會定時的通過連接客戶端的端口進行數(shù)據(jù)收集,所以我們可以 選擇性的配置部分主機為主動模式,來減少監(jiān)控端的性能壓力。

3.Zabbix 組件

組件作用
Zabbix Server用于接收 Agent 發(fā)送過來的信息,所有的配置、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)操作都是由它組織進行
Database Storage用于存儲所有的配置信息以及收集的數(shù)據(jù)信息
Web InterfaceZabbix 的 GUI 接口,可以用于界面展示(一般和 Server 運行在用一臺主機上)
Agent用于采集本地的數(shù)據(jù)信息,也就是所謂的被監(jiān)控端
Proxy可選組件,通常用于分布式監(jiān)控架構(gòu);相當于是一個代理的 Server,用來收集 Agent 部分數(shù)據(jù),并轉(zhuǎn)發(fā)給監(jiān)控端

4.Zabbix 進程

  • Sender:用于發(fā)送數(shù)據(jù)給 Server 或者 Proxy,通常用于耗時比較長的檢查;
  • Get:Zabbix 命令,主要用于排查使用,可以在監(jiān)控端上執(zhí)行,來獲取被監(jiān)控端的信息;
  • Agent:客戶端守護進程,用于收集當前主機的數(shù)據(jù)信息,如:CPU 負載、內(nèi)存的使用情況等;
  • Proxy:代理守護進程,相當于是一個中轉(zhuǎn)站,可以將收集到的數(shù)據(jù)信息 主動/被動 的提交到監(jiān)控端上;
  • Server:監(jiān)控端守護進程,用于接收 Agent Get Sender Proxy Java_Gateway 提供的數(shù)據(jù)。

因為 Zabbix 并不能直接監(jiān)控Java 應(yīng)用,所以在 Zabbix 2.0 后推出 Java_Gateway 代理進程,使我們可以監(jiān)控 Java 應(yīng)用。

二、使用 Zabbix 配置自定義監(jiān)控項

  • 我們下面采用的是 docker-compose 方式安裝,物理安裝可以看我前面寫的這篇文章:傳送門

1.安裝 Zabbix

1)安裝 Docker

[root@Zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@Zabbix ~]# yum -y install epel-release
[root@Zabbix ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@Zabbix ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
[root@Zabbix ~]# yum -y install docker-ce-19.03.12 docker-ce-cli-19.03.12
[root@Zabbix ~]# systemctl enable docker --now

2)安裝 Docker-Compose

[root@Zabbix ~]# wget "https://github.com/docker/compose/releases/download/v2.3.2/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose	
[root@Zabbix ~]# chmod +x /usr/local/bin/docker-compose
[root@Zabbix ~]# docker-compose --version

3)安裝 Agent

[root@Zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-agent-5.4.8-1.el7.x86_64.rpm
[root@Zabbix ~]# egrep -v '^$|#' zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@Zabbix ~]# systemctl enable zabbix-agent --now

4)安裝 Zabbix

[root@Zabbix ~]# mkdir -p /app/zabbix
[root@Zabbix ~]# cd /app/zabbix/
[root@Zabbix zabbix]# cat <<END > docker-compose.yml
version: "3"
services:
  mysql-server:
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - "/app/mysql:/var/lib/mysql"				# 配置數(shù)據(jù)卷 (防止監(jiān)控數(shù)據(jù)丟失)
    environment:
      MYSQL_ROOT_PASSWORD: 123123
      TZ: Asia/Shanghai
    command: --character-set-server=utf8 --collation-server=utf8_bin
    restart: always
  zabbix-server:
    image: zabbix/zabbix-server-mysql:5.4.8-centos
    environment:
      DB_SERVER_HOST: 127.0.0.1
      DB_SERVER_PORT: 3306
      MYSQL_DATABASE: zabbix
      MYSQL_USER: root
      MYSQL_PASSWORD: 123123
      TZ: Asia/Shanghai
    depends_on:
      - mysql-server
    restart: always
    network_mode: "host"						# 使用主機網(wǎng)絡(luò)
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:5.4.8-centos
    ports:
      - "8000:8080"								# Zabbix WebUI 映射端口
    volumes:									# 當在 Web 界面配置成中文后,監(jiān)控界面會出現(xiàn)亂碼
      - "./simkai.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf"
    environment:
      DB_SERVER_HOST: mysql-server
      DB_SERVER_PORT: 3306
      MYSQL_DATABASE: zabbix
      MYSQL_USER: root
      MYSQL_PASSWORD: 123123
      TZ: Asia/Shanghai
      ZBX_SERVER_HOST: 192.168.1.1
    depends_on:
      - mysql-server
      - zabbix-server
    restart: always
END
[root@Zabbix zabbix]# docker-compose up -d
[root@Zabbix zabbix]# docker-compose ps  
  • simkai.ttf 字體,你們可以在自己電腦上的這個 C:\Windows\Fonts 路徑找到。

5)驗證:http://192.168.1.1:8000(賬號:Admin/zabbix

  • 界面上出現(xiàn):zabbix server is not running: the information displayed may not be current 報錯;
  • 原因可能是因為我們 docker-compose 文件中的 ZBX_SERVER_HOST 變量配置的值不是 Zabbix Server 的 IP 地址導(dǎo)致的。

我上面報錯是為了讓你們看下效果,如果你們出現(xiàn)如上配置,按照我的配置修改即可。

配置中文

2.開啟自定義監(jiān)控項

[root@Zabbix ~]# echo "UnsafeUserParameters=1" >> /etc/zabbix/zabbix_agentd.conf 

3.編寫 Nginx 自定義監(jiān)控腳本

[root@Zabbix ~]# yum -y install nginx
[root@Zabbix ~]# cat <<END > /etc/nginx/conf.d/status.conf
server {
    listen 80;
    server_name 127.0.0.1;
    location /status {
        stub_status on;
        allow 127.0.0.1;
        allow 192.168.1.0/24;
        deny all;
    }
}
END

1)編寫自定義監(jiān)控腳本

[root@Zabbix ~]# mkdir /etc/zabbix/scripts
[root@Zabbix ~]# vim /etc/zabbix/scripts/nginx_status.sh
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
# 監(jiān)控 Nginx 進程是否存在
function Ping {
    /sbin/pidof nginx | wc -l
}
# 監(jiān)控 Nginx 狀態(tài)信息
function Active {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | grep "Active" | awk '{print $NF}'
}
function Reading {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | grep "Reading" | awk '{print $2}'
}
function Writing {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | grep "Writing" | awk '{print $4}'
}
function Waiting {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | grep "Waiting" | awk '{print $6}'
}
function Server {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | awk NR==3 | awk '{print $1}'
}
function Accepts {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | awk NR==3 | awk '{print $2}'
}
function Requests {
    /usr/bin/curl "http://$HOST:$PORT/status" 2> /dev/null | awk NR==3 | awk '{print $3}'
}
# 執(zhí)行 function
$1
[root@Zabbix ~]# chmod +x /etc/zabbix/scripts/nginx_status.sh

2)定義監(jiān)控腳本

[root@Zabbix ~]# cat <<"END" > /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx.status[*],/etc/zabbix/scripts/nginx_status.sh $1
END
[root@Zabbix ~]# systemctl restart zabbix-agent

3)驗證

[root@Zabbix ~]# docker exec -it zabbix-zabbix-server-1 /bin/bash

創(chuàng)建模板

創(chuàng)建應(yīng)用集

創(chuàng)建監(jiān)控項

因為在我們的監(jiān)控腳本中,一共定義了 8 個監(jiān)控項,所以我們上面也要創(chuàng)建 8 個監(jiān)控項,重復(fù)上面操作,創(chuàng)建出對應(yīng)的即可。

給我們的監(jiān)控項創(chuàng)建圖形

將 Nginx 模板加入到主機中

查看監(jiān)控圖

其實 Zabbix 的自定義監(jiān)控項就是由 key/value 的形式組成。即,我們只需要把要監(jiān)控的數(shù)據(jù)定義成一個 value,key 里面的值就是我們想要監(jiān)控的數(shù)據(jù),那么也就是說,當我們定時的查找這個 key 對應(yīng)的值,便可以得到監(jiān)控數(shù)據(jù)。

到此這篇關(guān)于使用 Docker 安裝 Zabbix,并配置自定義監(jiān)控項的文章就介紹到這了,更多相關(guān)Docker 安裝 Zabbix配置自定義監(jiān)控項內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用?trap?在?docker?容器優(yōu)雅關(guān)閉前執(zhí)行環(huán)境清理的方案

    利用?trap?在?docker?容器優(yōu)雅關(guān)閉前執(zhí)行環(huán)境清理的方案

    這篇文章主要介紹了利用?trap?在?docker?容器優(yōu)雅關(guān)閉前執(zhí)行環(huán)境清理的問題,需要在容器的啟動腳本中,加入 trap 指令,來完成容器在退出前需要做的所有事情,本文通過腳本示例給大家介紹的非常詳細,需要的朋友參考下吧
    2021-12-12
  • Docker 網(wǎng)絡(luò)模式及配置方式

    Docker 網(wǎng)絡(luò)模式及配置方式

    這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式及配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker容器compose容器集群的快速編排方式

    Docker容器compose容器集群的快速編排方式

    這篇文章主要介紹了Docker容器compose容器集群的快速編排方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 教你使用Docker?Compose一鍵部署前后端分離項目

    教你使用Docker?Compose一鍵部署前后端分離項目

    Compose是一個定義和管理多容器的工具,使用Python語言編寫,下面這篇文章主要給大家介紹了關(guān)于如何使用Docker?Compose一鍵部署前后端分離項目的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 如何解決Linux系統(tǒng)下Docker占滿分區(qū)的問題

    如何解決Linux系統(tǒng)下Docker占滿分區(qū)的問題

    本篇文章主要介紹了如何解決Linux系統(tǒng)下Docker占滿分區(qū)的問題。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • docker資源限制和compose部署詳解

    docker資源限制和compose部署詳解

    默認情況下,容器沒有資源限制,并且可以使用主機內(nèi)核調(diào)度程序允許的盡可能多的給定資源,這篇文章主要給大家介紹了關(guān)于docker資源限制和compose部署的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Docker swarm 簡單使用教程

    Docker swarm 簡單使用教程

    Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干臺Docker主機抽象為一個整體,并且通過一個入口統(tǒng)一管理這些Docker主機上的各種Docker資源,接下來通過本文給大家介紹Docker swarm 簡單使用,感興趣的朋友一起看看吧
    2021-11-11
  • docker中通過nginx+confd動態(tài)生成配置的解決方案

    docker中通過nginx+confd動態(tài)生成配置的解決方案

    這篇文章主要介紹了docker:nginx+confd動態(tài)生成配置,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 低版本Docker升級高版本Docker的詳細教程及成功避坑

    低版本Docker升級高版本Docker的詳細教程及成功避坑

    如果我們使用docker來管理容器,那么保持docker引擎的更新將會是十分重要的,下面這篇文章主要給大家介紹了關(guān)于低版本Docker升級高版本Docker的詳細教程及成功避坑,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • docker?安裝?Influxdb-relay及配置教程

    docker?安裝?Influxdb-relay及配置教程

    這篇文章主要介紹了docker?安裝?Influxdb-relay及配置教程的相關(guān)資料,需要的朋友可以參考下
    2023-08-08

最新評論