松崗做網(wǎng)站今日頭條新聞最全新消息
1.Zabbix
1.1.監(jiān)控概述
監(jiān)控是指對(duì)行為、活動(dòng)或其他變動(dòng)中信息的一種持續(xù)性關(guān)注,通常是為了對(duì)人達(dá)成影響、管理、指導(dǎo)或保護(hù)的目的
-
監(jiān)控
- 監(jiān)視主機(jī)架構(gòu)狀態(tài)
- 控制,事后追責(zé)
- 目標(biāo):早發(fā)現(xiàn)早處理(故障、性能、架構(gòu)) 網(wǎng)站擴(kuò)容(用數(shù)據(jù)說(shuō)話)
為什么要監(jiān)控
- 對(duì)系統(tǒng)不間斷實(shí)時(shí)監(jiān)控
- 實(shí)時(shí)反饋系統(tǒng)當(dāng)前狀態(tài)
- 保證業(yè)務(wù)持續(xù)性運(yùn)行
監(jiān)控流程
-
數(shù)據(jù)采集
-
數(shù)據(jù)存儲(chǔ)
-
數(shù)據(jù)分析
-
展示/告警
監(jiān)控的內(nèi)容
1.2.Linux有關(guān)性能的指令
1.3.企業(yè)面試題:公司監(jiān)控如何做
-
等同于:你們公司監(jiān)控了什么?
-
單臺(tái)機(jī)器
- 業(yè)務(wù)信息:應(yīng)用、程序代碼是否有問題(需要與開發(fā)溝通,書寫一個(gè)頁(yè)面)
- 服務(wù)信息:各種服務(wù)的進(jìn)程、端口、狀態(tài)、特定的信息(不同服務(wù))
- 系統(tǒng)信息:cpu、內(nèi)存(swap,buffer/cache)、磁盤(io,使用率,inode)、負(fù)載、網(wǎng)絡(luò)…
- 硬件信息:磁盤、raid狀態(tài)、溫度、風(fēng)扇轉(zhuǎn)速
-
網(wǎng)站集群監(jiān)控(用戶訪問流程)
-
DNS解析與CDN 通過(guò)全局訪問測(cè)試工具(模仿用戶在全國(guó)(全球)各地訪問網(wǎng)站)
- 在全國(guó)各地核心城市部署一臺(tái)服務(wù)器,訪問源站/cdn/dns(smokeping)
- 免費(fèi):17ce.com
- 商業(yè)版:聽云、監(jiān)控寶
-
TCP三次握手-網(wǎng)站負(fù)載均衡監(jiān)控 ss-ant
-
HTTP請(qǐng)求報(bào)文-監(jiān)控web日志查看(狀態(tài)碼) 補(bǔ)充:加上HTTPS監(jiān)控過(guò)期
-
請(qǐng)求經(jīng)過(guò)網(wǎng)站架構(gòu)
- 負(fù)載均衡(Nginx)
- web服務(wù)器(php,tomcat…)
- 緩存
- 數(shù)據(jù)庫(kù)
- 存儲(chǔ)
-
TCP四次揮手-網(wǎng)站負(fù)載均衡監(jiān)控
-
斷開連接
-
1.2.概述
Zabbix 由 Alexei Vladishev 創(chuàng)建,目前由 Zabbix SIA 主導(dǎo)開發(fā)和支持。
Zabbix 是一個(gè)企業(yè)級(jí)的開源分布式監(jiān)控解決方案。
Zabbix 是一款監(jiān)控網(wǎng)絡(luò)的眾多參數(shù)以及服務(wù)器、虛擬機(jī)、應(yīng)用程序、服務(wù)、數(shù)據(jù)庫(kù)、網(wǎng)站、云等的健康和完整性的軟件。Zabbix 使用靈活的通知機(jī)制,允許用戶為幾乎任何事件配置基于電子郵件的告警,以實(shí)現(xiàn)對(duì)服務(wù)器問題做出快速反應(yīng)。Zabbix 基于存儲(chǔ)的數(shù)據(jù)提供出色的報(bào)告和數(shù)據(jù)可視化功能。這使得 Zabbix 成為容量規(guī)劃的理想選擇。
Zabbix 支持輪詢和 trapping。所有 Zabbix 報(bào)告和統(tǒng)計(jì)數(shù)據(jù)以及配置參數(shù)都可以通過(guò)基于 Web 的前端訪問。基于 Web 的前端確??梢詮娜魏挝恢迷u(píng)估您的網(wǎng)絡(luò)狀態(tài)和服務(wù)器的健康狀況。如果配置得當(dāng),不管對(duì)于擁有少量服務(wù)器的小型組織還是擁有大量服務(wù)器的大公司來(lái)講,Zabbix 都可以在監(jiān)控 IT 基礎(chǔ)設(shè)施方面發(fā)揮重要作用。
Linux相關(guān)指標(biāo)命令
Zabbix功能有如下:
數(shù)據(jù)收集
- 可用性和性能檢查
- 支持 SNMP(trapping 和 polling)、IPMI、JMX、VMware監(jiān)控
- 自定義檢查
- 以自定義間隔收集所需數(shù)據(jù)
- 由 server/proxy 和 agents 執(zhí)行
靈活的閾值定義
- 可以定義非常靈活的問題閾值,稱為觸發(fā)器,從后端數(shù)據(jù)庫(kù)引用值
高度可配置的告警
- 可以針對(duì)升級(jí)計(jì)劃、收件人、媒體類型自定義發(fā)送通知
- 使用宏可以使通知變得有意義和有用
- 自動(dòng)化操作包括執(zhí)行遠(yuǎn)程命令
實(shí)時(shí)圖形
- 采集到的監(jiān)控項(xiàng)值可以使用內(nèi)置的繪圖功能立即繪圖
網(wǎng)絡(luò)監(jiān)控功能
- Zabbix 可以跟蹤網(wǎng)站上的模擬鼠標(biāo)點(diǎn)擊路徑并檢查功能和響應(yīng)時(shí)間
廣泛的可視化選項(xiàng)
- 創(chuàng)建自定義圖形的能力,可以將多個(gè)監(jiān)控項(xiàng)組合成一個(gè)聚合圖形
- 網(wǎng)絡(luò)拓?fù)鋱D
- 在儀表盤中顯示幻燈片
- 報(bào)表
- 受監(jiān)控資源的高級(jí)(業(yè)務(wù))視圖
歷史數(shù)據(jù)存儲(chǔ)
- 存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)
- 可配置的歷史(保留趨勢(shì))
- 內(nèi)置管家程序
建議的配置
- 將受監(jiān)控的設(shè)備添加為主機(jī)
- 一旦主機(jī)被數(shù)據(jù)庫(kù)添加,就會(huì)開始進(jìn)行數(shù)據(jù)采集
- 將模板應(yīng)用于受監(jiān)控的設(shè)備
模板的使用
- 在模板中分組檢查
- 模板可以繼承其他模板
網(wǎng)絡(luò)發(fā)現(xiàn)
- 網(wǎng)絡(luò)設(shè)備自動(dòng)發(fā)現(xiàn)
- agent 自動(dòng)注冊(cè)
- 發(fā)現(xiàn)文件系統(tǒng)、網(wǎng)絡(luò)接口和 SNMP OID
便捷的 web 界面
- 基于web的PHP前端
- 可從任何地方訪問
- 可以通過(guò)你的方式點(diǎn)擊(到任何頁(yè)面)
- 審計(jì)日志
Zabbix API
- Zabbix API 為 Zabbix 提供可編程接口,用于大規(guī)模操作、第 3 方軟件集成和其他用途。
權(quán)限系統(tǒng)
- 安全用戶認(rèn)證
- 某些用戶可以被限制僅訪問某些視圖
全功能且易于擴(kuò)展的 agent
- 部署在被監(jiān)控目標(biāo)上
- Linux 和 Windows 操作系統(tǒng)都適用于
二進(jìn)制守護(hù)進(jìn)程
- 用 C 編寫,用于提高性能和減少內(nèi)存占用
- 輕量級(jí)、便攜
為復(fù)雜環(huán)境做好準(zhǔn)備
- 使用 Zabbix proxy 輕松實(shí)現(xiàn)遠(yuǎn)程監(jiān)控
1.3.Zabbix架構(gòu)
Server
Zabbix server 是 agents 向其報(bào)告可用性和完整性信息和統(tǒng)計(jì)信息的中心組件。server 是存儲(chǔ)所有配置、統(tǒng)計(jì)和操作數(shù)據(jù)的中央存儲(chǔ)庫(kù)。
數(shù)據(jù)存儲(chǔ)
Zabbix 收集的所有配置信息以及數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)中。
Web 界面
為了從任何地方和任何平臺(tái)輕松訪問,Zabbix 提供了基于 Web 的界面。該接口是 Zabbix server 的一部分,通常(但不一定)與 server 運(yùn)行在同一臺(tái)設(shè)備上。
Proxy
Zabbix proxy 可以代替 Zabbix server 收集性能和可用性數(shù)據(jù)。proxy 是 Zabbix 部署的可選部分;但是對(duì)于分散單個(gè) Zabbix server 的負(fù)載非常有用。
Agent
Zabbix agent 部署在被監(jiān)控目標(biāo)上,以主動(dòng)監(jiān)控本地資源和應(yīng)用程序,并將收集到的數(shù)據(jù)報(bào)告給 Zabbix server。從 Zabbix 4.4 開始,有兩種類型的 agent 可用:Zabbix agent (輕量級(jí),在許多平臺(tái)上支持,用 C 編寫)和 Zabbix agent 2 (非常靈活,易于使用插件擴(kuò)展,用 Go 編寫)。
2.使用Zabbix
2.1.配置要求
Name | Platform | CPU/Memory | Database | Monitored hosts |
---|---|---|---|---|
Small | CentOS | Virtual Appliance | MySQL InnoDB | 100 |
Medium | CentOS | 2 CPU cores/2GB | MySQL InnoDB | 500 |
Large | RedHat Enterprise Linux | 4 CPU cores/8GB | RAID10 MySQL InnoDB or PostgreSQL | >1000 |
Very large | RedHat Enterprise Linux | 8 CPU cores/16GB | Fast RAID10 MySQL InnoDB or PostgreSQL | >10000 |
下表包含可用于計(jì)算 Zabbix 系統(tǒng)所需磁盤空間的公式:
參數(shù) 所 | 磁盤空間的計(jì)算公式 (單位:字節(jié)) |
---|---|
Zabbix 配置文件 固定大 | 。通常為 10MB 或更少。 |
History(歷史數(shù)據(jù)) | days*(items/refresh rate)243600*bytes items:監(jiān)控項(xiàng)數(shù)量。 days:保留歷史數(shù)據(jù)的天數(shù)。 refresh rate:監(jiān)控項(xiàng)的更新間隔。 bytes:保留單個(gè)值所需要占用的字節(jié)數(shù),依賴于數(shù)據(jù)庫(kù)引擎,通常為 ~90 字節(jié)。 |
Trends(趨勢(shì)數(shù)據(jù)) | days*(items/3600)243600*bytes items:監(jiān)控項(xiàng)數(shù)量。 days:保留歷史數(shù)據(jù)的天數(shù)。 bytes:保留單個(gè)趨勢(shì)數(shù)據(jù)所需要占用的字節(jié)數(shù),依賴于數(shù)據(jù)庫(kù)引擎,通常為 ~90 字節(jié)。 |
Events(事件數(shù)據(jù)) | daysevents243600bytes events:每秒產(chǎn)生的事件數(shù)量。假設(shè)最糟糕的情況下,每秒產(chǎn)生 1 個(gè)事件。 days:保留歷史數(shù)據(jù)的天數(shù)。 bytes:保留單個(gè)趨勢(shì)數(shù)據(jù)所需的字節(jié)數(shù),取決于數(shù)據(jù)庫(kù)引擎,通常為 ~170 字節(jié)。 |
2.2.Zabbix安裝
-
使用yum和自定義配置安裝
- lnmp+zabbix-server(yum)
- zabbix-web(源碼包)
-
nginx和php環(huán)境
# yum配置
cur1 -o /etc /yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/centos-7.repo
yum insta11 epe1-release.noarch -y
cur1 -o/etc/yum.pos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm# 安裝nginx先要安裝epel源,或者使用nginx官方源
# 使用nginx 1.20 php7.2
yum insta11 nginx php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xm1 php72w-ldap php72w-mysq1nd -y# 開啟服務(wù)并設(shè)置自啟
[root@cloud ~]# systemctl enable nginx php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@cloud ~]# systemctl start nginx php-fpm.service # nginx配置
[root@cloud ~]# cat /etc/nginx/conf.d/zabbix.conf
server {listen 80;server_name zabbix.test;root /code/zabbix;location / {index index.php;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}# 配置php
# 修改組和用戶
[root@cloud ~]# cat /etc/php-fpm.d/www.conf
[www]
user = nginx
group = nginx# 準(zhǔn)備會(huì)話保持目錄
[root@cloud ~]# grep /var/lib/php/session /etc/php-fpm.d/www.conf
php_value[session.save_path] = /var/lib/php/session
[root@cloud ~]# mkdir -p /var/lib/php/session
[root@cloud ~]# chown nginx.nginx /var/lib/php/session
[root@cloud ~]# php-fpm -t
[13-May-2023 17:56:35] NOTICE: configuration file /etc/php-fpm.conf test is successful
[root@cloud ~]# systemctl reload php-fpm.service # 測(cè)試
[root@cloud ~]# mkdir -p /code/zabbix
[root@cloud ~]# chown nginx.nginx /code/zabbix
[root@cloud ~]# vim /code/zabbix/index.php
[root@cloud ~]# cat /code/zabbix/index.php
<?php
phpinfo();
?>
[root@cloud ~]# curl zabbix.test
- 數(shù)據(jù)庫(kù)配置
# 安裝數(shù)據(jù)庫(kù)
yum install -y mariadb-server# 進(jìn)行一些安全性設(shè)置
[root@cloud ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.Enter current password for root (enter for none):
OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..... Success!By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.Remove anonymous users? [Y/n] y... Success!Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y... Success!By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.Remove test database and access to it? [Y/n] y- Dropping test database...... Success!- Removing privileges on test database...... Success!Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.Reload privilege tables now? [Y/n] y... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.Thanks for using MariaDB!# 創(chuàng)建所需庫(kù)和用戶
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost; # 授予所有權(quán)限
mysql> set global log_bin_trust_function_creators = 1; # 允許在啟用二進(jìn)制日志時(shí)創(chuàng)建存儲(chǔ)函數(shù),而無(wú)需有SUPER權(quán)限
- Zabbix服務(wù)端
# 配置yum
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm?spm=a2c6h.25603864.0.0.251e2e2fnsDdRT
# 修改yum
baseurl=https://mirrors.aliyun.com/zabbix/zabbix//5.0/rhel/7/$basearch/# 安裝zabbix
yum install -y zabbix-server zabbix-agent2# 導(dǎo)入數(shù)據(jù)
zcat /usr/share/doc/zabbix-server-mysql-5.0.34/create.sql.gz
|mysql -uzabbix -proot zabbix # 解壓縮 create.sql.gz 文件并將其內(nèi)容輸出到標(biāo)準(zhǔn)輸出# 配置zabbix數(shù)據(jù)庫(kù)服務(wù)
grep ^DB /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=root# zabbix默認(rèn)開啟功能
LogFile=/var/log/zabbix/zabbix_server.log # 日志文件位置
LogFileSize=0 # 日志文件大小,0不限制大小
PidFile=/var/run/zabbix/zabbix_server.pid # 進(jìn)程 ID 文件位置
SocketDir=/var/run/zabbix # 套接字目錄
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=root
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log # SNMP Trapper 文件位置
Timeout=4 # 超時(shí)時(shí)間
AlertScriptsPath=/usr/lib/zabbix/alertscripts # 警告腳本路徑
ExternalScripts=/usr/lib/zabbix/externalscripts # 外部腳本路徑
LogSlowQueries=3000 # 記錄慢查詢的閾值
StatsAllowedIP=127.0.0.1 # 允許訪問統(tǒng)計(jì)數(shù)據(jù)信息的IP地址# 開啟服務(wù)(默認(rèn)10051端口)
systemctl start zabbix-server
- zabbix前端頁(yè)面
# 使用源碼包
# 去官網(wǎng)下載源碼包
[root@cloud nfs] tar xf zabbix-5.0.34.tar.gz
[root@cloud zabbix-5.0.34]# mv ui/* /code/zabbix/
[root@cloud zabbix-5.0.34]# chown -R named:named /code/zabbix/
- 安裝zabbix(zabbix前端頁(yè)面連接數(shù)據(jù)庫(kù)與zabbix-server)
# 需要在/etc/php.ini中修改的配置
Minimum required size of PHP post is 16M (configuration option "post_max_size").
Minimum required limit on execution time of PHP scripts is 300 (configuration option "max_execution_time").
Minimum required limit on input parse time for PHP scripts is 300 (configuration option "max_input_time").
Time zone for PHP is not set (configuration parameter "date.timezone").
date.timezone = Asia/Shanghai
當(dāng)你其他配置都完成后,出現(xiàn)這個(gè)頁(yè)面就是成功了!并且配置項(xiàng)都可以去conf/zabbix.conf.php文件修改
完成之后就可以登錄zabbix了,默認(rèn)用戶名是Admin,密碼是zabbix,登錄后可以自己修改密碼
2.3.監(jiān)控主機(jī)
- 安裝zabbix-agent2
yum install -y zabbix-server zabbix-agent2
zabbix agent | zabbix agent2 | |
---|---|---|
開發(fā)語(yǔ)言 | C | Go和C |
性能 | 獨(dú)立進(jìn)程方式運(yùn)行 | 1個(gè)進(jìn)程多線程運(yùn)行,減少資源消耗占用較少tcp資源,能夠承受更高并發(fā) |
- 監(jiān)控流程
- 在客戶端安裝zabbix-agent2
- 修改配置文件 指定Server為zabbix服務(wù)端
- web頁(yè)面配置 ----> 主機(jī)中添加主機(jī)
- 添加后檢測(cè)
# 修改配置文件
[root@cloud code]# grep "Server" /etc/zabbix/zabbix_agent2.conf
### Option: Server
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
# Server=
Server=127.0.0.1# agent配置
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1 # 客戶端主動(dòng)模式的服務(wù)端ip地址
Hostname=Zabbix server # 客戶端主機(jī)名
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock # 指定了SSH代理的控制套接字的位置# 啟動(dòng)agent
[root@cloud code]# systemctl start zabbix-agent2.service # 檢測(cè)客戶端服務(wù)端是否連通
# 安裝zabbix_get命令
yum install -y zabbix-get
# 在服務(wù)端執(zhí)行,如果有值則代表能獲取數(shù)據(jù)
zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
2.4.自定義監(jiān)控
以下監(jiān)控項(xiàng)類型由Zabbix提供:
-
Zabbix agent 檢查
-
SNMP agent 檢查
-
SNMP traps
-
IPMI 檢查
-
簡(jiǎn)單檢查
- VMware 監(jiān)控
-
日志文件監(jiān)控
-
可計(jì)算監(jiān)控項(xiàng)
- 聚合計(jì)算
-
Zabbix 內(nèi)部檢查
-
SSH 檢查
-
Telnet 檢查
-
外部檢查
-
采集器監(jiān)控項(xiàng)
-
JMX 監(jiān)控
-
ODBC 檢查
-
相關(guān)監(jiān)控項(xiàng)
-
HTTP 檢查
-
Prometheus 檢查
-
腳本監(jiān)控
-
概述
- 定制化,監(jiān)控我們所要的內(nèi)容
- 提升性能,提升zabbix性能,去掉不需要的監(jiān)控項(xiàng)
- zabbix自定義監(jiān)控:只要能夠通過(guò)命令取出來(lái)的內(nèi)容,就可以做自定義監(jiān)控
-
應(yīng)用場(chǎng)景:
- 定制:默認(rèn)的模板中沒有我們要的監(jiān)控項(xiàng)
- 提升zabbix性能/優(yōu)化:去掉/定制監(jiān)控項(xiàng),提升zabbix服務(wù)端的性能
-
自定義監(jiān)控流程
- Zabbix客戶端,**創(chuàng)建key(鍵值)**與調(diào)試
- 書寫監(jiān)控命令/腳本
- 調(diào)試Debug命令與腳本
- 寫入到zabbix客戶端配置文件中
UserParameter=key,command或腳本
與調(diào)試zabbix_get
- zabbix服務(wù)端web頁(yè)面
- 查看Web頁(yè)面是否可以獲取數(shù)據(jù)
- 設(shè)置Web觸發(fā)器trigger-什么時(shí)候報(bào)警
- Zabbix客戶端,**創(chuàng)建key(鍵值)**與調(diào)試
# 檢查80端口是否占用
# 1.創(chuàng)建鍵值:相當(dāng)于一個(gè)zabbix服務(wù)端能識(shí)別的命令,來(lái)獲取zabbix客戶端狀態(tài)
# 內(nèi)置鍵值key:zabbix_agent2 -p
# 自定義鍵值最好寫在/etc/zabbix/zabbix_agent2.d/
UserParameter=nginx.alive,ss -tunlp|grep -wc 80
[root@cloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx.alived
2# 使用帶參數(shù)形式
nginx.alive[*],sh nginx_stat.sh "$1" "$2"
nginx.alive[active,80],sh nginx_stat.sh "$1" "$2"
# web頁(yè)面不支持參數(shù)形式,得一個(gè)個(gè)寫#Key名本身具有有限的允許字符范圍,允許的字符是:0-9a-zA-Z_-.
- 新建監(jiān)控項(xiàng)
- 歷史數(shù)據(jù)(history)保留時(shí)長(zhǎng):每個(gè)更新間隔獲取到的數(shù)據(jù),推薦設(shè)置為30d
- 趨勢(shì)數(shù)據(jù)(trend)保留時(shí)長(zhǎng):記錄數(shù)據(jù)變化的趨勢(shì),推薦設(shè)置
1.監(jiān)控項(xiàng)類型
2.5.自定義觸發(fā)器
-
觸發(fā)器:trigger 什么時(shí)候進(jìn)行告警
-
本質(zhì)使用監(jiān)控項(xiàng)獲取的數(shù)據(jù),與我們?cè)O(shè)置的條件進(jìn)行比較,從而觸發(fā)警報(bào)
-
觸發(fā)器表達(dá)式功能
- 觸發(fā)器表達(dá)式格式
# {主機(jī)名:監(jiān)控項(xiàng).使用函數(shù)}判斷條件
{Zabbix server:nginx.alive.last()}=0
2.6.自定義監(jiān)控故障案例
1.權(quán)限
- 原因:zabbix客戶端運(yùn)行的時(shí)候zabbix用戶,獲取數(shù)據(jù)可能導(dǎo)致權(quán)限故障permission denied
- 解決:授權(quán)sudo
zabbix_get -s 127.0.0.1 -p 10050 -k vfs.file.contents[/etc/shadow]
ZBX_NOTSUPPORTED: Cannot open file /etc/shadow: open /etc/shadow: permission denied[root@cloud ~]# visudo
zabbix ALL=(ALL) NOPASSWD: ALL# 很難解決源key的權(quán)限問題,但是可以自定義key解決
UserParameter=conf.shadow,sudo wc -l /etc/shadow
2.腳本執(zhí)行時(shí)間
- zabbix默認(rèn)限制命令或腳本執(zhí)行時(shí)間不能超過(guò)30s
- 修改服務(wù)端和客戶端Timeout選項(xiàng)
3.awk取列
- 自定義監(jiān)控的時(shí)候推薦使用腳本,尤其是awk
- awk取列的時(shí)候容器出現(xiàn)故障 2 推薦使用 2 推薦使用 2推薦使用$2
2.7.創(chuàng)建模板
- 創(chuàng)建模板
- 創(chuàng)建應(yīng)用集(監(jiān)控項(xiàng)分類)
- 創(chuàng)建自定義監(jiān)控項(xiàng)
- 創(chuàng)建觸發(fā)器
- 創(chuàng)建圖像
- 模板可以與多個(gè)機(jī)器關(guān)聯(lián),避免web頁(yè)面重復(fù)操作
創(chuàng)建模板成功后,就可以正常添加監(jiān)控項(xiàng),觸發(fā)器等,監(jiān)控項(xiàng)、觸發(fā)器、圖形都可以直接從其他主機(jī)上復(fù)制到模板中
- 主要事項(xiàng)
- 先找一個(gè)主機(jī)配置監(jiān)控項(xiàng)等,進(jìn)行測(cè)試
- 然后再進(jìn)行創(chuàng)建模板
2.8.告警方案
- 前端消息告警
- 開啟功能并保證前端頁(yè)面開啟,有報(bào)警提示時(shí),會(huì)發(fā)出聲音(不推薦)
1.告警分類
2.郵件報(bào)警
- 個(gè)人/企業(yè)郵箱
- 開啟個(gè)人郵箱smtp功能,獲取授權(quán)碼
- 發(fā)件人:配置zabbix報(bào)警媒介類型
- 收件人:配置用戶接收?qǐng)?bào)警
- 配置動(dòng)作
- 配置報(bào)警媒介參數(shù)
- 收件人配置
- 對(duì)所有人員分組。權(quán)限一般以組設(shè)置
- 創(chuàng)建用戶時(shí)設(shè)置報(bào)警媒介
- 配置動(dòng)作
3.腳本報(bào)警
2.9.zabbix客戶端
zabbix客戶端 | |
---|---|
zabbix-agent2(最常用) | 適用于幾乎所有情況,linux,Windows |
SNMP | Simple Network Management Protocal 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 監(jiān)控網(wǎng)絡(luò)設(shè)備 |
JMX | Java-gateway,監(jiān)控java app(tomcat)。未來(lái)建議自定義監(jiān)控(zabbix_agent2 + jmap/jstats) |
IPMI | 監(jiān)控硬件(物理服務(wù)器),直接使用自定義監(jiān)控(ipmitool+megacli) |
1.snmp監(jiān)控
-
應(yīng)用:
- 監(jiān)控網(wǎng)絡(luò)設(shè)備
- 也支持監(jiān)控可以啟動(dòng)SNMP設(shè)備(Linux,Windows,打印機(jī)…)
-
使用snmp
- 啟動(dòng)設(shè)備的SNMP功能
- zabbix服務(wù)端進(jìn)行測(cè)試,能否獲取到網(wǎng)絡(luò)設(shè)備的信息
- web添加主機(jī)監(jiān)控項(xiàng)
# 1.安裝snmp服務(wù)端
yum install net-snmp -y# 2.配置snmp服務(wù)端
vim /etc/snmp/snmpd.conf
# 修改community為oldboy
com2sec notConfigUser default oldboy
# 增加一行
view systemview included# 安裝snmp命令
yum install net-snmp-utils -y
# 使用命令
snmpwalk -c oldbox -v 2c 192.168.13.1 sysUptime
-c oldbox:指定community字符串為“oldbox”。
-v 2c:指定SNMP協(xié)議版本為SNMPv2c。
192.168.13.1:指定要查詢的設(shè)備的IP地址。
sysUptime:指定要查詢的OID(對(duì)象標(biāo)識(shí)符)。
2.JMX監(jiān)控
- 安裝java程序,并開啟遠(yuǎn)程監(jiān)控功能
- 安裝zabbix-java-gateway服務(wù)端
- 配置web主機(jī)
這個(gè)配置只能寫成一行
-
獲取數(shù)據(jù)
# java -jar cmdline-jmxclient-0.10.3.jar - 10.0.0.7:12345
-
添加主機(jī)
2.10.自動(dòng)化監(jiān)控
- 自動(dòng)發(fā)現(xiàn):服務(wù)端主動(dòng)
- 自動(dòng)注冊(cè):客戶端主動(dòng)
- zabbix客戶端主動(dòng)與被動(dòng)模式
- zabbix分布式監(jiān)控
1.自動(dòng)發(fā)現(xiàn)和自動(dòng)注冊(cè)
共同點(diǎn) | 區(qū)別 | |
---|---|---|
自動(dòng)發(fā)現(xiàn) | 自動(dòng)添加主機(jī)并關(guān)聯(lián)模板,啟動(dòng)主機(jī) | 1.客戶端被動(dòng) 2.使用簡(jiǎn)單 3.效率或性能較低 4.對(duì)zabbix服務(wù)端壓力較大 |
自動(dòng)注冊(cè) | 自動(dòng)添加主機(jī)并管理模板,啟動(dòng)主機(jī) | 1.客戶端主動(dòng) 2.配置繁瑣一點(diǎn) 3.對(duì)zabbix服務(wù)端壓力較低 4.高并發(fā)注冊(cè)機(jī)器 |
-
自動(dòng)發(fā)現(xiàn)
- 配置自動(dòng)發(fā)現(xiàn)規(guī)則 - 發(fā)現(xiàn)主機(jī)
- 配置自動(dòng)發(fā)現(xiàn)動(dòng)作 - 發(fā)現(xiàn)主機(jī)后關(guān)聯(lián)模板等動(dòng)作
-
自動(dòng)注冊(cè)(可與ansible結(jié)合使用)
- 修改zabbix客戶端配置文件:ServeActive=服務(wù)端ip 和Hostname=…
- web頁(yè)面,動(dòng)作---->自動(dòng)注冊(cè) autoreg
2.zabbix-agent(取值)主動(dòng)與被動(dòng)
zabbix-agent主動(dòng):主動(dòng)向zabbix-server匯報(bào),52個(gè)監(jiān)控,請(qǐng)求1次,服務(wù)端收集到所有的數(shù)據(jù)
zabbix-agent被動(dòng):等待zabbix-server索要,52個(gè)監(jiān)控,請(qǐng)求52次,效率低,對(duì)zabbix服務(wù)壓力大
2.11.分布式監(jiān)控
- 應(yīng)用場(chǎng)景:有多個(gè)機(jī)房/網(wǎng)段/地域進(jìn)行監(jiān)控,分布式監(jiān)控(proxy代理監(jiān)控)
- 安裝zabbix-proxy-mysql
yum install -y https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxy-mysql-5.0.0-1.el7.x86_64.rpm
- 導(dǎo)入zabbix表結(jié)構(gòu)
[root@test ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.0/schema.sql.gz | mysql -uzabbix -pzabbix zabbix
- 配置zabbix-proxy
[root@test ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.19.136
ServerPort=10051
Hostname=Zabbix proxy # 代理名字,確保服務(wù)端知道代理名稱,也可使用HostnameItem
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
- 配置web代理
- 修改客戶端指向
2.12.lld
低級(jí)自動(dòng)發(fā)現(xiàn)可以自動(dòng)為主機(jī)上的不同實(shí)體創(chuàng)建監(jiān)控項(xiàng)、觸發(fā)器和圖表。比如, Zabbix可以自動(dòng)監(jiān)控文件系統(tǒng)和網(wǎng)絡(luò)接口,并且不需要為其手工創(chuàng)建監(jiān)控項(xiàng)。另外,可以基于周期性自動(dòng)發(fā)現(xiàn)的結(jié)果來(lái)刪除無(wú)用的監(jiān)控實(shí)體。
-
應(yīng)用場(chǎng)景
- 低級(jí)自動(dòng)發(fā)現(xiàn)特別適合用于監(jiān)控那些有規(guī)律,又有差異的監(jiān)控對(duì)象
-
系統(tǒng)內(nèi)置的自動(dòng)發(fā)現(xiàn)
如果想立刻上手熟悉其它類型的自動(dòng)發(fā)現(xiàn),更多信息和如何實(shí)現(xiàn)(how-to)方面可參閱以下章節(jié):
- 網(wǎng)絡(luò)接口的自動(dòng)發(fā)現(xiàn);
- CPU 和 CPU 核心的自動(dòng)發(fā)現(xiàn);
- SNMP OID的自動(dòng)發(fā)現(xiàn);
- JMX 對(duì)象的自動(dòng)發(fā)現(xiàn);
- 使用ODBC SQL 查詢的自動(dòng)發(fā)現(xiàn);
- Windows 服務(wù)的自動(dòng)發(fā)現(xiàn);
- Zabbix 主機(jī)接口的自動(dòng)發(fā)現(xiàn)。
-
自動(dòng)發(fā)現(xiàn)/自動(dòng)注冊(cè)----自動(dòng)添加主機(jī)
-
希望zabbix自動(dòng)添加監(jiān)控項(xiàng):自動(dòng)監(jiān)控一些有關(guān)聯(lián)的內(nèi)容:網(wǎng)卡、磁盤、磁盤分區(qū)…低級(jí)自動(dòng)發(fā)現(xiàn)(Low Level Discovery)
-
系統(tǒng)模板自帶的自動(dòng)發(fā)現(xiàn)規(guī)則
- 系統(tǒng)內(nèi)置自動(dòng)發(fā)現(xiàn)鍵值
[root@test zabbix]# zabbix_get -s 192.168.19.137 -p 10050 -k "net.if.discovery"
[{"{#IFNAME}":"lo"},{"{#IFNAME}":"virbr0-nic"},{"{#IFNAME}":"virbr0"},{"{#IFNAME}":"ens33"}]
# zabbix內(nèi)置宏 {HOST.NAME}
# zabbix 用戶定義宏 {$OLDBOY}
# zabbix低級(jí)自動(dòng)發(fā)現(xiàn)專用宏 {#IFNAME}
- 根據(jù)網(wǎng)卡名字創(chuàng)建對(duì)應(yīng)的監(jiān)控項(xiàng)原型:net.if.in[“{#IFNAME}”]-----> net.if.in[eth0] 然后 net.if.in[eth1]
1.案例:統(tǒng)計(jì)網(wǎng)卡總流量
- 監(jiān)控項(xiàng)原型
- 流量過(guò)大 告警(觸發(fā)器模型)
- 流量圖形展示
[root@cloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k net.if.discovery|jq
[{"{#IFNAME}": "br-422bc8cc20df"},{"{#IFNAME}": "br-10d894dab180"},{"{#IFNAME}": "lo"},{"{#IFNAME}": "virbr0-nic"},{"{#IFNAME}": "virbr0"},{"{#IFNAME}": "ens33"},{"{#IFNAME}": "br-4871ddbe0355"},{"{#IFNAME}": "docker0"}
]
[root@cloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k net.if.total[ens33]
554386852
- 設(shè)置觸發(fā)器原型
- 設(shè)置圖形
2.從零開始lld
- 獲取你要的內(nèi)容,磁盤分區(qū)的名字,網(wǎng)卡名字
- 根據(jù)自動(dòng)發(fā)現(xiàn)內(nèi)容,創(chuàng)建自動(dòng)發(fā)現(xiàn)規(guī)則
- 創(chuàng)建監(jiān)控項(xiàng)原型
- 創(chuàng)建觸發(fā)器原型
- 創(chuàng)建圖形原型
# 官方要求書寫格式
# LLD宏的名稱允許使用的符號(hào)有 0-9 ,A-Z , _ , .
[{ "{#FSNAME}":"/", "{#FSTYPE}":"rootfs" },{ "{#FSNAME}":"/sys", "{#FSTYPE}":"sysfs" },{ "{#FSNAME}":"/proc", "{#FSTYPE}":"proc" },{ "{#FSNAME}":"/dev", "{#FSTYPE}":"devtmpfs" },{ "{#FSNAME}":"/dev/pts", "{#FSTYPE}":"devpts" },{ "{#FSNAME}":"/lib/init/rw", "{#FSTYPE}":"tmpfs" },{ "{#FSNAME}":"/dev/shm", "{#FSTYPE}":"tmpfs" },{ "{#FSNAME}":"/home", "{#FSTYPE}":"ext3" },{ "{#FSNAME}":"/tmp", "{#FSTYPE}":"ext3" },{ "{#FSNAME}":"/usr", "{#FSTYPE}":"ext3" },{ "{#FSNAME}":"/var", "{#FSTYPE}":"ext3" },{ "{#FSNAME}":"/sys/fs/fuse/connections", "{#FSTYPE}":"fusectl" }
]# 書寫腳本 生成格式 ==== net.if.discovery
# 1. 拿取所需端口
# 2. 輸出格式
#!/bin/bash
#desc: auto discovery server portport_list=(`netstat -tunlp|grep zabbix|awk -F'[ :]+' '$4~/^[0-9]+$/{print $4}'`)echo '['
for port in ${port_list[*]};dolet i++if [ $i -eq ${#port_list[*]} ];thenecho -e "\t{ \"{#PORT}\":\""$port"\"}"elseecho -e "\t{ \"{#PORT}\":\""$port"\"},"fi
doneecho ']'# 書寫配置文件
UserParameter=net.port.discovery,sh /server/scripts/net.port.sh# 測(cè)試
[root@cloud scripts]# zabbix_get -s 127.0.0.1 -p 10050 -k net.port.discovery
[{ "{#PORT}":"10050"},{ "{#PORT}":"10051"}
]
- 創(chuàng)建發(fā)現(xiàn)規(guī)則
2.13.web場(chǎng)景
2.14.Zabbix api
- application interface 程序接口
- 針對(duì)zabbix進(jìn)行二次開發(fā),公司,運(yùn)維管理平臺(tái) CMDB(存儲(chǔ)與管理企業(yè)IT架構(gòu)中設(shè)備的各種配置信息)(把zabbix集成成自己的運(yùn)維平臺(tái))
- zabbix api主要的接口功能:通過(guò)api接口可以代替web頁(yè)面操作。增刪改查
- api接口應(yīng)用場(chǎng)景:人臉識(shí)別,短信驗(yàn)證,身份證驗(yàn)證…
- 使用與調(diào)用:
- **自己寫程序調(diào)用:**直接通過(guò)程序代碼進(jìn)行調(diào)用,需要參考對(duì)方的api接口文檔
- **官方寫好的,可以直接使用(SDK一般指軟件開發(fā)工具包):**通過(guò)SDK樣例快速調(diào)用和使用即可
- api接口使用流程
- 根據(jù)zabbix用戶名和密碼,獲取token
- 使用token訪問或調(diào)取zabbix資源
- 官方API文檔
當(dāng)完成了前端的安裝配置后,你就可以使用遠(yuǎn)程HTTP請(qǐng)求來(lái)調(diào)用API。為此,需要向位于前端目錄中的 api_jsonrpc.php 文件發(fā)送 HTTP POST 請(qǐng)求。例如,如果你的 Zabbix 前端安裝在 http://example.com/zabbix, 那么用HTTP請(qǐng)求來(lái)調(diào)用 apiinfo.version 方法就如下面這樣:POST http://example.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc { · "jsonrpc": "2.0", · "method": "apiinfo.version", · "id": 1, · "auth": null, · "params": {}
}
請(qǐng)求的 Content-Type 頭部必須設(shè)置為以下值之一:application/json-rpc,application/json 或 application/jsonrequest。# 使用curl進(jìn)行請(qǐng)求
# postman
curl
-X 修改請(qǐng)求方法
-H 修改請(qǐng)求信息
-d --data 上傳的內(nèi)容
-v 請(qǐng)求詳細(xì)# 獲取token
在訪問 Zabbix 中的任何數(shù)據(jù)之前,你需要登錄并獲取身份認(rèn)證 token。這可以使用 user.login 方法完成。我們假設(shè)你想要以標(biāo)準(zhǔn) Zabbix Admin 用戶身份登錄。那么,你的 JSON 請(qǐng)求將如下所示:{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null
}
讓我們仔細(xì)看看示例請(qǐng)求對(duì)象。它具有以下屬性:jsonrpc - API 使用的 JSON-RPC 協(xié)議的版本; Zabbix API 實(shí)現(xiàn)的 JSON-RPC 版本是2.0;
method - 被調(diào)用的 API 方法;
params - 將被傳遞給API方法的參數(shù);
id - 請(qǐng)求的任意標(biāo)識(shí)符;
auth - 用戶認(rèn)證 token;因?yàn)槲覀冞€沒有,它被設(shè)置為 null。
如果你正確提供了憑據(jù),API 返回的響應(yīng)將包含用戶身份認(rèn)證 token:{"jsonrpc": "2.0","result": "0424bd59b807674191e7d77572075f33","id": 1
}
響應(yīng)對(duì)象包含以下屬性:jsonrpc - JSON-RPC 協(xié)議的版本;
result - 方法返回的數(shù)據(jù);
id - 對(duì)應(yīng)請(qǐng)求的標(biāo)識(shí)符。# 使用
[root@cloud scripts]# curl -X POST -H "Content-Type: application/json-rpc" -d '
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1,
> "auth": null
> }' http://127.0.0.1/api_jsonrpc.php
{"jsonrpc":"2.0","result":"798fdaa158f48e89ad412304009265d0","id":1}# 可以使用jq命令去json格式數(shù)據(jù)
cat token.txt|jq ".result, .id"
.result[] #進(jìn)入下一層我們現(xiàn)在有一個(gè)有效的用戶身份認(rèn)證 token,可以用來(lái)訪問 Zabbix 中的數(shù)據(jù)。例如,我們使用 host.get 方法檢索所有已配置 主機(jī) 的ID,主機(jī)名和接口 :{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 2,"auth": "0424bd59b807674191e7d77572075f33"
}
請(qǐng)注意 auth屬性現(xiàn)在設(shè)置為我們通過(guò)調(diào)用 user.login 方法獲得的身份認(rèn)證 token。
響應(yīng)對(duì)象將包含有關(guān)主機(jī)的請(qǐng)求數(shù)據(jù):{"jsonrpc": "2.0","result": [{"hostid": "10084","host": "Zabbix server","interfaces": [{"interfaceid": "1","ip": "127.0.0.1"}]}],"id": 2
}
3.zabbix性能優(yōu)化
-
網(wǎng)站架構(gòu)調(diào)整:盡量讓用戶的請(qǐng)求往前推(用戶請(qǐng)求不要到達(dá)網(wǎng)站走cdn,使用緩存,消息隊(duì)列)
-
根據(jù)業(yè)務(wù)類型調(diào)整:讀少寫多
- zabbix是一個(gè)寫多讀少的業(yè)務(wù),優(yōu)化數(shù)據(jù)庫(kù)的寫入性能,建議使用InnoDB或tokudb存儲(chǔ)引擎
- 數(shù)據(jù)庫(kù)分離或數(shù)據(jù)庫(kù)拆分
-
zabbix鍵值與監(jiān)控項(xiàng)處理
- 增加取值的時(shí)間
- 使用自定義模板,控制功能全面監(jiān)控,監(jiān)控項(xiàng)少 精簡(jiǎn)監(jiān)控項(xiàng)
- 歷史數(shù)據(jù)保留時(shí)長(zhǎng)減少,設(shè)置為30d或7d,增加趨勢(shì)存儲(chǔ)時(shí)間365d
-
zabbix觸發(fā)器
- 盡量使用last()/diff()/nodata()
- 避免使用需要計(jì)算max()/min()/avg()
- 整體目標(biāo):不要讓zabbix服務(wù)端進(jìn)行計(jì)算/數(shù)據(jù)庫(kù)進(jìn)行計(jì)數(shù),需要計(jì)算的內(nèi)容放在客戶端(自定義監(jiān)控項(xiàng))
-
zabbix服務(wù)端
- 增加zabbix進(jìn)程數(shù)量,那種進(jìn)程占用大量資源,增加數(shù)量 Start…
- 增加zabbix緩存大小,緩存各種從客戶端獲取數(shù)據(jù) Cache
-
zabbix客戶端
- 使用主動(dòng)模式
ServerActive
- 使用主動(dòng)模式
-
zabbix參數(shù)配置:緩存和進(jìn)程數(shù)量
-
xxxxcache:用于zabbix服務(wù)端緩存獲取的各類數(shù)據(jù)(歷史數(shù)據(jù),趨勢(shì)數(shù)據(jù))
-
poller:zabbix用于接收各類數(shù)據(jù)的進(jìn)程數(shù)量
-
CacheSize 否 128K-64G 8M 緩存大小, 單位為字節(jié)。
用于存儲(chǔ)主機(jī)、監(jiān)控項(xiàng)、觸發(fā)器數(shù)據(jù)的共享內(nèi)存大小。CacheUpdateFrequency 否 1-3600 60 Zabbix執(zhí)行配置緩存更新的頻率,以秒為單位。
HistoryCacheSize 否 128K-2G 16M 歷史緩存的大小,以字節(jié)為單位。
用于存儲(chǔ)歷史數(shù)據(jù)的共享內(nèi)存大小。HistoryIndexCacheSize 否 128K-2G 4M 歷史索引緩存的大小,以字節(jié)為單位。
用于索引存儲(chǔ)在歷史緩存中的歷史數(shù)據(jù)的共享內(nèi)存大小。
索引緩存一個(gè)監(jiān)控項(xiàng)大約需要 100 字節(jié)。
自 Zabbix 3.0.0 版本起開始支持此參數(shù)。TrendCacheSize 否 128K-2G 4M 趨勢(shì)緩存的大小,以字節(jié)為單位。
用于存儲(chǔ)趨勢(shì)數(shù)據(jù)的共享內(nèi)存大小。ValueCacheSize 否 0,128K-64G 8M 歷史值緩存的大小,以字節(jié)為單位。
用于緩存監(jiān)控項(xiàng)歷史數(shù)據(jù)請(qǐng)求的共享內(nèi)存大小。
設(shè)置為 0 將禁用緩存(不推薦)。
當(dāng)值緩存耗盡共享內(nèi)存時(shí),每 5 分鐘會(huì)向服務(wù)器日志寫入一條告警消息。
StartPollers 否 0-1000 5 輪詢進(jìn)程的初始實(shí)例數(shù)量,必須非0
StartPollersUnreachable 否 0-1000 1 不可達(dá)主機(jī)輪詢器 (包括 IPMI 和 Java)1 的 pre-forked(預(yù)分配)實(shí)例數(shù)量。
如果啟動(dòng)了常規(guī)、IPMI 或 Java輪詢器,則必須至少運(yùn)行一個(gè)無(wú)法訪問主機(jī)的輪詢器。StartIPMIPollers 否 0-1000 0 IPMI 輪詢器的 pre-forked(預(yù)分配)實(shí)例數(shù)量
StartJavaPollers 否 0-1000 0 Java 輪詢器1 的 pre-forked(預(yù)分配)實(shí)例數(shù)量
StartHTTPPollers 否 0-1000 1 HTTP 輪詢器1 的 pre-forked(預(yù)分配)實(shí)例數(shù)量
StartProxyPollers 否 0-250 1 passive proxies 被動(dòng)代理輪詢器1 的 pre-forked(預(yù)分配)實(shí)例數(shù)量。
4.zabbix與其他
- zabbix收集數(shù)據(jù),grafana顯示圖形
# 安裝Grafana
yum install -y https://mirrors.aliyun.com/grafana/yum/rpm/Packages/grafana-enterprise-9.5.2-1.x86_64.rpm# 相關(guān)文件
/etc/grafana # 配置文件目錄
/etc/init.d/grafana-server
/etc/sysconfig/grafana-server # 配置文件
/usr/lib/systemd/system/grafana-server.service # 服務(wù)管理腳本
/usr/sbin/grafana-cli # grafana管理命令
/usr/sbin/grafana-server # 服務(wù)端命令
/usr/share/grafana/public # 家目錄,前端頁(yè)面# 安裝zabbix插件
# 配置grafana通過(guò)api 訪問zabbix
# web頁(yè)面添加dashboard
# 導(dǎo)入模板
- 登錄相關(guān)頁(yè)面ip:3000 用戶名:密碼:都是admin
- 安裝檢查zabbix插件
# 也可以命令行安裝
grafana-cli plugins install alexanderzobnin-zabbix-app 版本號(hào)
- 修改數(shù)據(jù)源
- 創(chuàng)建圖像
# 設(shè)置監(jiān)控項(xiàng)時(shí)可以用正則
/.*/
- 使用模板
模板下載地址
下載模板的JSON文件或者復(fù)制模板ID后,在Grafana中導(dǎo)入
導(dǎo)入之后默認(rèn)是只讀的,需要在設(shè)置中修改
5.監(jiān)控架設(shè)
1.詳細(xì)要求
- 所有服務(wù)器基礎(chǔ)監(jiān)控:cpu、內(nèi)存、網(wǎng)卡、磁盤(大小/io)、網(wǎng)絡(luò)帶寬、負(fù)載…
- cdn/dns:聽云/監(jiān)控寶
- 負(fù)載均衡:(nginx lvs haproxy)
- 端口80監(jiān)控
- keepalived服務(wù)進(jìn)程監(jiān)控
- tcp11種狀態(tài)數(shù)量監(jiān)控(當(dāng)前網(wǎng)站并發(fā))
- nginx狀態(tài)監(jiān)控
- 日志 每種狀態(tài)碼的數(shù)量
- https證書過(guò)期時(shí)間
- web服務(wù)器
- 端口80和9000監(jiān)控
- nginx狀態(tài)監(jiān)控
- 訪問日志狀態(tài)碼數(shù)量監(jiān)控
- ngin+php 監(jiān)控
- php+數(shù)據(jù)庫(kù) 連接監(jiān)控
- php狀態(tài)
- tomcat多實(shí)例/單實(shí)例監(jiān)控(jvm內(nèi)存使用情況)
- 數(shù)據(jù)庫(kù)服務(wù)監(jiān)控
- 進(jìn)程,端口
- 存儲(chǔ)服務(wù)
- 共享了那些目錄監(jiān)控,共享目錄大小監(jiān)控
- nfs,rpc服務(wù)監(jiān)控
- 備份服務(wù)器
- rsync端口,進(jìn)程監(jiān)控
- rsync守護(hù)進(jìn)程模式監(jiān)控
- 是否可以數(shù)據(jù)傳輸
- redis緩存
- 端口,進(jìn)程
- 狀態(tài)(命中率)
2.環(huán)境準(zhǔn)備
主機(jī)名 | 功能 | ip |
---|---|---|
lb01 | 負(fù)載均衡 | |
web01 | web服務(wù)器 | |
db01 | 數(shù)據(jù)庫(kù)及緩存 | |
nfs01 | 存儲(chǔ) | |
backup | 備份rsync服務(wù)端 | |
m02 | zabbix服務(wù)器 |
3.實(shí)驗(yàn)
- 實(shí)現(xiàn)zabbix服務(wù)器監(jiān)控其他所有服務(wù)器