https://collectd.org/
Collectd是一個小型守護程序,可定期收集系統信息,並提供以多種方式存儲和監視值的機制。
Collectd能夠收集以下數據:
Apache Apache Server利用率:傳輸的字節數,已處理的請求數和詳細的記分牌統計信息
APCUPS APC UPS守護程序:UPS充電,負載,輸入/輸出/電池電壓等。
Apple_sensors傳感器在運行Mac OS X / Darwin的Mac中:溫度,風扇速度和電壓傳感器。
Aquaero在Aquaero 5水冷卻板上由Aquacomputer製造的各種傳感器。
關於Ascent的上升統計數據,這是遊戲“魔獸世界”的免費服務器。
晴雨表讀取絕對氣壓,氣壓降低至海平面和溫度。支持的傳感器是Freescale的MPL115A2和MPL3115,BOSCH的BMP085。
電池電池電量, - ACPI和基於PMU的筆記本電池電池電量和電壓。
從綁定9.5、9,6及以後的statistics-channel接口綁定名稱服務器和解析器統計信息。
來自BuddyInfo文件的BuddyInfo統計信息有關內存碎片。
功能平台功能從硬件子系統解碼,例如使用DMIDECODE的SMBIO。 https://www.nongnu.org/dmidecode/
CEPH分佈式存儲系統的CEPH統計數據。
CGROUPS在Linux下的過程組的CPU會計信息。
Chrony Chrony守護程序統計:本地時鐘漂移,對同行的抵消等。
基於連接事件的接口狀態。
NF_ConnTrack條目的連接號碼。
上下文開關的上下文開關數量由操作系統完成。
CPU CPU利用率:在系統,用戶,尼斯,空閒和相關狀態中花費的時間。
CPUFREQ CPU頻率(對於具有速度步驟或類似技術的筆記本電腦)
CPUSLEEP CPU睡眠:懸掛時間花費的時間(用於自動懸掛的移動設備)
使用正則表達式從網站上進行curl解析統計。
curl_json通過curl檢索JSON數據,並根據用戶配置對其進行解析。
curl_xml通過捲曲檢索XML數據,並根據用戶配置對其進行解析。
DBI在各種數據庫上執行SQL語句,並解釋返回的數據。
DCPMM收集Intel Optane DC證券記憶(DCPMM)的性能和健康統計數據。
DF登錄點的用法(基本上是值df(1)傳遞)
磁盤磁盤利用率:扇區讀取/書面,讀/寫操作的數量,IO操作完成的平均時間。
DNS DNS流量:轉移的查詢類型,響應代碼,OpCodes和流量/八位位。
DPDKSTAT收集DPDK接口統計。有關詳細的構建說明,請參見Docs/build.dpdkstat.md。
該插件應與啟用編譯器防禦措施一起編譯,例如-fstack -Protector。
dpdk_telemetry收集DPDK接口,應用程序和全局統計信息。該插件可以用作DPDKSTAT插件的替代品。
該插件取決於DPDK 19.08版本,必須與DPDK應用程序一起使用。
此外,此插件對Jansson庫有依賴性。
DRBD收集單個DRBD資源統計。
電子郵件電子郵件統計信息:計數,流量,垃圾郵件分數和支票。請參閱Collectd-Email(5)。
系統可用的熵量。
史詩從史詩般的消息總線收集數據。 https://epics-controls.org
ETHSTAT網絡接口卡統計信息。
由自定義程序或腳本收集的Exec值。請參閱Collectd-exec(5)。
FHCOUNT文件處理統計信息。
FileCount計數目錄中的文件數。
FSCACHE LINUX文件系統基於基於的緩存框架統計。
Gmond從神經節實例中獲得多播流量。
GPS通過GPSD監視GPS相關數據。
GPU_NVIDIA監控NVIDIA GPU統計信息可通過NVML獲得。
使用HDDTEMPD的HDDTEMP硬盤溫度。
大型頁面報告了用過的和免費的大量龐大的數量。有關大量頁面的更多信息,請參見:https://www.kernel.org/doc/documentation/vm/hugetlbpage.txt。
該插件應與啟用編譯器防禦措施一起編譯,例如-fstack -Protector。
每個IB設備上每個端口的Infiniband屬性和計數器。
intel_pmu intel_pmu插件讀取Linux內核perf接口提供的性能計數器。該插件使用JEVENTS庫將命名的事件解析為PERF EVENT和訪問PERF接口。
Intel_rdt Intel_rdt插件收集了由Intel Resource Direction Technology(Intel(r)RDT)的監視功能提供的信息,例如高速緩存監視技術(CMT),內存帶寬監視(MBM)。這些功能提供了有關共享資源的利用的信息,例如最後一個級別的緩存佔用,本地存儲器帶寬使用情況,遠程存儲器帶寬使用情況,每個時鐘的說明。 https://01.org/packet-processing/cache-monitoring-technology-memory-bandwidth-monitoring-cache-alocation-cache-alocation-technology-code-code-code and-data
接口接口流量:每個接口的章魚,數據包和錯誤的數量。
IPC IPC計數器:使用的信號量,共享內存中的分配段數等等。
IPMI IPMI(智能平台管理接口)傳感器信息。
IPSTATS IPv4和IPv6;傳入,外向,轉發的櫃檯。僅FreeBSD。
Iptables Iptables的計數器:由某些iPtables規則匹配的字節數。
IPVS IPVS連接統計信息(每個服務和目的地的連接數,八位位和數據包數)。請參閱http://www.linuxvirtualserver.org/software/index.html。
IRQ IRQ計數器:發生某些中斷的頻率。
Java集成了Java虛擬機(JVM),以在Java字節碼中執行插件。有關詳細的構建說明,請參見Docs/build.java.md。
在過去的1、5和15分鐘內,負載系統負載的平均值。
LPAR詳細介紹了IBM電源處理器中內置的“邏輯分區”虛擬化技術的CPU統計。
lua lua插件將Lua解釋器實現為Collectd。這使得可以在LUA中編寫插件,該插件由Collectd執行,而無需在每個間隔中啟動重型解釋器。有關詳細信息,請參見Collectd-Lua(5)。
Madwifi查詢來自使用Atheros芯片組和Madwifi驅動程序的無線LAN適配器和接口的詳細用法統計信息。
MBMON主板傳感器:使用MBMON(1)溫度,風扇速度和電壓信息。
McElog監視器檢查異常(由硬件檢測到的硬件錯誤並報告給軟件)由McElog報告,並在檢測到機器檢查異常時生成適當的通知。
MD Linux軟件框架設備信息(活動,失敗,備用和缺失磁盤的數量)。
Memcachec查詢和解析Memcache守護程序(Memcached)的數據。
模因分佈式緩存系統的後備統計數據。 http://www.danga.com/memcached/
內存內存利用率:通過運行過程,頁面緩存,緩衝緩存和免費的內存存儲器。
麥克風從英特爾收集許多集成核心(MIC)CPU的CPU使用,內存使用,溫度和功耗。
MMC讀取EMMC 5.0+設備報告的壽命估計,以及一些更詳細的健康指標,例如BAD BLOCK和ERASE計數或功率週期,用於Micron和Sandisk Emmc以及一些瑞士swissbit MMC卡(ManFID = 0x5d oemid = 0x5342)。
Modbus從Modbus/啟用的設備中讀取值。支持來自多個“奴隸”的讀取值,因此可以使用網關設備。
由串行多組提供的萬用表信息,例如Metex M-4650CR 。
MySQL Mariadb和MySQL Server統計信息:發出的命令,觸發處理程序,線程使用情況,查詢緩存利用率以及發送和接收的流量/八十位。
NetApp插件使用NetApp提供的“管理ONTAP” SDK從NetApp存儲系統查詢性能值。
Netlink非常詳細的Linux網絡接口和路由統計。您可以獲取有關接口,QDISC,類的(詳細)信息,如果您可以使用過濾器,則可以獲取(如果可以使用它)。
網絡接收其他主機收集的值。大型設置將希望在一台專用的機器上收集數據,這是為此選擇的插件。
NFS NFS程序:稱呼哪個NFS命令被稱為頻率。
NGINX從nginx (Speak:Engine X),HTTP和Mail Server/Proxy收集統計信息。
NTPD NTP守護程序統計信息:本地時鐘漂移,偏移到同行等。
NUMA有關非均勻內存訪問(NUMA)的信息。
螺母網絡UPS工具:UPS電流,電壓,電源,充電,利用率,溫度等。請參閱UPSD(8)。
OLSRD查詢從“優化的鏈接狀態路由”守護程序中查詢路由信息。
Onewire(實驗!)使用OWFS項目的OWCAPU庫讀取OneWire傳感器。請在Collectd.conf(5)中閱讀此插件為什麼進行實驗。
OpenLDAP讀取監視信息來自OpenLDAP的CN = Monitor Subtree。
OpenVPN-status.log中每個客戶端的OpenVPN RX和TX(狀態轉換2)。 http://openvpn.net/index.php/documentation/howto.html
Oracle查詢數據來自Oracle數據庫。
OVS_EVENTS插件監視開放vswitch(OVS)連接的接口的鏈接狀態,將值分配給收集的值並在OVS數據庫中發生鏈接狀態更改時發送通知。它需要安裝YAJL庫。用於安裝和設置開放VSWITCH的詳細說明,請參閱OVS文檔。 http://openvswitch.org/support/dist-docs/install.rst.html
OVS_STATS插件收集了OVS連接的橋樑和接口的統計信息。它需要安裝YAJL庫。用於安裝和設置開放VSWITCH的詳細說明,請參閱OVS文檔。 http://openvswitch.org/support/dist-docs/install.rst.html
PCIE_ERRORS讀取PCI Express設備狀態和AER擴展功能的錯誤。 https://www.design-reuse.com/articles/38374/pcie-error-logging-and-handling-on-a-typical-soc.html
Perl Perl插件將Perl-Interpreter實現在Collectd中。您可以在Perl中編寫自己的插件,並使用此API返回任意值。參見Collectd-Perl(5)。
BSD的數據包濾鏡“ PF”的PF查詢統計信息。
Pinba從Pinba接收並調度正時值,PINBA是PHP的分析擴展。
PING網絡延遲:到達默認網關或另一個給定主機的時間。
PostgreSQL PostgreSQL數據庫統計信息:活動服務器連接,事務號,塊IO,表行操作。
PowerDNS PowerDNS名稱服務器統計信息。
過程計數:跑步,睡覺,殭屍,...流程的數量。
通過NetLink聆聽過程的啟動和退出過程。
協議計算網絡協議的各個方面,例如IP,TCP,UDP等。
Python Python插件將Python解釋器實現到Collectd中。這使得可以在Python中編寫插件,該插件由Collectd執行,而無需在每個間隔中啟動重型解釋器。有關詳細信息,請參見Collectd-Python(5)。
RAS RAS插件收集併計算Rasdaemon提供的錯誤
REDIS REDIS插件從Redis服務器收集信息,包括:正常時間,二手內存,總連接等。
Routeros查詢接口和Routeros的無線註冊統計。
rrdcached rrdtool緩存守護程序(rrdcached)統計。
傳感器系統傳感器,使用LM_SENSERS訪問:電壓,溫度和風扇旋轉速度。
串行接口的串行RX和TX。僅Linux;需要根特權。
Sigrok使用Libsigrok作為後端,允許任何Sigrok支持的設備都可以進行收集的測量。這包括多項式,聲音儀表,溫度計等等。
Slurm使用libslurm以及內部健康統計數據收集每段節點和工作狀態信息。
智能收集智能統計數據,特別是加載週期數,溫度和不良部門。
SNMP從SNMP(簡單網絡管理協議)啟用的網絡設備(例如開關,路由器,溫度計,機架監視服務器等)讀取值。請參閱CollectD-SNMP(5)。
STATSD充當StatsD服務器,從StatsD客戶端通過網絡發送的讀取值,併計算出這些值中的費率和其他聚合。
Sysevent聆聽RSYSLOG事件並提交匹配的值。
交換頁面交換在硬盤上或操作系統所謂的swap 。
表解析表狀的結構化文件。
尾巴以(尾部)日誌文件為單位,按行解析並提交匹配的值。
tail_csv以CSV格式遵循(TAILS)文件,解析每行並提交提取的值。
磁帶字節和操作在磁帶設備上讀取和寫入。僅Solaris。
TCPCONNS的TCP連接數量到特定的本地和遠程端口。
TeamSpeak2 TeamSpeak2服務器統計信息。
TED插件以讀取“能量偵探”(TED)的值。
熱線ACPI熱區信息。
Tokyotyrant從運行的東京暴君服務器中讀取記錄和文件大小的數量。
TurboStat在現代具有Intel渦輪功能的處理器上讀取CPU頻率和C狀態居留權。
UBI讀取不良物理擦除的計數和當前UBI體積上的最大擦除計數。
正常運行系統正常運行時間統計。
用戶目前已登錄。
HTTP加速器Varnish的各種統計數據。
Virt CPU,內存,磁盤和網絡I/O來自虛擬機的統計信息。
VMEM虛擬內存統計信息,例如頁面ins/-outs的數量或pageFaults的數量。
vserver系統資源由Linux Vservers使用。請參閱http://linux-vserver.org/。
無線卡的無線鏈接質量。僅Linux。
XENCPU XEN管理程序CPU統計數據。
XMMS比特率和音樂的頻率播放了XMM。
ZFS的ZFS_ARC統計信息,用於ZFS的“自適應替換緩存”(ARC)。
區域測量Solaris 10及更高的每個容器(區域)的CPU負載百分比
Zookeeper從Zookeeper的MNTR命令中讀取數據。
可以通過以下插件編寫或發送到各個目的地的輸出:
AMQP將JSON編碼的數據發送到高級消息排隊協議(AMQP)0.9.1服務器,例如RabbitMQ。
AMQP1將JSON編碼的數據發送到高級消息排隊協議(AMQP)1.0服務器,例如QPID調度路由器或Apache Artemis Broker。
CSV寫入逗號分隔值(CSV)文件。這需要大量的磁盤空間,但非常便攜,並且可以通過幾乎每個可以分析任何內容的程序進行分析。甚至微軟的Excel。
GRPC使用GRPC框架通過網絡發送和接收值。
lua可以使用LUA插件在LUA中實現寫插件。有關詳細信息,請參見Collectd-Lua(5)。
MQTT發布並訂閱了MQTT主題。
網絡將數據發送到遠程主機以某種方式保存數據。這對於大型設置很有用,其中應由專用機器保存數據。
Perl當然也將值也傳播到用Perl編寫的插件,因此您可以使用我們不敢想的插件來輕鬆地做奇怪的事情;)參見Collectd-Perl(5)。
Python可以使用Python插件在Python中實現寫插件。有關詳細信息,請參見Collectd-Python(5)。
使用rrdtool caching守護程序(rrdcached)將rrdcached輸出到圓形旋轉數據庫(RRD)文件 - 請參見rrdcached(1) 。該守護程序提供了由rrdtool插件完成的緩存的一般實現。
使用Librrd的RRDTOOL輸出到圓形機蛋白數據庫(RRD)文件。參見RRDTOOL(1)。這可能是此類值最受歡迎的目的地。由於對RRD文件的更新有些昂貴,因此該插件可以緩存到文件中並立即編寫大量更新,從而減少了系統的加載很多。
SNMP_AGENT接收並處理SNMP Master Agent的查詢,並返回讀取插件收集的數據。處理僅針對配置文件中指定的OID請求。要處理SNMP查詢,該插件從Collectd獲取數據,並將請求的值從Collectd的內部格式轉換為SNMP格式。
Unixsock可以在需要時從Unixsock插件中查詢值。請閱讀collectd-unixsock(5),以獲取有關如何完成的說明。
write_graphite將數據發送到使用TCP或UDP的石墨存儲層的碳。可以配置它以避免日誌記錄發送錯誤(在使用UDP時尤其有用)。
write_http使用HTTP POST請求將Collectd收集的值發送到Web服務器。傳輸數據的形式是由EXEC插件理解的,或者在JSON中格式化。
write_kafka將數據發送到分佈式隊列Apache Kafka。
write_log將數據寫入日誌
write_mongodb將數據發送到NOSQL數據庫MongoDB。
使用嵌入式HTTP服務器,與Prometheus的CollectD_Exporter兼容的write_prometheus發布值。
write_redis將值發送到redis鍵值數據庫服務器。
write_riemann將數據發送到Riemann,這是一個流處理和監視系統。
write_sensu通過Sensu客戶端本地TCP插座將數據發送到SENSU,即流處理和監視系統。
write_syslog使用TCP以syslog格式發送數據,其中該消息包含人類或JSON格式的度量。
write_tsdb發送數據opentsDB,可擴展的無主管,無共享狀態時間序列數據庫。
作為集合中的所有內容,日誌記錄都是由插件提供的。以下插件使我們了解正在發生的事情:
logFile將日誌消息寫入文件或stdout/stderr。
Perl日誌消息也被傳播到Perl編寫的插件。參見Collectd-Perl(5)。
Python可以使用Python插件在Python中實現日誌插件。有關詳細信息,請參見Collectd-Python(5)。
Syslog記錄到標準的Unix日誌記錄機構Syslog。
log_logstash將格式為logstash JSON事件的日誌消息寫入。
可以通過以下插件來處理通知:
NOTIFY_DESKTOP將桌面通知發送到桌面通知規範中定義的通知守護程序。要實際顯示通知,需要通知daemon。請參閱http://www.galago-project.org/specs/notification/。
Notify_email將帶有通知消息的電子郵件發送給已配置的收件人。
notify_nagios將通知作為被動檢查結果提交到本地的Nagios實例。
執行執行程序或腳本以處理通知。請參閱Collectd-exec(5)。
LogFile將通知消息寫入文件或Stdout/stderr。
網絡將通知發送到遠程主機以某種方式處理它。
Perl通知也傳播到用Perl編寫的插件。參見Collectd-Perl(5)。
Python可以使用Python插件在Python中實現通知插件。有關詳細信息,請參見Collectd-Python(5)。
可以使用“過濾鏈”基礎結構和“匹配”和“目標”來控制價值處理。可用以下插件:
Match_empty_counter匹配計數器值當前為零。
使用主機名的哈希函數match_hashed匹配值。
Match_regex根據正則表達式通過其標識符匹配值。
Match_timediff與無效的時間戳匹配值。
match_value通過其數據源的值選擇值。
target_notification創建並派遣通知。
target_replace使用正則表達式替換標識符的零件。
target_scale量表(乘法)值以任意值。
target_set集(覆蓋)標識符的整個部分。
其他插件:
聚合根據模式或正則表達式選擇多個值列表,並從其中創建新的匯總值列表。
閾值對配置的閾值進行檢查值,如果值超出界限,則會創建通知。有關詳細信息,請參見Collectd-Threshold(5)。
UUID將主機名設置為唯一標識符。這是針對每個客戶端可以遷移到另一個物理主機的設置,可能會在過程中更改一個或多個名稱。
性能:由於Collectd是作為守護程序運行的,因此不會花費太多時間一次又一次地開始。除EXEC插件外,沒有任何進程。輸出插件(例如RRDTool和網絡插件)中的緩存確保您的資源有效地使用。另外,由於收集的多線程進行了編程,因此它受益於超線程和多層處理器,並確保如果只有一個插件等待io操作完成,請確保守護程序不會空閒。
設置後,幾乎不需要任何維護。設置盡可能容易,對於大多數用戶來說,默認值應該可以。
Collectd的配置文件可在sysconfdir/collectd.conf上找到。運行collectd -h以獲取內置默認值列表。有關選項列表和語法描述,請參見collectd.conf(5) 。
加載csv或rrdtool插件後,它們將將值寫入文件。這些文件的通常位置是在/var/lib/collectd之下。
當使用某些插件時,CollectD需要作為用戶根運行,因為只有root才能做某些事情,例如ping其他主機所需的craft icmp軟件包。收集不應安裝setuid root,因為它可用於覆蓋有價值的文件!
示例腳本生成圖形屬於源contrib/ ,或在大多數發行版中的/usr/share/doc/collectd附近的某個地方。請注意,這些腳本是您自己實驗的起點。其中一些需要RRDs PERL模塊。 (在debian上的librrds-perl )如果您寫了一個更複雜的解決方案,請與我們分享。
自動創建的RRD文件的RRA取決於給出的step和heartbeat設置。如果更改這些設置,則可能需要重新創建文件,然後丟失所有數據。在更改值並徹底閱讀rrdtool(1)時,請注意這一點。
如果您使用的是dns插件, chkrootkit(1)將報告作為數據包collectd ( <iface>: PACKET SNIFFER(/usr/sbin/collectd[<pid>]) )。該插件捕獲了端口53上的所有UDP數據包,以分析DNS流量。在這種情況下,收集是一個合法的嗅探者,該報告應被視為假陽性。但是,您可能想檢查一下這確實是收集的,而不是其他非法的嗅探器。
要從源中收集收集,您將需要:
通常的嫌疑人:C編譯器,鏈接器,預處理器,製造,...
CollectD利用了一些常見的C99功能,例如復合文字和混合聲明,因此需要C99兼容的編譯器。
在Debian和Ubuntu上,“ Build-Nectend”軟件包應吸引所有必要的內容。
POSIX-THEAREREXS(PTHREAD)實現。由於收集某些統計數據很慢(網絡連接,慢速設備等)收集是並行的。 POSIX線程接口正在使用,應在各種實現中找到所有平台。
從GIT存儲庫中構建時,需要Flex(Tokenizer)和Bison(Parser Generator)。釋放TARBALL包括生成的文件 - 在這種情況下,您不需要這些軟件包。
aquaero插件使用的Aerotools-NG(可選)。當前, aerotools-ng工具包使用的libaquaero5庫並未編譯為共享對象,也不包含安裝例程。因此,您需要將Collectd的配置指向aerotools-ng項目的源目錄。 https://github.com/lynix/aerotools-ng
corefoundation.framework和iokit.framework(可選),尤其是在darwin上編譯和apple_sensors插件。 http://developer.apple.com/corefoundation/
gpu_nvidia插件使用的CUDA(可選)https://developer.nvidia.com/cuda-downloads
smart插件使用的libatasmart(可選)。 http://git.0pointer.de/?p=libatasmart.git
libcap(可選) turbostat插件可以選擇構建Linux功能支持,從而避免了完全的特權要求(又稱作為根運行)以讀取值。 http://sites.google.com/site/loullouscapable/
oracle插件使用的libclntsh(可選)。
redis插件使用的libhiredis(可選)。請注意,您需要0.10.0版本或更高版本。 https://github.com/redis/hiredis
libcurl(可選)如果要使用apache , ascent , bind , curl , curl_json , curl_xml , nginx或write_http插件。 http://curl.haxx.se/
dbi插件使用的LIBDBI(可選)連接到各種數據庫。 http://libdbi.sourceforge.net/
notify_email插件的libesmtp(可選)。 http://www.stafford.uklinux.net/libesmtp/
gmond插件使用的Libganglia(可選)處理從神經節接收的數據。 http://ganglia.info/
grpc插件使用的LIBGRPC(可選)。 GRPC需要一個支持C ++ 11標準的C ++編譯器。 https://grpc.io/
network插件用於加密和身份驗證的Libgcrypt(可選)。 http://www.gnupg.org/
gps插件使用的LIBGPS(可選)。 http://developer.berlios.de/projects/gpsd/
libi2c-dev(可選)用於插件barometer ,僅提供用於用戶空間I2C開發的i2c-dev.h頭文件。
用於查詢iPtables計數器的libiptc(可選)。 http://netfilter.org/
Libjansson(可選)解析JSON數據。這用於capabilities和dpdk_telemetry插件。 http://www.digip.org/jansson/
libjevents(可選)jevents庫由intel_pmu插件使用來訪問Linux內核perf接口。注意:應使用-fPIC標誌構建庫,以與intel_pmu正確共享對象鏈接。 https://github.com/andikleen/pmu-tools
封裝Java Virtual Machine(JVM)的libjvm(可選)庫。 java插件使用此庫來執行Java字節碼。有關詳細的構建說明,請參見Docs/build.java.md。 http://openjdk.java.net/(等)
openldap插件使用的Libldap(可選)。 http://www.openldap.org/
lua插件使用的Liblua(可選)。目前,LUA 5.1及以後得到了支持。 https://www.lua.org/
memcachec插件使用的libmemcached(可選)連接到memcache守護程序。 http://tangent.org/552/libmemcached.html
write_prometheus插件使用的libmicrohttpd(可選)運行HTTP守護程序。 http://www.gnu.org/software/libmicrohttpd/
netlink插件使用的LIBMNL(可選)。 http://www.netfilter.org/projects/libmnl/
modbus插件使用的Libmodbus(可選)與Modbus/TCP設備通信。 modbus插件可與庫的2.0.3版一起使用 - 由於頻繁的API,其他版本可能會或可能不會乾淨地進行編譯。 http://www.libmodbus.org/
mysql插件毫不奇怪地使用了libmysqlclient(可選)。 http://dev.mysql.com/
netapp插件所需的libnetapp(可選)。該庫是NetApp發布的“管理ONTAP SDK”的一部分。
snmp和snmp_agent插件的libnetsnmp(可選)。 http://www.net-snmp.org/
snmp_agent插件所需的libnetsnmpagent(可選)。 http://www.net-snmp.org/
notify_desktop插件的libnotify(可選)。 http://www.galago-project.org/
ipmi插件使用的libopenipmi(可選)證明了IPMI設備。 http://openipmi.sourceforge.net/
ping插件使用的LIBOPING(可選)發送和接收ICMP數據包。 http://octo.it/liboping/
onewire插件使用的Libowcapi(可選)用於從Onewire傳感器(或Owserver(1)守護程序)讀取值。 http://www.owfs.org/
LIBPCAP(可選)用於dns插件捕獲數據包。 http://www.tcpdump.org/
各種插件使用的Libperfstat(可選)來收集AIX下的統計信息。
perl插件明顯使用了libperl(可選)。必須在ITHREAD支持(Perl 5.6.0中引入)中編譯該庫。 http://www.perl.org/
dcpmm插件使用的libpmwapi(可選)。庫github:https://github.com/intel/intel/intel-pmwatch遵循DCPMM插件提到的PMWATCH構建指令,並使用安裝路徑在此處解決依賴關係。
libpq(可選) postgresql插件使用的PostgreSQL C客戶庫庫。 http://www.postgresql.org/
LIBPQOS(可選) intel_rdt插件使用的Intel(R)資源總監技術的PQOS庫。 https://github.com/01org/intel-cmt-cat
libprotobuf, grpc插件使用的Protoc 3.0+(可選)來生成服務存根和代碼,以處理Collectd的基於ProtoBuf的網絡協議的網絡數據包。 https://developers.google.com/protocol-buffers/
pinba插件使用的LibProtobuf-C,Protoc-C(可選)(可選)為Pinba PHP擴展程序發送的網絡數據包生成解析器。 http://code.google.com/p/protobuf-c/
python插件使用的Libpython(可選)。目前,支持Python 2.6及以後的Python 3。 http://www.python.org/
例如, amqp1插件用於AMQP 1.0連接的LibqPID-Proton(可選),例如QDROUTORD。 http://qpid.apache.org/
amqp插件用於AMQP 0.9.1連接,例如,liblabbitmq(可選;也稱為“ RabbitMQ-C”),例如與RabbitMQ。 http://hg.rabbitmq.com/rabbitmq-c/
write_kafka插件使用的librdkafka(可選;也稱為“ rdkafka”)用於生成消息並將其發送到Kafka Brok。 https://github.com/edenhill/librdkafka
routeros插件使用的Librouteros(可選)連接到運行Routeros的設備。 http://octo.it/librouteros/
rrdtool和rrdcached插件使用的librrd(可選)。後者需要RRDTool客戶端支持,並在RRDTOOL版本1.3之後添加。已知版本1.0、1.2和1.3可與rrdtool插件一起使用。 http://oss.oetiker.ch/rrdtool/
librt,libsocket,libkstat,libdevinfo(可選)提供系統功能的各種標準Solaris庫。 http://developers.sun.com/solaris/
libsensors(可選)可從lm_sensors讀取,請參見sensors插件。 http://www.lm-sensors.org/
sigrok插件使用的Libsigrok(可選)。此外, libsigrok在libusb , libftdi和libudev上取決於glib , libzip和(取決於啟用駕駛員)。
slurm插件使用的libslurm(可選)。 https://slurm.schedmd.com/
ras插件使用的libsqlite3(可選)。 https://sqlite.org/
LIBSTATGRAB(可選)由各種插件用於收集Linux和/或Solaris以外的系統的統計信息。 http://www.i-scream.org/libstatgrab/
tokyotyrant插件使用的libtokyotyrant(可選)。 http://1978th.net/tokyotyrant/
libupsclient/nut(可選),用於查詢螺母upsd的nut插件。 http://networkupstools.org/
libvirt(可選)從虛擬機收集統計。 http://libvirt.org/
libxml2(可選)分析XML數據。這對於ascent , bind , curl_xml和virt插件所需。 http://xmlsoft.org/
xencpu插件使用的Libxen(可選)。 http://xenbits.xensource.com/
libxmms(可選)http://www.xmms.org/
Libyajl(可選)解析JSON數據。這是ceph , curl_json , ovs_events , ovs_stats和log_logstash插件所需的。 http://github.com/lloyd/yajl
libvarnish(可選)從清漆實例中獲取統計信息。這是varnish插件所需的。 http://varnish-cache.org
riemann-c-client(可選) write_riemann插件。 https://github.com/algernon/riemann-c-client
要配置,使用默認設置./configure && make && make install make && make install 。 For a complete list of configure options and their description, run ./configure --help .
By default, the configure script will check for all build dependencies and disable all plugins whose requirements cannot be fulfilled (any other plugin will be enabled). To enable a plugin, install missing dependencies (see section Prerequisites above) and rerun configure . If you specify the --enable-<plugin> configure option, the script will fail if the depen- dencies for the specified plugin are not met. In that case you can force the plugin to be built using the --enable-<plugin>=force configure option. This will most likely fail though unless you're working in a very unusual setup and you really know what you're doing. If you specify the --disable-<plugin> configure option, the plugin will not be built. If you specify the --enable-all-plugins or --disable-all-plugins configure options, all plugins will be enabled or disabled respectively by default. Explicitly enabling or disabling a plugin overwrites the default for the specified plugin. These options are meant for package maintainers and should not be used in everyday situations.
By default, collectd will be installed into /opt/collectd . You can adjust this setting by specifying the --prefix configure option - see INSTALL for details. If you pass DESTDIR=<path> to make install , <path> will be prefixed to all installation directories. This might be useful when creating packages for collectd.
Collectd ships with a build.sh script to generate the configure script shipped with releases.
To generate the configure script, you'll need the following dependencies:
The build.sh script takes no arguments.
Collectd can be built on Windows using Cygwin, and the result is a binary that runs natively on Windows. That is, Cygwin is only needed for building, not running, collectd.
You will need to install the following Cygwin packages:
To build, just run the build.sh script in your Cygwin terminal. By default, it installs to "C:/Program Files/collectd". You can change the location by setting the INSTALL_DIR variable:
$ export INSTALL_DIR="C:/some/other/install/directory" $ ./build.sh
或者:
$ INSTALL_DIR="C:/some/other/install/directory" ./build.sh
To compile correctly collectd needs to be able to initialize static variables to NAN (Not A Number). Some C libraries, especially the GNU libc, have a problem with that.
Luckily, with GCC it's possible to work around that problem: One can define NAN as being (0.0 / 0.0) and isnan as f != f . However, to test this "implementation" the configure script needs to compile and run a short test program. Obviously running a test program when doing a cross- compilation is, well, challenging.
If you run into this problem, you can use the --with-nan-emulation configure option to force the use of this implementation. We can't promise that the compiled binary actually behaves as it should, but since NANs are likely never passed to the libm you have a good chance to be lucky.
Likewise, collectd needs to know the layout of doubles in memory, in order to craft uniform network packets over different architectures. For this, it needs to know how to convert doubles into the memory layout used by x86. The configure script tries to figure this out by compiling and running a few small test programs. This is of course not possible when cross-compiling. You can use the --with-fp-layout option to tell the configure script which conversion method to assume.有效論據是:
* `nothing` (12345678 -> 12345678)
* `endianflip` (12345678 -> 87654321)
* `intswap` (12345678 -> 56781234)
Please use GitHub to report bugs and submit pull requests: https://github.com/collectd/collectd/.有關詳細信息,請參見貢獻。
For questions, development information and basically all other concerns please send an email to collectd's mailing list at (list at collectd.org).
For live discussion and more personal contact visit us in IRC, we're in channel #collectd on freenode.
Florian octo Forster (octo at collectd.org), Sebastian tokkee Harl (sh at tokkee.org), and many other authors and contributors.