zabbix數據庫表結構的重要性
想理解zabbix的前端代碼、做深入的二次開發,甚至的調優,那就不能不了解數據庫的表結構了。
我們這里采用的zabbix1.8、mysql,所以簡單的說下我們mysql這邊的表結構,其他環境不保證正確。
mysql> show tables; +-----------------------+ | Tables_in_zabbix | +-----------------------+ | acknowledges | | actions | | alerts | | application_template | | applications | | auditlog | | auditlog_details | | autoreg_host | | conditions | | config | | dbversion | | dchecks | | dhosts | | drules | | dservices | | escalations | | events | | expressions | | functions | | globalmacro | | globalvars | | graph_discovery | | graph_theme | | graphs | | graphs_items | | group_discovery | | group_prototype | | groups | | history | | history_log | | history_str | | history_text | | history_uint | | host_discovery | | host_inventory | | hostmacro | | hosts | | hosts_groups | | hosts_templates | | housekeeper | | httpstep | | httpstepitem | | httptest | | httptestitem | | icon_map | | icon_mapping | | ids | | images | | interface | | interface_discovery | | item_condition | | item_discovery | | items | | items_applications | | maintenances | | maintenances_groups | | maintenances_hosts | | maintenances_windows | | mappings | | media | | media_type | | opcommand | | opcommand_grp | | opcommand_hst | | opconditions | | operations | | opgroup | | opmessage | | opmessage_grp | | opmessage_usr | | optemplate | | profiles | | proxy_autoreg_host | | proxy_dhistory | | proxy_history | | regexps | | rights | | screens | | screens_items | | scripts | | service_alarms | | services | | services_links | | services_times | | sessions | | slides | | slideshows | | sysmap_element_url | | sysmap_url | | sysmaps | | sysmaps_elements | | sysmaps_link_triggers | | sysmaps_links | | timeperiods | | trends | | trends_uint | | trigger_depends | | trigger_discovery | | triggers | | user_history | | users | | users_groups | | usrgrp | | valuemaps | +-----------------------+
actions
actions表記錄了當觸發器觸發時,需要采用的動作。
mysql> desc actions;
+---------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+-------+
| actionid | bigint(20) unsigned | NO | PRI | 0 | | | name | varchar(255) | NO | | | | | eventsource | int(11) | NO | MUL | 0 | | | evaltype | int(11) | NO | | 0 | | | status | int(11) | NO | | 0 | | | esc_period | int(11) | NO | | 0 | | | def_shortdata | varchar(255) | NO | | | | | def_longdata | blob | NO | | NULL | | | recovery_msg | int(11) | NO | | 0 | | | r_shortdata | varchar(255) | NO | | | | | r_longdata | blob | NO | | NULL | | +---------------+---------------------+------+-----+---------+-------+
alerts
alerts 表保存了歷史的告警事件,可以從這個表里面去做一些統計分析,例如某個部門、
某人、某類時間的告警統計,以及更深入的故障發生、恢復時間,看你想怎么用了。
mysql> desc alerts;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+ | alertid | bigint(20) unsigned | NO | PRI | 0 | | | actionid | bigint(20) unsigned | NO | MUL | 0 | | | eventid | bigint(20) unsigned | NO | MUL | 0 | | | userid | bigint(20) unsigned | NO | MUL | 0 | | | clock | int(11) | NO | PRI | 0 | | | mediatypeid | bigint(20) unsigned | NO | MUL | 0 | | | sendto | varchar(100) | NO | | | | | subject | varchar(255) | NO | | | | | message | blob | NO | | NULL | | | status | int(11) | NO | MUL | 0 | | | retries | int(11) | NO | | 0 | | | error | varchar(128) | NO | | | | | nextcheck | int(11) | NO | | 0 | | | esc_step | int(11) | NO | | 0 | | | alerttype | int(11) | NO | | 0 | | +-------------+---------------------+------+-----+---------+-------+
config
config表保存了全局的參數,前端包括后端也是,很多情況下會查詢改表的參數的,例如用戶的自定義主題、
登陸認證類型等,非常重要,
不過對我們做數據分析意義不大。
mysql> desc config;
+-------------------------+---------------------+------+-----+-----------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+---------------------+------+-----+-----------------+-------+
| configid | bigint(20) unsigned | NO | PRI | 0 | | | alert_history | int(11) | NO | | 0 | | | event_history | int(11) | NO | | 0 | | | refresh_unsupported | int(11) | NO | | 0 | | | work_period | varchar(100) | NO | | 1-5,00:00-24:00 | | | alert_usrgrpid | bigint(20) unsigned | NO | | 0 | | | event_ack_enable | int(11) | NO | | 1 | | | event_expire | int(11) | NO | | 7 | | | event_show_max | int(11) | NO | | 100 | | | default_theme | varchar(128) | NO | | default.css | | | authentication_type | int(11) | NO | | 0 | | | ldap_host | varchar(255) | NO | | | | | ldap_port | int(11) | NO | | 389 | | | ldap_base_dn | varchar(255) | NO | | | | | ldap_bind_dn | varchar(255) | NO | | | | | ldap_bind_password | varchar(128) | NO | | | | | ldap_search_attribute | varchar(128) | NO | | | | | dropdown_first_entry | int(11) | NO | | 1 | | | dropdown_first_remember | int(11) | NO | | 1 | | | discovery_groupid | bigint(20) unsigned | NO | | 0 | | | max_in_table | int(11) | NO | | 50 | | | search_limit | int(11) | NO | | 1000 | | +-------------------------+---------------------+------+-----+-----------------+-------+
functions
function 表時非常重要的一個表了,記錄了trigger中使用的表達式,例如max、last、nodata等函數。
但其實這個表說他重要時因為同時記錄了trigger、itemid,那就可以做一些API的開發了,例如根據
IP 茶香改IP的所有trigger,我記得1.8的版本的API是無法實現我說的這個功能的,那只能利用
function表去自己查詢了。
mysql> desc functions ;
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | functionid | bigint(20) unsigned | NO | PRI | 0 | | | itemid | bigint(20) unsigned | NO | MUL | 0 | | | triggerid | bigint(20) unsigned | NO | MUL | 0 | | | lastvalue | varchar(255) | YES | | NULL | | | function | varchar(12) | NO | | | | | parameter | varchar(255) | NO | | 0 | | +------------+---------------------+------+-----+---------+-------+
graphs
graphs 表包含了用戶定義的圖表信息,同樣的玩法可以是根據IP去查詢改IP下的所有圖表,
不過似乎是有API的,我只是舉例而已。
mysql> desc graphs;
+------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+-------+
| graphid | bigint(20) unsigned | NO | PRI | 0 | | | name | varchar(128) | NO | MUL | | | | width | int(11) | NO | | 0 | | | height | int(11) | NO | | 0 | | | yaxismin | double(16,4) | NO | | 0.0000 | | | yaxismax | double(16,4) | NO | | 0.0000 | | | templateid | bigint(20) unsigned | NO | | 0 | | | show_work_period | int(11) | NO | | 1 | | | show_triggers | int(11) | NO | | 1 | | | graphtype | int(11) | NO | | 0 | | | show_legend | int(11) | NO | | 0 | | | show_3d | int(11) | NO | | 0 | | | percent_left | double(16,4) | NO | | 0.0000 | | | percent_right | double(16,4) | NO | | 0.0000 | | | ymin_type | int(11) | NO | | 0 | | | ymax_type | int(11) | NO | | 0 | | | ymin_itemid | bigint(20) unsigned | NO | | 0 | | | ymax_itemid | bigint(20) unsigned | NO | | 0 | | +------------------+---------------------+------+-----+---------+-------+
graphs_items
graphs_items 保存了屬於某個圖表的所有的監控項信息。
mysql> desc graphs_items;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| gitemid | bigint(20) unsigned | NO | PRI | 0 | | | graphid | bigint(20) unsigned | NO | MUL | 0 | | | itemid | bigint(20) unsigned | NO | MUL | 0 | | | drawtype | int(11) | NO | | 0 | | | sortorder | int(11) | NO | | 0 | | | color | varchar(6) | NO | | 009600 | | | yaxisside | int(11) | NO | | 1 | | | calc_fnc | int(11) | NO | | 2 | | | type | int(11) | NO | | 0 | | | periods_cnt | int(11) | NO | | 5 | | +-------------+---------------------+------+-----+---------+-------+
groups
groups 沒啥說的,都懂,就是保存了組名和組的ID 。
mysql> desc groups ;
+----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+ | groupid | bigint(20) unsigned | NO | PRI | 0 | | | name | varchar(64) | NO | MUL | | | | internal | int(11) | NO | | 0 | | +----------+---------------------+------+-----+---------+-------+
history 、history_str、history_log 、history_uint_sync等
這部分表都差不多,唯一不同的是保存的數據類型,history_str保存的數據
類型就算str即字符類型的。這個是和采集時設置的數據類型一致的。
需要注意的時,因為history表有這么多的類型,那自己寫報表系統等去查詢
數據時,就需要判斷下數據的采集類型,如果查錯了表,那肯定時沒有數據的。
mysql> desc history;
+--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | 0 | | | clock | int(11) | NO | PRI | 0 | | | value | double(16,4) | NO | | 0.0000 | | +--------+---------------------+------+-----+---------+-------+ mysql> desc history_str; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | 0 | | | clock | int(11) | NO | | 0 | | | value | varchar(255) | NO | | | | +--------+---------------------+------+-----+---------+-------+
接收item值時的時間值存放在兩個字段內,大於1秒的部分存放找clock字段單位是秒(s),小於一秒的部分存放在ns字段單位是納秒(ns)。
兩個字段相加的值才是接收item值時的時間值,一般不用關心小於1秒的部分。
trends、trends_uint
trends 也是保存了歷史數據用的,和history不同的時,trends表僅僅保存了
小時平均的值,即你可以理解為是history表的數據壓縮。所以trends表也有
很多的類型,對應history。
值的注意的trends和history表這兩類表數據量都非常大,我們一天大概就要有
40G 的數據。
所以注意定是去做壓縮、刪除。
mysql> desc trends;
+-----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | 0 | | | clock | int(11) | NO | PRI | 0 | | | num | int(11) | NO | | 0 | | | value_min | double(16,4) | NO | | 0.0000 | | | value_avg | double(16,4) | NO | | 0.0000 | | | value_max | double(16,4) | NO | | 0.0000 | | +-----------+---------------------+------+-----+---------+-------+ mysql> desc trends_uint; +-----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | 0 | | | clock | int(11) | NO | PRI | 0 | | | num | int(11) | NO | | 0 | | | value_min | bigint(20) unsigned | NO | | 0 | | | value_avg | bigint(20) unsigned | NO | | 0 | | | value_max | bigint(20) unsigned | NO | | 0 | | +-----------+---------------------+------+-----+---------+-------+
hosts
hosts 非常重要,保存了每個agent、proxy等的IP 、hostid、狀態、IPMI等信息,
幾乎是記錄了一台設備的所有的信息。
當然hostid是當中非常非常重要的信息,其他的表一般都時關聯hostid的。
mysql> desc hosts;
+--------------------+---------------------+------+-----+-----------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+-----------+-------+
| hostid | bigint(20) unsigned | NO | PRI | 0 | | | proxy_hostid | bigint(20) unsigned | NO | MUL | 0 | | | host | varchar(64) | NO | MUL | | | | dns | varchar(64) | NO | | | | | useip | int(11) | NO | | 1 | | | ip | varchar(39) | NO | | 127.0.0.1 | | | port | int(11) | NO | | 10050 | | | status | int(11) | NO | MUL | 0 | | | disable_until | int(11) | NO | | 0 | | | error | varchar(128) | NO | | | | | available | int(11) | NO | | 0 | | | errors_from | int(11) | NO | | 0 | | | lastaccess | int(11) | NO | | 0 | | | inbytes | bigint(20) unsigned | NO | | 0 | | | outbytes | bigint(20) unsigned | NO | | 0 | | | useipmi | int(11) | NO | | 0 | | | ipmi_port | int(11) | NO | | 623 | | | ipmi_authtype | int(11) | NO | | 0 | | | ipmi_privilege | int(11) | NO | | 2 | | | ipmi_username | varchar(16) | NO | | | | | ipmi_password | varchar(20) | NO | | | | | ipmi_disable_until | int(11) | NO | | 0 | | | ipmi_available | int(11) | NO | | 0 | | | snmp_disable_until | int(11) | NO | | 0 | | | snmp_available | int(11) | NO | | 0 | | | maintenanceid | bigint(20) unsigned | NO | | 0 | | | maintenance_status | int(11) | NO | | 0 | | | maintenance_type | int(11) | NO | | 0 | | | maintenance_from | int(11) | NO | | 0 | | | ipmi_ip | varchar(64) | NO | | 127.0.0.1 | | | ipmi_errors_from | int(11) | NO | | 0 | | | snmp_errors_from | int(11) | NO | | 0 | | | ipmi_error | varchar(128) | NO | | | | | snmp_error | varchar(128) | NO | | | | +--------------------+---------------------+------+-----+-----------+-------+
其實1.0的版本中,是沒有這么多的字段的,好像只有hostid、host、status、disable_until
等幾個字段,但1.8已經如此豐富了。
hosts_groups
hosts_groups 保存了host(主機)與host groups(主機組)的關聯關系。
這部分信息可以在我們自己做一些批量查詢,例如查詢關聯到某個主機組的所有
設備的IP 、存活狀態等,進一步去查詢該批量設備的load、IO、mem等統計信息。
我之前做的一個簡單的報表就是例如了這部分的信息去查詢某個業務線下所有設備
的一周統計信息,當然了是在同一個主機組或者模版組才可以的。
mysql> desc hosts_groups ;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+ | hostgroupid | bigint(20) unsigned | NO | PRI | 0 | | | hostid | bigint(20) unsigned | NO | MUL | 0 | | | groupid | bigint(20) unsigned | NO | MUL | 0 | | +-------------+---------------------+------+-----+---------+-------+
items
items 表保存了采集項的信息。
mysql> desc items ;
+-----------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | 0 | | | type | int(11) | NO | | 0 | | | snmp_community | varchar(64) | NO | | | | | snmp_oid | varchar(255) | NO | | | | | snmp_port | int(11) | NO | | 161 | | | hostid | bigint(20) unsigned | NO | MUL | 0 | | | description | varchar(255) | NO | | | | | key_ | varchar(255) | NO | | | | | delay | int(11) | NO | | 0 | | | history | int(11) | NO | | 90 | | | trends | int(11) | NO | | 365 | | | lastvalue | varchar(255) | YES | | NULL | | | lastclock | int(11) | YES | | NULL | | | prevvalue | varchar(255) | YES | | NULL | | | status | int(11) | NO | MUL | 0 | | | value_type | int(11) | NO | | 0 | | | trapper_hosts | varchar(255) | NO | | | | | units | varchar(10) | NO | | | | | multiplier | int(11) | NO | | 0 | | | delta | int(11) | NO | | 0 | | | prevorgvalue | varchar(255) | YES | | NULL | | | snmpv3_securityname | varchar(64) | NO | | | | | snmpv3_securitylevel | int(11) | NO | | 0 | | | snmpv3_authpassphrase | varchar(64) | NO | | | | | snmpv3_privpassphrase | varchar(64) | NO | | | | | formula | varchar(255) | NO | | 1 | | | error | varchar(128) | NO | | | | | lastlogsize | int(11) | NO | | 0 | | | logtimefmt | varchar(64) | NO | | | | | templateid | bigint(20) unsigned | NO | MUL | 0 | | | valuemapid | bigint(20) unsigned | NO | | 0 | | | delay_flex | varchar(255) | NO | | | | | params | text | NO | | NULL | | | ipmi_sensor | varchar(128) | NO | | | | | data_type | int(11) | NO | | 0 | | | authtype | int(11) | NO | | 0 | | | username | varchar(64) | NO | | | | | password | varchar(64) | NO | | | | | publickey | varchar(64) | NO | | | | | privatekey | varchar(64) | NO | | | | | mtime | int(11) | NO | | 0 | | +-----------------------+---------------------+------+-----+---------+-------+
media
media 保存了某個用戶的media配置項,即對應的告警方式。
mysql> desc media;
+-------------+---------------------+------+-----+-----------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+-----------------+-------+
| mediaid | bigint(20) unsigned | NO | PRI | 0 | | | userid | bigint(20) unsigned | NO | MUL | 0 | | | mediatypeid | bigint(20) unsigned | NO | MUL | 0 | | | sendto | varchar(100) | NO | | | | | active | int(11) | NO | | 0 | | | severity | int(11) | NO | | 63 | | | period | varchar(100) | NO | | 1-7,00:00-23:59 | | +-------------+---------------------+------+-----+-----------------+-------+
media_type
media_type 表與media 表不同的是media_type 記錄了某個告警方式對應的腳步等的存放路徑。
mysql> desc media_type;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+ | mediatypeid | bigint(20) unsigned | NO | PRI | 0 | | | type | int(11) | NO | | 0 | | | description | varchar(100) | NO | | | | | smtp_server | varchar(255) | NO | | | | | smtp_helo | varchar(255) | NO | | | | | smtp_email | varchar(255) | NO | | | | | exec_path | varchar(255) | NO | | | | | gsm_modem | varchar(255) | NO | | | | | username | varchar(255) | NO | | | | | passwd | varchar(255) | NO | | | | +-------------+---------------------+------+-----+---------+-------+
media 與media_type 通過mediatypeid 鍵關聯。
profiles
profiles 表保存了用戶的一些配置項。
mysql> desc profiles ;
+-----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| profileid | bigint(20) unsigned | NO | PRI | 0 | | | userid | bigint(20) unsigned | NO | MUL | 0 | | | idx | varchar(96) | NO | | | | | idx2 | bigint(20) unsigned | NO | | 0 | | | value_id | bigint(20) unsigned | NO | | 0 | | | value_int | int(11) | NO | | 0 | | | value_str | varchar(255) | NO | | | | | source | varchar(96) | NO | | | | | type | int(11) | NO | | 0 | | +-----------+---------------------+------+-----+---------+-------+
rights
rights 表保存了用戶組的權限信息,zabbix的權限一直也是我理不太清的地方,
其實這個表里面有詳細的記錄。
mysql> desc rights;
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+
| rightid | bigint(20) unsigned | NO | PRI | 0 | | | groupid | bigint(20) unsigned | NO | MUL | 0 | | | permission | int(11) | NO | | 0 | | | id | bigint(20) unsigned | YES | MUL | NULL | | +------------+---------------------+------+-----+---------+-------+
screens
screens 表保存了用戶定義的圖片。
mysql> desc graphs;
+------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+-------+
| graphid | bigint(20) unsigned | NO | PRI | 0 | | | name | varchar(128) | NO | MUL | | | | width | int(11) | NO | | 0 | | | height | int(11) | NO | | 0 | | | yaxismin | double(16,4) | NO | | 0.0000 | | | yaxismax | double(16,4) | NO | | 0.0000 | | | templateid | bigint(20) unsigned | NO | | 0 | | | show_work_period | int(11) | NO | | 1 | | | show_triggers | int(11) | NO | | 1 | | | graphtype | int(11) | NO | | 0 | | | show_legend | int(11) | NO | | 0 | | | show_3d | int(11) | NO | | 0 | | | percent_left | double(16,4) | NO | | 0.0000 | | | percent_right | double(16,4) | NO | | 0.0000 | | | ymin_type | int(11) | NO | | 0 | | | ymax_type | int(11) | NO | | 0 | | | ymin_itemid | bigint(20) unsigned | NO | | 0 | | | ymax_itemid | bigint(20) unsigned | NO | | 0 | | +------------------+---------------------+------+-----+---------+-------+
screens_items
同graphs_items。
mysql> desc screens_items;
+--------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+---------+-------+
| screenitemid | bigint(20) unsigned | NO | PRI | 0 | | | screenid | bigint(20) unsigned | NO | | 0 | | | resourcetype | int(11) | NO | | 0 | | | resourceid | bigint(20) unsigned | NO | | 0 | | | width | int(11) | NO | | 320 | | | height | int(11) | NO | | 200 | | | x | int(11) | NO | | 0 | | | y | int(11) | NO | | 0 | | | colspan | int(11) | NO | | 0 | | | rowspan | int(11) | NO | | 0 | | | elements | int(11) | NO | | 25 | | | valign | int(11) | NO | | 0 | | | halign | int(11) | NO | | 0 | | | style | int(11) | NO | | 0 | | | url | varchar(255) | NO | | | | | dynamic | int(11) | NO | | 0 | | +--------------+---------------------+------+-----+---------+-------+
sessions
sessions 表很重要,保存了每個用戶的sessions,在登陸、注銷的時候均會操作
該張表的。
做cas等統一認證時,需要了解下該表和相關的登陸、驗證流程。有興趣的看我
前面的文章吧。
mysql> desc sessions;
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+ | sessionid | varchar(32) | NO | PRI | | | | userid | bigint(20) unsigned | NO | MUL | 0 | | | lastaccess | int(11) | NO | | 0 | | | status | int(11) | NO | | 0 | | +------------+---------------------+------+-----+---------+-------+
triggers
triggers 顧名思義保存了trigger的所有信息。
mysql> desc triggers;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| triggerid | bigint(20) unsigned | NO | PRI | 0 | | | expression | varchar(255) | NO | | | | | description | varchar(255) | NO | | | | | url | varchar(255) | NO | | | | | status | int(11) | NO | MUL | 0 | | | value | int(11) | NO | MUL | 0 | | | priority | int(11) | NO | | 0 | | | lastchange | int(11) | NO | | 0 | | | dep_level | int(11) | NO | | 0 | | | comments | blob | NO | | NULL | | | error | varchar(128) | NO | | | | | templateid | bigint(20) unsigned | NO | | 0 | | | type | int(11) | NO | | 0 | | +-------------+---------------------+------+-----+---------+-------+
trigger_depends
trigger_depends 保存了trigger的依賴關系。
mysql> desc trigger_depends;
+----------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------------+------+-----+---------+-------+ | triggerdepid | bigint(20) unsigned | NO | PRI | 0 | | | triggerid_down | bigint(20) unsigned | NO | MUL | 0 | | | triggerid_up | bigint(20) unsigned | NO | MUL | 0 | | +----------------+---------------------+------+-----+---------+-------+
users
不需要解釋了,值的一提的部分用戶配置會在該表中,例如auotlogin、autologout、
url、theme等信息。
mysql> desc users;
+----------------+---------------------+------+-----+-------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------------+------+-----+-------------+-------+
| userid | bigint(20) unsigned | NO | PRI | 0 | | | alias | varchar(100) | NO | MUL | | | | name | varchar(100) | NO | | | | | surname | varchar(100) | NO | | | | | passwd | char(32) | NO | | | | | url | varchar(255) | NO | | | | | autologin | int(11) | NO | | 0 | | | autologout | int(11) | NO | | 900 | | | lang | varchar(5) | NO | | en_gb | | | refresh | int(11) | NO | | 30 | | | type | int(11) | NO | | 0 | | | theme | varchar(128) | NO | | default.css | | | attempt_failed | int(11) | NO | | 0 | | | attempt_ip | varchar(39) | NO | | | | | attempt_clock | int(11) | NO | | 0 | | | rows_per_page | int(11) | NO | | 50 | | +----------------+---------------------+------+-----+-------------+-------+
轉載:http://www.furion.info/623.html
使用python獲取表中TCP連接數,生成Execl文件
#/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb import xlsxwriter import time host_list = ['192.168.0.1', '192.168.0.2', '192.168.0.3', ] def sql_login(ip): conn = MySQLdb.connect(host='地址', port=3306, user='賬號', passwd='密碼', db='庫名') cur = conn.cursor() sql_context = "select itemid, FROM_UNIXTIME(clock, '%Y-%m-%d %H:%i:%S'), value " \ "from history_uint where itemid = (select itemid from items where items.key_ = 'tcpconn' " \ "and items.hostid = (select hostid from hosts where host = '" + ip + \ "')) and clock >= UNIX_TIMESTAMP('2016-04-22 18:00:00') and clock < UNIX_TIMESTAMP('2016-04-24 00:00:00')" reCount = cur.execute(sql_context) nRet = cur.fetchall() cur.close() conn.close() print reCount #print nRet perfix = time.strftime('%y%m%d%H%M%S') xfilename = "./data/" + ip + "_conn_" + perfix + ".xlsx" workbook = xlsxwriter.Workbook(xfilename) worksheet1 = workbook.add_worksheet() worksheet1.write('A1', u'主機地址') worksheet1.write('B1', u'時間') worksheet1.write('C1', u'TCP連接數') row = 1 for i in nRet: print i[0], i[1], i[2] worksheet1.write(row, 0, ip) worksheet1.write(row, 1, i[1]) worksheet1.write(row, 2, i[2]) row += 1 if row == reCount: break workbook.close() def run(): for ip in host_list: sql_login(ip) if __name__ == '__main__': run()