① 介紹
自定義用戶參數(shù),也就是自定義key
有時,你可能想要運行一個代理檢查,而不是Zabbix的預定義
你可以編寫一個命令來檢索需要的數(shù)據(jù),并將其包含在代理配置文件("UserParameter"配置參數(shù))的用戶參數(shù)中
② 用法格式 syntax
UserParameter=<key>,<command>
A user parameter also contains a key 一個用戶參數(shù)也包含一個鍵
The key will be necessary when configuring an item 在配置監(jiān)控項時,key是必需的
Note: Need to restart the agent 注意:需要重新啟動agent 服務
(1)修改agent 端的配置,設置用戶參數(shù)
① free | awk '/^Mem/{print }' 自己需要查找的參數(shù)的命令
② 修改配置文件,把查找參數(shù)的命令設為用戶參數(shù)
cd /etc/zabbix/zabbix_agentd.d/
vim memory_usage.conf
UserParameter=memory.used,free | awk '/^Mem/{print $3}'
③ systemctl restart zabbix-agent.service 重啟agent 服務
(2)在zabbix-server 端,查詢
zabbix_get -s 192.168.30.7 -p 10050 -k "memory.used"
(3)在監(jiān)控上,設置一個item監(jiān)控項,使用這個用戶參數(shù)
(4)查詢graph 圖形
(1)修改agent 端的配置,設置用戶參數(shù)
① 命令行查詢參數(shù)的命令
② 修改配置文件,把查找參數(shù)的命令設為用戶參數(shù)
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^1/{print }'
分析:$:表示不是前邊調(diào)位置參數(shù)的2 ,而是awk 的參數(shù)2,而是awk的參數(shù)2
注意:是調(diào)用前邊的[*],位置參數(shù),第一個參數(shù)
(2)在zabbix-server 端,查詢使用這個用戶參數(shù)的key
(3)在監(jiān)控上,設置一個item監(jiān)控項,使用這個用戶參數(shù)
① 添加Memory Total 的item監(jiān)控項,使用memory.stats[MemTotal] 的用戶參數(shù)
在進程中定義倍數(shù),規(guī)定單位
② clone 克隆Memory Total 創(chuàng)建Memory Free 的監(jiān)控項
memory.stats[MemFree] 用戶參數(shù)
③ 創(chuàng)建Memory Buffers 的item 監(jiān)控項,使用 memory.stats[Buffers] 的key
(4)上面3個監(jiān)控項的graph 圖形
① memory total
② memory free
③ buffers
在agent 端:
(1)下載,設置php-fpm
① yum -y install php-fpm
② vim /etc/php-fpm.d/www.conf 打開php-fpm的狀態(tài)頁面
user = nginx
group = nginx
pm.status_path = /php-fpm-status
#php-fpm 的狀態(tài)監(jiān)測頁面
ping.path = /ping
#ping 接口,存活狀態(tài)是否ok
ping.response = pong
#響應內(nèi)容pong
③ systemctl start php-fpm 開啟服務
(2)設置nginx ,設置代理php,和php-fpm的狀態(tài)頁面匹配
vim /etc/nginx/nginx.conf
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;
}
location ~* /(php-fpm-status|ping) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1; #因為這個頁面很重要,所有需加訪問控制
deny all;
access_log off; #訪問這個頁面就不用記錄日志了
}
② systemctl start nginx 開啟nginx服務
(3)在agent 端,設置用戶參數(shù)
① 查詢 curl 192.168.30.7/php-fpm-status
② 設置
cd /etc/zabbix/zabbix_agentd.d/
vim php_status.conf
UserParameter=php-fpm.stats[*],curl -s http://127.0.0.1/php-fpm-status | awk '/^$1/{print $$NF}'
分析:設置用戶參數(shù)為php-fpm.stats[*],1為第一個參數(shù);1為第一個參數(shù);$NF為awk中的參數(shù),倒數(shù)第一列
③ 重啟服務
systemctl restart zabbix-agent
(4)在zabbix-server 端,查詢使用這個用戶參數(shù)的key
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[idle]"
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[active]"
zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[max active]"
(5)創(chuàng)建一個模板,在模板上創(chuàng)建4個item監(jiān)控項,使用定義的用戶參數(shù)
① 創(chuàng)建一個模板
② 在模板上配置items 監(jiān)控項,使用剛定義的用戶參數(shù)
fpm.stats[total processes]
③ 再clone克隆幾個items監(jiān)控項
fpm.stats[active processes]
④ fpm.stats[max active processes]
⑤ fpm.stats[idle processes]
(6)host主機鏈接模板
(7)查看graph 圖形
① php-fpm total processes
② php-fpm active processes
③ php-fpm max active processes
④ php-fpm idle processes
(8)把模板導出,可以給別人使用
① 導出模板
最下面有導出
② 自己定義用戶參數(shù)的文件,也不要忘記導出
/etc/zabbix/zabbix_agentd.d/php_status.conf
(1)介紹
網(wǎng)絡發(fā)現(xiàn):zabbix server掃描指定網(wǎng)絡范圍內(nèi)的主機;
網(wǎng)絡發(fā)現(xiàn)是zabbix 最具特色的功能之一,它能夠根據(jù)用戶事先定義的規(guī)則自動添加監(jiān)控的主機或服務等
優(yōu)點:
加快Zabbix部署
簡化管理
在快速變化的環(huán)境中使用Zabbix,而不需要過度管理
(2)發(fā)現(xiàn)方式:
ip地址范圍;
可用服務(ftp, ssh, http, ...)
zabbix_agent的響應;
snmp_agent的響應;
(3)網(wǎng)絡發(fā)現(xiàn)通常包含兩個階段:discovery發(fā)現(xiàn) 和actions動作
① discovery:
Zabbix定期掃描網(wǎng)絡發(fā)現(xiàn)規(guī)則中定義的IP范圍;檢查的頻率對于每個規(guī)則都是可配置的
每個規(guī)則都有一組用于為IP范圍執(zhí)行的服務檢查
由網(wǎng)絡發(fā)現(xiàn)模塊執(zhí)行的服務和主機(IP)的每個檢查都會生成一個發(fā)現(xiàn)事件
8種響應事件
② actions:網(wǎng)絡發(fā)現(xiàn)中的事件可以觸發(fā)action,從而自動執(zhí)行指定的操作,把discvery events當作前提條件;
Sending notifications 發(fā)送通知
Adding/removing hosts 添加/刪除主機
Enabling/disabling hosts 啟用/禁用host
Adding hosts to a group 向組中添加主機
Removing hosts from a group 移除組中的主機
Linking hosts to/unlinking from a template 從模板鏈接主機或取消鏈接
Executing remote scripts 執(zhí)行遠程腳本
這些事件的配置還可以基于設備的類型、IP 、狀態(tài)、上線/ 離線等進行配置
(4)網(wǎng)絡發(fā)現(xiàn):接口添加
網(wǎng)絡發(fā)現(xiàn)中添加主機時會自動創(chuàng)建interface 接口
例如:
如果基于SNMP 檢測成功,則會創(chuàng)建SNMP 接口
如果某服務同時響應給了agent 和SNMP ,則兩種接口都會創(chuàng)建
如果同一種發(fā)現(xiàn)機制( 如agent) 返回了非惟一數(shù)據(jù),則第一個接口被識別為默認,其它的為額外接口
即便是某主機開始時只有agent 接口,后來又通過snmp 發(fā)現(xiàn)了它,同樣會為其添加額外的snmp 接口
不同的主機如果返回了相同的數(shù)據(jù),則第一個主機將被添加,余下的主機會被當作第一個主機的額外接口
(1)準備一臺可被掃描發(fā)現(xiàn)的主機
① 安裝agent 段的包
yum -y install zabbix-agent zabbix-sender
② 設置agent 配置,可以把之前設置好的node1的配置傳過來
vim /etc/zabbix/zabbix_agentd.conf
Hostname=http://node2.along.com #只需修改hostname
③ visudo 修改sudo的配置
zabbix ALL=(ALL) NOPASSWD: ALL
④ 開啟服務
systemctl start zabbix-agent
(2)設置自動發(fā)現(xiàn)規(guī)則discovery
注釋:
① key:zabbix_get -s 192.168.30.2 -p 10050 -k "system.hostname"
② 更新間隔:1h就好,不要掃描太過頻繁,掃描整個網(wǎng)段,太廢資源;這里為了實驗,設為1m
(3)自動發(fā)現(xiàn)成功
(4)設置自動發(fā)現(xiàn)discovery 的動作action
a) 創(chuàng)建
b) 設置action動作
① 設置A條件,自動發(fā)現(xiàn)規(guī)則=http://test.net
② 設置B條件,自動發(fā)現(xiàn)狀態(tài)=up
③ 要做什么操作
添加主機到監(jiān)控
自動鏈接Template OS Linux 到此host
c) 配置action 完成,默認是disabled 停用的
d) 啟用動作,查看效果
確實已經(jīng)生效,添加主機成功,模板鏈接成功
(5)如果自己需要添加的主機已經(jīng)掃描添加完成,就可以關閉網(wǎng)絡掃描了,因為太耗資源
(1)介紹
① Web監(jiān)控:監(jiān)控指定的站點的資源下載速度,及頁面響應時間,還有響應代碼;
② 術語:
web Scenario: web場景(站點)
web page :web頁面,一個場景有多個頁面
內(nèi)建key:要測一個頁面,要測三個步驟(下邊3個內(nèi)建key)
③ 內(nèi)建key:
http://web.test.in[Scenario,Step,bps]:傳輸速率
web.test.time[Scenario,Step]: 響應時長
web.test.rspcode[Scenario,Step]:響應碼
(1)創(chuàng)建
(2)配置web 監(jiān)測
① 點擊步驟,設置web page web頁面
a) 設置名為home page,URL為http://192.168.30.7/index.html 的web頁面
b) 設置名為fpm status,URL為http://192.168.30.7/fpm-status 的web頁面
c) 設置2個web頁面成功
② 如果有特殊認證,也可以添加
(1)主動/被動介紹
被動檢測:相對于agent而言;agent, server向agent請求獲取配置的各監(jiān)控項相關的數(shù)據(jù),agent接收請求、獲取數(shù)據(jù)并響應給server;
主動檢測:相對于agent而言;agent(active),agent向server請求與自己相關監(jiān)控項配置,主動地將server配置的監(jiān)控項相關的數(shù)據(jù)發(fā)送給server;
主動監(jiān)控能極大節(jié)約監(jiān)控server 的資源。
(2)zabbix_sender發(fā)送數(shù)據(jù):實現(xiàn)人工生成數(shù)據(jù),發(fā)給server端
① zabbix server上的某主機上,直接定義Item時隨便定義一個不與其它已有key沖突的key即可,即item type為"zabbix trapper";
② 用法選項:
zabbix_sender
-z zabbix_server_ip
-p zabbix_server_port
-s zabbix_agent_hostname
-k key
-o value 值
(1)agent端所需要基本配置:
ServerActive=192.168.30.107 給哪個監(jiān)控server 發(fā)送數(shù)據(jù) Hostname=http://node1.along.com 自己的主機名,假設主機定死了,不設置下一項 #HostnameItem= 如果自己的主機名易變動,這一項相當于key一樣去匹配
注意:若后兩項同時啟用,下邊一個選擇生效
(2)設置一個主動監(jiān)測
① 選擇進程,每秒更改,
因為key:system.cpu.switches :上下文的數(shù)量進行切換,它返回一個整數(shù)值。為了監(jiān)控效果,選擇下一秒減上一秒的值作為監(jiān)控
(3)已經(jīng)有啦graph圖形
(1)配置一個zabbix traper(采集器) 的item 監(jiān)控項
(2)agent 端手動發(fā)送數(shù)據(jù)
(3)監(jiān)控到數(shù)據(jù)的變化
(1)介紹
SNMP:簡單網(wǎng)絡管理協(xié)議;(非常古老的協(xié)議)
三種通信方式:讀(get, getnext)、寫(set)、trap(陷阱);
端口:
161/udp
162/udp
SNMP協(xié)議:年代久遠
v1: 1989
v2c: 1993
v3: 1998
監(jiān)控網(wǎng)絡設備:交換機、路由器
MIB:Management Information Base 信息管理基礎
OID:Object ID 對象ID
(2)Linux啟用snmp的方法:
yum install net-snmp net-snmp-utils
配置文件:定義ACL
/etc/snmp/snmpd.conf
啟動服務:
systemctl start snmpd 被監(jiān)控端開啟的服務
systemctl start snmptrapd 監(jiān)控端開啟的服務(如果允許被監(jiān)控端啟動主動監(jiān)控時啟用)
(3)配置文件的介紹
開放數(shù)據(jù):4步
① 定義認證符,將社區(qū)名稱"public"映射為"安全名稱"
② 將安全名稱映射到一個組名
③ 為我們創(chuàng)建一個視圖,讓我們的團隊有權利
掩碼:我列出一些注釋,有很多,可以再網(wǎng)上查詢
.1.3.6.1.2.1.
1.1.0:系統(tǒng)描述信息,SysDesc
1.3.0:監(jiān)控時間, SysUptime
1.5.0:主機名,SysName
1.7.0:主機提供的服務,SysService
.1.3.6.1.2.2.
2.1.0:網(wǎng)絡接口數(shù)目
2.2.1.2:網(wǎng)絡接口的描述信息
2.2.1.3:網(wǎng)絡接口類型
……
④ 授予對systemview視圖的只讀訪問權
(4)測試工具:
(1)下載,修改配置文件
vim /etc/snmp/snmpd.conf
view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.2 # 網(wǎng)絡接口的相關數(shù)據(jù) view systemview included .1.3.6.1.4.1.2021 # 系統(tǒng)資源負載,memory, disk io, cpu load view systemview included .1.3.6.1.2.1.25
(2)在agent 上測試
snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.3.0
snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.5.0
(3)在監(jiān)控頁面,給node2加一個snmp的接口
(4)在node2上加一個 Template OS Linux SNMPv2 模板
模板添加成功,生成一系列東西
點開一個item 看一下
(5)生成一些最新數(shù)據(jù)的圖形graph了
(1)監(jiān)控網(wǎng)絡設備:交換機、路由器的步驟:
① 把交換機、路由器的SNMP 把對應的OID的分支啟用起來
② 了解這些分支下有哪些OID,他們分別表示什么意義
③ 我們要監(jiān)控的某一數(shù)據(jù):如交換機的某一個接口流量、報文,發(fā)送、傳入傳出的報文數(shù)有多少個;傳入傳出的字節(jié)數(shù)有多少個,把OID取出來,保存
(2)定義入站出站的item監(jiān)控項
interface traffic packets(in)
interface traffic packets(out)
(1)介紹
Java虛擬機(JVM)具有內(nèi)置的插裝,使您能夠使用JMX監(jiān)視和管理它。您還可以使用JMX監(jiān)視工具化的應用程序。
(2)配置設置介紹
① zabbix-java-gateway主機設置:
安裝 zabbix-java-gateway程序包,啟動服務;
yum -y install zabbix-java-gateway
② zabbix-server端設置(需要重啟服務):
JavaGateway=172.16.0.70
JavaGatewayPort=10052
StartJavaPollers=5 #監(jiān)控項
③ tomcat主機設置:
監(jiān)控tomcat:
/etc/sysconfig/tomcat,添加
CATALINA_OPTS="-Djava.rmi.server.hostname=TOMCAT_SERVER_IP -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" #啟用JVM接口,默認沒有啟用
添加監(jiān)控項:
jmx[object_name,attribute_name]
object name - 它代表MBean的對象名稱
attribute name - 一個MBean屬性名稱,可選的復合數(shù)據(jù)字段名稱以點分隔
示例:
jmx["java.lang:type=Memory","HeapMemoryUsage.used"]
④ jmx的詳細文檔:https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html
(1)安裝配置tomcat
① 下載安裝tomcat,主要是用JVM
yum -y install java-1.8.0-openjdk-devel tomcat-admin-webapps tomcat-docs-webapp
② 加CATALINA_OPTS= #啟用JVM接口,默認沒有啟用
vim /etc/sysconfig/tomcat
CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.30.2 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
③ 開啟服務
systemctl start tomcat
(2)在zabbix-server 端,安裝配置java-gateway
① 安裝配置java-gateway
yum -y install zabbix-java-gateway
/etc/zabbix/zabbix_java_gateway.conf 安裝完后,會生成一個java_gateway 的配置文件
systemctl start zabbix-java-gateway.service 不用修改,直接開啟服務
② 修改server 配置,開啟java-gateway的配置
vim /etc/zabbix/zabbix_server.conf
JavaGateway=192.168.30.107 JavaGatewayPort=10052 StartJavaPollers=5 #打開5個監(jiān)控項
③ systemctl restart zabbix-server 重啟zabbix-server 服務
(3)在node2 主機上添加JMX接口,實驗模板
① 添加JMX接口
② 在node2 上連接tomcat JMX 模板
③ 隨便查看一個監(jiān)控項item
(4)自己定義一個堆內(nèi)存使用的監(jiān)控項,基于JVM接口(沒必要,使用模板就好)
(1)介紹
分布式監(jiān)控概述
proxy and node
Zabbix 的三種架構
Server-agent
Server-Node-agent
Server-Proxy-agent
監(jiān)控Zabbix
(2)配置介紹
Zabbix Proxy的配置:
server-node-agent
server-proxy-agent
a) 配置proxy主機:
(1) 安裝程序包
zabbix-proxy-mysql zabbix-get
zabbix-agent zabbix-sender
(2) 準備數(shù)據(jù)庫
創(chuàng)建、授權用戶、導入schema.sql;
(3) 修改配置文件
Server=
zabbix server主機地址;
Hostname=
當前代理服務器的名稱;在server添加proxy時,必須使用此處指定的名稱;
=需要事先確保server能解析此名稱;
DBHost=
DBName=
DBUser=
DBPassword=
ConfigFrequency=10
DataSenderFrequency=1
b) 在server端添加此Porxy
Administration --> Proxies
c) 在Server端配置通過此Proxy監(jiān)控的主機;
注意:zabbix agent端要允許zabbix proxy主機執(zhí)行數(shù)據(jù)采集操作:
實驗前準備:
① ntpdate 172.168.30.1 同步時間
② 關閉防火墻,selinux
③ 設置主機名 hostnamectl set-hostname http://zbproxy.along.com
④ vim /etc/hosts 每個機器都設置hosts,以解析主機名;DNS也行
192.168.30.107 http://server.along.com
192.168.30.7 http://node1.along.com
192.168.30.2 http://node2.along.com
192.168.30.3 http://node3.along.com http://zbproxy.along.com
(1)環(huán)境配置(4臺主機)
機器名稱
IP配置
服務角色
zabbix-server
192.168.30.107
監(jiān)控
agent-node1
192.168.30.7
被監(jiān)控端
agent-node2
192.168.30.2
被監(jiān)控端
node3
192.168.30.3
代理proxy
zabbix-server 直接監(jiān)控一臺主機node1
zabbix-server 通過代理node3 監(jiān)控node2
(2)在node3 上配置mysql
① 創(chuàng)建配置mysql
vim /etc/my.cnf.d/server.cnf
[server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M max_connections = 2000 log-bin = master-log
② systemctl start mariadb 開啟服務
③ 創(chuàng)建數(shù)據(jù)庫 和 授權用戶
MariaDB [(none)]> create database zbxproxydb character set 'utf8'; MariaDB [(none)]> grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.30.%' identified by 'zbxproxypass'; MariaDB [(none)]> flush privileges;
(3)在node3 上下載zabbix 相關的包,主要是代理proxy的包
yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender
a) 初始化數(shù)據(jù)庫
zabbix-proxy-mysql 包里帶有,導入數(shù)據(jù)的文件
cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz ./ 復制
gzip -d schema.sql.gz 解包
mysql -root -p zbxproxydb < schema.sql 導入數(shù)據(jù)
b) 查看數(shù)據(jù)已經(jīng)生成
(4)配置proxy端
① vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.30.107 #server 的IP ServerPort=10051 #server 的端口 Hostname=http://zbxproxy.along.com #主機名 ListenPort=10051 #proxy自己的監(jiān)聽端口 EnableRemoteCommands=1 #允許遠程命令 LogRemoteCommands=1 #記錄遠程命令的日志 數(shù)據(jù)的配置 DBHost=192.168.30.3 DBName=zbxproxydb DBUser=zbxproxyuser DBPassword=zbxproxypass ConfigFrequency=30 #多長時間,去服務端拖一次有自己監(jiān)控的操作配置;為了實驗更快的生效,這里設置30秒,默認3600s DataSenderFrequency=1 #每一秒向server 端發(fā)一次數(shù)據(jù),發(fā)送頻度
② systemctl start zabbix-proxy 開啟服務
(5)配置node2端,允許proxy代理監(jiān)控
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.30.107,192.168.30.3 ServerActive=192.168.30.107,192.168.30.3
systemctl restart zabbix-agent 啟動服務
(6)把代理加入監(jiān)控server,創(chuàng)建配置agent 代理
① 創(chuàng)建agent 代理
② 配置
(7)創(chuàng)建node2 主機,并采用代理監(jiān)控
設置代理成功
(8)創(chuàng)建item監(jiān)控項
① 為了實驗,隨便創(chuàng)一個監(jiān)控項 CPU Switches
② 進程里設置每秒更改
③ 成功,graph 圖形生成
https://cn.bing.com/ 搜索 zabbix share
例如:我們要實現(xiàn)監(jiān)控Nginx ,我們查找一個模板
就以這個模板為例
(1)安裝配置 nginx
① yum -y install nginx
vim /etc/nginx/nginx.conf 按照網(wǎng)頁的操作指示
location /stub_status { stub_status on; access_log off; # allow 127.0.0.1; #為了操作方便,我取消的訪問控制 # deny all; }
② 啟動服務
systemctl restart nginx
(2)下載模板所依賴的腳本
mkdir -p /srv/zabbix/libexec/
cd /srv/zabbix/libexec/
wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/nginx.sh 從網(wǎng)頁上獲取腳本
chmod +x nginx.sh 加執(zhí)行權限
(3)配置agent 的用戶參數(shù)UserParameter
cd /etc/zabbix/zabbix_agentd.d/
wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/userparameter_nginx.conf 很短,自己寫也行
(4)在windows 上下載模板,并導入這server 的模板中
wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/zbx_export_templates.xml 可以現(xiàn)在linux上下載,再sz 導出到windows上
① 導入下載的模板
② 主機node1 鏈接這個模板
③ 模板生效
vim /etc/zabbix/zabbix_agentd.conf 配置agent
EnableRemoteCommands=1 允許遠程命令 LogRemoteCommands=1 記錄遠程命令 Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=http://server.along.com
① Database:
歷史數(shù)據(jù)不要保存太長時長;
盡量讓數(shù)據(jù)緩存在數(shù)據(jù)庫服務器的內(nèi)存中;
② 觸發(fā)器表達式:減少使用聚合函數(shù) min(), max(), avg();盡量使用last(),nodata();
因為聚合函數(shù),要運算
③ 數(shù)據(jù)收集:polling較慢(減少使用SNMP/agentless/agent);盡量使用trapping(agent(active)主動監(jiān)控);
④ 數(shù)據(jù)類型:文本型數(shù)據(jù)處理速度較慢;盡量少收集類型為文本 text或string類型的數(shù)據(jù);多使用類型為numeric 數(shù)值型數(shù)據(jù) 的;
(1) 服務器組件的數(shù)量;
alerter, discoverer, escalator, http poller, hourekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...
StartPollers=60
StartPingers=10
...
StartDBSyncer=5
...
(2) 設定合理的緩存大小
CacheSize=8M
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
TrendCacheSize=4M
ValueCacheSize=4M
(3) 數(shù)據(jù)庫優(yōu)化
分表:
history_*
trends*
events*
文章來源:https://www.cnblogs.com/along21/p/8119088.html
EDA技術是在電子CAD技術基礎上發(fā)展起來的計算機軟件系統(tǒng),是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的 最新成果,進行電子產(chǎn)品的自動設計。利用EDA工具,可以將電子產(chǎn)品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程在計算機上自動處理完成。
EDA常用軟件
EDA工具層出不窮,目前進入我國并具有廣泛影響的EDA軟件有:protel、MentorPADS、OrCAD、Mentor WG、Mentor EN、allegro、EWB、PSPICE、 Synopsys等等。按主要功能或主要應用場合,大致可分為電路設 計與仿真工具、PCB設計軟件、IC設計軟件、PLD設計工具及其它EDA軟件。
電子電路設計與仿真工具
電子電路設計與仿真工具包括:
SPICE/PSPICE、EWB、Matlab、SystemView、Multisim、MMICAD等。下面簡單介紹前三個軟件。
1)SPICE:由美國加州大學推出的電路分析仿真軟件,現(xiàn)在用得較多的是PSPICE6.2,在同類產(chǎn)品中是功能最為強大的模擬和數(shù)字電路混合仿真 EDA軟件,它可以進行各種各樣的電路仿真、激勵建立、溫度與噪聲分析、模擬控制、波形輸出、數(shù)據(jù)輸出、并在同一窗口內(nèi)同時顯示模擬與數(shù)字的仿真結果。無 論對哪種器件哪些電路進行仿真,都可以得到精確的仿真結果,并可以自行建立元器件及元器件庫。
2)EWB軟件:20世紀90年代初推出 的電路仿真軟件。相對于其它EDA軟件,它是較小巧的軟件(只有16M)。但它對模數(shù)電路的混合仿真功能卻十分強大,幾乎100%地仿真出真實電路的結 果,并且它在桌面上提供了萬用表、示波器、信號發(fā)生器、掃頻儀、邏輯分析儀、數(shù)字信號發(fā)生器、邏輯轉換器和電壓表、電流表等儀器儀表。它的界面直觀,易學 易用。它的很多功能模仿了SPICE的設計,但分析功能比PSPICE稍少一些。
3)MATLAB:它的一大特性是有眾多的面向具體應用的工具箱和仿真塊,包含了完整的函數(shù)集用來對圖像信號處理、控制系統(tǒng)設計、神經(jīng)網(wǎng)絡等特殊應用進行分析和設計。它具有數(shù)據(jù)采集、報告生成和MATLAB語言編程產(chǎn)生獨立C/C++代碼等功能。
PCB設計軟件
PCB設計軟件種類很多,如Protel/AD、OrCAD、Viewlogic、Cadence PSD、Mentor公司的Mentor EN、Mentor WG以及Mentor PADS等系列。常用的PCB設計軟件還有Zuken CadStart、Winboard/Windraft/Ivex-SPICE、PCB Studio、TANGO等等。
先來說說Mentor旗下幾個常用系列工具!
Mentor公司有三個系列的PCB設計工具,分別是:
Mentor EN系列,即Mentor Board Station.
Mentor WG系列,即Mentor Expedition.
還有PADS系列,即PowerPCB.
上面講到的Mentor PADS,也就是以前的PowerPCB/PowerLogic系列,是低端的PCB軟件中最優(yōu)秀的一款,其界面友好、容易上手、功能強大而深受中小企業(yè)的青睞,在中小企業(yè)用戶占有很大的市場份額。
其他兩個系列Mentor EN系列和Mentor WG系列與Cadence Allegro一樣,都是目前最高端的PCB軟件,像中興、華為這類大型公司都會使用這些高端的設計軟件。
其中,Mentor Expedition(WG系列)是拉線最順暢的軟件,被譽為拉線之王,它的自動布線功能非常強大,布線規(guī)則設計非常專業(yè)。
Mentor EN系列是從早期UNIX系統(tǒng)移植到Windows系統(tǒng),也是最專業(yè)的PCB工具軟件,但其學習難度較大,自學的話會比較吃力。
PADS系列則相對來說比較簡單易用且上手快,設計靈活,用戶的自由度也非常高,很適合初學者及熱衷于自學的群體。
再來說說Altium公司的Protel和AD
Protel/AD也有不少高校用戶,它擁有完整的全方位電位設計系統(tǒng),包含了電原理圖繪制、模擬電路與數(shù)字電路混合信號仿真、多層印刷電路板設計(包含印刷電 路板自動布局布線),可編程邏輯器件設計、圖表生成、電路表格生成、支持宏操作等功能,并具有Client/Server(客戶/服務器體系結構,同時還 兼容一些其它設計軟件的文件格式,如ORCAD、PSPICE、EXCEL等。
最后來談談Cadence Allegro.
Cadence公司擁有Orcad/SPB/PSD等多個系列,三者都是Cadence公司基于capture和allegro的PCB設計套件,區(qū)別僅在于軟件配置。
Orcad的配置是低端產(chǎn)品,存在價格低的優(yōu)點,但是在Orcad中Allegro 的功能比較弱,只有各項基本功能而沒有constrain manager,如果需要SI或者constrain manager呢,就需要另外的增加配置了。
PSD和SPB其實是同一個東西,PSD是Allegro系統(tǒng)互連設計平臺的早期版本,后來新出的版本叫做 SPB,因為改進了設計理念,所以修改了套件包的名稱。
由此大家應該明白了,SPB是Allegro最全功能的版本。
衡量一個軟件的優(yōu)劣,其中一個很現(xiàn)實的標準就是看它的市場占有率,也就是它的普及和流行程度.Cadence Allegro現(xiàn)在幾乎成為高速板設計中實際上的工業(yè)標準,被很多大型電子通信類公司采用,因此掌握Cadence Allegro對求職有實質(zhì)的幫助;另外其學習資源也比較豐富,比較適合自學。
現(xiàn)在Cadence公司的系列產(chǎn)品有:Cadence SPB16.2, Cadence SPB16.0, Cadence SPB 15.7, Cadence SPB15.5, Cadence SPB15.2等。板級電路設計系統(tǒng)。
Cadence Allegro現(xiàn)在幾乎成為高速板設計中實際上的工業(yè)標準,其學習資源也比較豐富,比較適合自學。
曾經(jīng)有人這么評價Cadence:
“Cadence是高速板設計中實際上的工業(yè)標準。無論哪一方面都超牛。Cadence PCB Layout工具絕對一流,稍微熟悉一點后就不再想用其他工具了,布線超爽。仿真方面也是非常的牛,有自己的仿真工具,信號完整性仿真,電源完整性仿真都能做。在做pcb高速板方面牢牢占據(jù)著霸主地位。要知道這個世界上60%的電腦主板40%的手機主板可都是拿Allegro畫的。”
IC設計軟件
IC設計工具很多,其中按市場所占份額排行為Cadence、Mentor Graphics和Synopsys。
1)設計輸入工具:像Cadence的composer,viewlogic的viewdraw,硬件描述語言VHDL、Verilog HDL是主要設計語言,許多設計輸入工具都支持HDL。另外像Active—HDL和其它的設計輸入方法,包括原理和狀態(tài)機輸入方法,設計 FPGA/CPLD的工具大都可作為IC設計的輸入手段,如Xilinx、Altera等公司提供的開發(fā)工具,Modelsim FPGA等。
2)設計仿真工作:EDA工具的一個最大好處是可以驗證設計是否正確,幾乎每個公司的EDA 產(chǎn)品都有仿真工具。
Verilog—XL、NC—verilog用于Verilog仿真,Leapfrog 用于VHDL仿真,Analog Artist用于模擬電路仿真。Viewlogic的仿真器有:viewsim門級電路仿真器,speedwaveVHDL仿真器,VCS— verilog仿真器。Mentor Graphics有其子公司Model Tech 出品的VHDL和Verilog雙仿真器:Model Sim。Cadence、Synopsys用的是VSS(VHDL仿真器)。現(xiàn)在的趨勢是各大EDA公司都逐漸用HDL仿真器作為電路驗證的工具。
3)綜合工具:綜合工具可以把HDL變成門級網(wǎng)表。這方面Synopsys工具占有較大的優(yōu)勢,它的Design Compile是綜合的工業(yè)標準,它還有另外一個產(chǎn)品叫Behavior Compiler,可以提供更高級的綜合。此外,美國還出了一家軟件叫Ambit,比Synopsys的軟件更有效,可以綜合50萬門的電路,速度 更快。不過Ambit已被Cadence公司收購,為此Cadence放棄了它原來的綜合軟件Synergy。
隨著FPGA設計的規(guī)模越來越大,各EDA 公司又陸續(xù)開發(fā)了用于FPGA設計的綜合軟件,比較有名的有:Synopsys的FPGA Express,Cadence的Synplity,Mentor的Leonardo,這三家的FPGA綜合軟件占了市場的絕大部分。
4)布局和布線:在 IC設計的布局布線工具中,Cadence軟件是比較強的,它有很多產(chǎn)品,用于標準單元、門陣列已可實現(xiàn)交互布線。最有名的是Cadence spectra,它原來是用于PCB布線的,后來Cadence把它用來作IC的布線。
其主要工具有:Cell3,Silicon Ensemble—標準單元布線器;Gate Ensemble—門陣列布線器;Design Planner—布局工具。其它各EDA軟件開發(fā)公司也提供各自的布局布線工具。
5)物理驗證工具:物理驗證工具包括版圖設計工具、版圖驗證工具、版圖提取工具等等。這方面Cadence也是很強的,其Dracula、Virtuso、Vampire等物理工具有很多的使用者。
6)模擬電路仿真器:前面講的仿真器主要是針對數(shù)字電路的,對于模擬電路的仿真工具,普遍使用SPICE,這是唯一的選擇。只不過是選擇不同公司的 SPICE,像MiceoSim的PSPICE、Meta Soft的HSPICE等等。HSPICE現(xiàn)在被Avanti公司收購了。在眾多的SPICE中,最好最準的當數(shù)HSPICE,作為IC設計,它的模型最 多,仿真的精度也最高。
PLD設計工具
PLD(Programmable Logic Device)是一種由用戶根據(jù)需要而自行構造邏輯功能的數(shù)字集成電路。目前主要有兩大類型:CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它們的基本設計方法是借助于EDA軟件,用原理圖、狀態(tài)機、布爾表達式、硬件描述語言等方法,生成相應的目標文件,最后用編程器或下載電 纜,由目標器件實現(xiàn)。生產(chǎn)PLD的廠家很多,但最有代表性的PLD廠家為ALTERA、Xilinx和Lattice公司。
PLD的開發(fā)工具一般由器件生產(chǎn)廠家提供,但隨著器件規(guī)模的不斷增加,軟件的復雜性也隨之提高,目前由專門的軟件公司與器件生產(chǎn)廠家合作,推出功能強大的設計軟件。
PLD(可 編程邏輯器件)是一種可以完全替代74系列及GAL、PLA的新型電路,只要有數(shù)字電路基礎,會使用計算機,就可以進行PLD的開發(fā)。PLD的在線編程能力和強大的開發(fā)軟件,使工程師可以在幾天,甚至幾分鐘內(nèi)就可完成以往幾周才能完成的工作,并可將數(shù)百萬門的復雜設計集成在一顆芯片內(nèi)。PLD技術在發(fā)達國家已成為電子工程師必備的技術。
PLD生產(chǎn)及開發(fā)工具:
1)ALTERA—20世紀90年代以后發(fā)展很快,后被英特爾收購。主要產(chǎn)品有:MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。其開發(fā)工具—MAX+PLUS II是較成功的PLD開發(fā)平臺,最新又推出了Quartus II開發(fā)軟件。Altera公司提供較多形式的設計輸入手段,綁定第三方VHDL綜合工具,如:綜合軟件FPGA Express、Leonard Spectrum,仿真軟件ModelSim。
2)XILINX—FPGA的發(fā)明者。產(chǎn)品種類較全,主要有:XC9500/4000、Coolrunner(XPLA3)、Spartan、Vertex等系列,其最大的 Vertex—II Pro器件已達到800萬門。開發(fā)軟件為Foundation和ISE。通常來說,在歐洲用Xilinx的人多,在亞太地區(qū)用ALTERA的人多,在美國則是平分秋色。全球PLD/FPGA產(chǎn)品60%以上是由Altera和Xilinx提供的。可以講Altera和Xilinx共同決定了PLD 技術的發(fā)展方向。
3)Lattice—Vantis Lattice是ISP(In—System Programmability)技術的發(fā)明者,ISP技術極大地促進了PLD產(chǎn)品的發(fā)展,與ALTERA和XILINX相比,其開發(fā)工具比Altera 和Xilinx略遜一籌。中小規(guī)模PLD比較有特色,大規(guī)模PLD的競爭力還不夠強(Lattice沒有基于查找表技術的大規(guī)模FPGA),1999年推出可編程模擬器件,1999年收購Vantis(原AMD子公司),成為第三大可編程邏輯器件供應商。2001年12月收購Agere公司(原 Lucent微電子部)的FPGA部門。主要產(chǎn)品有ispLSI2000/5000/8000,MACH4/5。
4)ACTEL—反熔絲(一次性燒寫)PLD的領導者,由于反熔絲PLD抗輻射、耐高低溫、功耗低、速度快,所以在軍品和宇航級上有較大優(yōu)勢。ALTERA和XILINX則一般不涉足軍品和宇航級市場。
5)Quicklogic—專業(yè)PLD/FPGA公司,以一次性反熔絲工藝為主,在中國地區(qū)銷售量不大。
6)Lucent—主要特點是有不少用于通訊領域的專用IP核,但PLD/FPGA不是Lucent的主要業(yè)務,在中國地區(qū)使用的人很少。
7)ATMEL—已被Microchip收購,中小規(guī)模PLD做得不錯。ATMEL早年也做了一些與Altera和Xilinx兼容的片子,但在品質(zhì)上與原廠家還是有一些差距,在高可靠性產(chǎn)品中使用較少,多用在低端產(chǎn)品上。
8)Clear Logic—生產(chǎn)與一些著名PLD/FPGA大公司兼容的芯片,這種芯片可將用戶的設計一次性固化,不可編程,批量生產(chǎn)時的成本較低。
9)WSI—生產(chǎn)PSD(單片機可編程外圍芯片)產(chǎn)品。這是一種特殊的PLD,如最新的PSD8xx、PSD9xx集成了PLD、EPROM、Flash,并支持ISP(在線編程),集成度高,主要用于配合單片機工作。
其它EDA軟件
1)VHDL語言超高速集成電路硬件描述語言(VHSIC Hardware DeseriptionLanguagt,簡稱VHDL),是IEEE的一項標準設計語言。它源于美國國防部提出的超高速集成電路(Very High Speed Integrated Circuit,簡稱VHSIC)計劃,是ASIC設計和PLD設計的一種主要輸入工具。
2)Veriolg HDL 是Verilog公司推出的硬件描述語言,在ASIC設計方面與VHDL語言平分秋色。
3)其它EDA軟件如專門用于微波電路設計和電力載波工具、PCB制作和工藝流程控制等領域的工具,在此就不作介紹了。
在文章結束即將結束前,再介紹一下Saber軟件!
Saber 是混合信號、混合技術設計與驗證工具,在電力電子、數(shù)模混合仿真、汽車電子及機電一體化領域得到廣泛應用。Saber軟件在技術、理論及新產(chǎn)品開發(fā)方面保 持明顯優(yōu)勢,其大量的器件模型、先進的仿真技術和精確的建模工具為客戶提供了全面的系統(tǒng)解決方案,在并在技術方面不斷地完善創(chuàng)新。
Saber 的建模工具運用廣泛,有可用于電源、機電、磁、熱、負載等各種建模工具。Saber也有獨特的設計與驗證方法:“自頂向下”(Top- Down Design)設計與“自下而上”(Bottom-Up)仿真驗證方法。在作了建模方法演示、混合技術設計方法演示、線纜設計(從電氣設計到線纜生產(chǎn))流 程演示后,Johnson演示了單故障模式仿真調(diào)試;關鍵參數(shù)與非關鍵參數(shù)的多故障模式仿真調(diào)試,顯示了Saber仿真器Testify的強大功能。
Saber的典型案例是航空器領域的系統(tǒng)設計,其整個設計過程包含了機械技術、電子技術、液壓技術、燃油系統(tǒng)、娛樂系統(tǒng)、雷達無線技術等復雜的混合技術設計與仿真。從航空器、輪船、汽車到消費電子、電源設計都可以通過Saber來完成。
在開關電源設計中,如果有變壓器,saber仿真是最好的,變壓器模型比較全。saber仿真現(xiàn)在主要問題就是沒有教材。不方便學習。