ZABBIX安裝以及監控磁碟、mysql、oracle配置
主要介紹ZABBIX安裝以及mysql、oracle的監控配置、自定義的磁碟監控(discovery方式)
一、ZABBIX伺服器端的安裝
安裝前準備vim /etc/yum.repos.d/php.repo
[base]
name=CentOS-6 - Base - 163.com
baseurl=
#mirrorlist=
gpgcheck=1
gpgkey=
yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm
登入資料庫,建立帳號和設定許可權:
mysql -uroot -proot123
create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix_user@'10.100.105.%' identified by 'root123';
2.3安裝zabbix服務
增加zabbix使用者和組
#groupadd zabbix
#useradd -g zabbix -m zabbix
groupadd -g 201 zabbix
useradd -g zabbix -u 201 -m zabbix
cd /home/software/
wget ftp://10.100.105.83/app_source/zabbix-2.2.2.tar.gz > /dev/null 2>&1 || ERROR "下載zabbix"
tar xvf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2/
匯入資料庫表
cd zabbix-2.2.2/database/mysql
mysql -uroot -proot123 zabbix < schema.sql
mysql -uroot -proot123 zabbix < images.sql
mysql -uroot -proot123 zabbix < data.sql
cd ../../zabbix-2.2.2/
./configure --prefix=/usr/local/software/zabbix-2.2.2/ --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
make && make install
新增服務埠
vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
修改server配置檔案,新增zabbix資料庫密碼
vi /usr/local/software/zabbix-2.2.2/etc/zabbix_server.conf
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=root123
ListenIP=10.100.105.207
修改Agentd配置檔案,更改HOSTNAME為本機的hostname
vim /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=10.100.105.207
Hostname=s017pm
#啟動服務端,某些版本或者系統要求以
zabbix使用者啟動,下同
/usr/local/software/zabbix-2.2.2/sbin/zabbix_server
/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd
啟動的時候報錯誤:
[root@s017pm: conf]# /usr/local/software/zabbix-2.2.2/sbin/zabbix_server
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
解決辦法:
ln -s /usr/local/software/mysql/lib/libmysqlclient.so.18 /usr/lib64
#新增服務自啟動
echo "/usr/local/software/zabbix/sbin/zabbix_server" >> /etc/rc.d/rc.local
echo "/usr/local/software/zabbix/sbin/zabbix_agentd" >> /etc/rc.d/rc.local
cp /home/software/zabbix-2.2.2/misc/init.d/tru64/zabbix_server /etc/init.d/
cp /home/software/zabbix-2.2.2/misc/init.d/tru64/zabbix_agentd /etc/init.d/
vim /etc/init.d/zabbix_server
DAEMON=DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_server
vim /etc/init.d/zabbix_agentd
DAEMON=DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
#建立儲存目錄
mkdir /var/www/html/zabbix
#複製網頁前端檔案到apache目錄:
cp -R /home/software/zabbix-2.2.2/frontends/php/* /var/www/html/zabbix/
chown -R zabbix:zabbix /var/www/html/zabbix/
修改php引數:#php引數配置,按照zabbix的需求來.
vi /etc/php.ini
date.timezone = "Asia/Shanghai"
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
#使用sed命令來修改
sed -i "s@;date.timezone =@date.timezone = Asia/Shanghai@g" /etc/php.ini
sed -i "s@max_execution_time = 30@max_execution_time = 300@g" /etc/php.ini
sed -i "s@post_max_size = 8M@post_max_size = 32M@g" /etc/php.ini
sed -i "s@max_input_time = 60@max_input_time = 300@g" /etc/php.ini
sed -i "s@memory_limit = 128M@memory_limit = 128M@g" /etc/php.ini
sed -i "s@;mbstring.func_overload = 0@ambstring.func_overload = 2@g" /etc/php.ini
web頁面配置,配置http訪問好了後web登陸:
zabbix的預設登陸賬號是admin,密碼是zabbix
如果更改IP,需要修改/var/www/html/zabbix/conf/zabbix.conf.php 中的mysql 地址
二、ZABBIX客戶端安裝
客戶端(10.100.105.208):#groupadd zabbix
#useradd -g zabbix -s /sbin/nologin zabbix
groupadd -g 201 zabbix
useradd -g zabbix -u 201 -s /sbin/nologin zabbix
tar xvf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2/
./configure --prefix=/usr/local/software/zabbix-2.2.2/ --enable-agent
make && make install
#複製zabbix_agentd啟動檔案到/etc/init.d目錄下
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod 755 /etc/init.d/zabbix_agentd
vim /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
Server=10.100.105.207
ServerActive=10.100.105.207
UnsafeUserParameters=1
Include=/usr/local/software/zabbix-2.2.2/zabbix_agentd.conf.d/
Hostname=10.100.105.208
Timeout=10
#使用sed修改:
sed -i -e 's/Server=127.0.0.1/Server=10.100.105.207/g' -e 's/^ServerActive=127.0.0.1/ServerActive=10.100.105.207/g' -e 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/g' -e 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/software\/zabbix-2.2.2\/etc\/zabbix_agentd.conf.d\//g' /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=10.100.105.208/g" /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
sed -i 's/^#Timeout=3/Timeout=10/g' /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf
三、磁碟監控
###建立指令碼目錄mkdir -p /usr/local/software/zabbix-2.2.2/script
-----------------------------------------------
###建立監控io指令碼
cat > /usr/local/software/zabbix-2.2.2/script/Disk_Static.sh << EOF
#!/bin/sh
##獲取IO
IO=\`iostat -d -x 1 3 |grep \$1\`
echo "\$IO" |awk '{a=a+\$12}END{print a/3}'
EOF
-----------------------------------------------
###建立監控Io配置檔案
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/Disk_Static.conf << EOF
UserParameter=Disk_Static[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/Disk_Static.sh \$1
EOF
測試item key
./bin/zabbix_get -s 10.100.105.208 -p 10050 -k "Disk_Static[dm-0]"
四、IO監控(discovery方式)
(1)自動尋找磁碟disk_scan.sh檔案內容:
more /usr/local/software/zabbix-2.2.2/script/disk_scan.sh
點選(此處)摺疊或開啟
- #!/bin/bash
- #written by linengjiang
- diskarray=(`cat /proc/diskstats |grep -E "\bdm-[0123456789]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq 2>/dev/n
- ull`)
- length=${#diskarray[@]}
- printf "{\n"
- printf '\t'"\"data\":["
- for ((i=0;i<$length;i++))
- do
- printf '\n\t\t{'
- printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
- if [ $i -lt $[$length-1] ];then
- printf ','
- fi
- done
- printf "\n\t]\n"
- printf "}\n"
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf << EOF
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh \$1
EOF
(3)新建模板
Template:Templates_Disk_Static
(4)新建Discovery rules
Name:io_status_discovery
Type:Zabbix_agent
Key:io.scandisk
Update interval(in sec):30
(5)新建好discovery rule之後,就可以開始寫item prototypes了,下面是一個例子avgqu-sz(平均I/O佇列長度)
Name:IO_avgqu-sz on $1
Type:Zabbix_agent
Key:io.avgqu-sz[{#DISK_NAME}]
Type of information:Numeric(float)
Units:length
(6) 在建立好item之後,zabbix_agentd.conf.d/disk_monitor.conf中也要寫上相應的UserParameters
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf << EOF
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh \$1
UserParameter=io.rps[*],cat /tmp/iostat_output|grep "\b\$1\b"|awk '{a=a+\$\$4;b+=1}END{print(a/b)}'
UserParameter=io.wps[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$5;b+=1}END{print(a/b)}'
UserParameter=io.rMBs[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$6;b+=1}END{print(a/b)}'
UserParameter=io.wMBs[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$7;b+=1}END{print(a/b)}'
UserParameter=io.avgrq-sz[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$8;b+=1}END{print(a/b)}'
UserParameter=io.avgqu-sz[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$9;b+=1}END{print(a/b)}'
UserParameter=io.await[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$10;b+=1}END{print(a/b)}'
UserParameter=io.svctm[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$11;b+=1}END{print(a/b)}'
UserParameter=io.util[*],cat /tmp/iostat_output|grep "\b\$1\b" |awk '{a=a+\$\$12;b+=1}END{print(a/b)}'
EOF
disk_monitor.conf檔案內容:
more /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/disk_monitor.conf
UserParameter=io.scandisk[*],/bin/sh /usr/local/software/zabbix-2.2.2/script/disk_scan.sh $1
UserParameter=io.rps[*],cat /tmp/iostat_output|grep "\b$1\b"|awk '{a=a+$$4;b+=1}END{print(a/b)}'
UserParameter=io.wps[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$5;b+=1}END{print(a/b)}'
UserParameter=io.rMBs[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$6;b+=1}END{print(a/b)}'
UserParameter=io.wMBs[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$7;b+=1}END{print(a/b)}'
UserParameter=io.avgrq-sz[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$8;b+=1}END{print(a/b)}'
UserParameter=io.avgqu-sz[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$9;b+=1}END{print(a/b)}'
UserParameter=io.await[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$10;b+=1}END{print(a/b)}'
UserParameter=io.svctm[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$11;b+=1}END{print(a/b)}'
UserParameter=io.util[*],cat /tmp/iostat_output|grep "\b$1\b" |awk '{a=a+$$12;b+=1}END{print(a/b)}'
(7)新建graph prototype
Name:IO_graph on {#DISK_NAME}
With:900
Heigth:200
Item:
(8)採集io監控資料
#zabbix_agentd io
*/2 * * * * root "iostat -x -m 2 5 >/tmp/iostat_output"
(9) zabbix_get -s 10.50.8.19 -k 'io.scandisk'
./bin/zabbix_get -s 10.50.8.38 -k 'io.util[dm-0]'
五、監控埠服務
cat > /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/Check_Port.sh<< EOF#!/bin/sh
##監控服務服務
ERROR(){
echo 0
exit
}
netstat -nltp | grep $1 > /dev/null || ERROR
echo 1
EOF
#修改許可權
chown -R zabbix.zabbix /usr/local/software/zabbix-2.2.2
#在iptables中放行10050和10051埠
sed -i 's/COMMIT/##zabbix\n-A RH-Firewall-1-INPUT -p tcp --dport 10050 -j ACCEPT\nCOMMIT/g' /etc/sysconfig/iptables
/etc/init.d/iptables restart
vim /etc/init.d/zabbix_agentd
#DAEMON=/usr/local/sbin/zabbix_agentd
DAEMON=/usr/local/software/zabbix-2.2.2/sbin/zabbix_agentd
使用sed修改:
sed -i 's/DAEMON=\/usr\/local\/sbin\/zabbix_agentd/#DAEMON=\/usr\/local\/sbin\/zabbix_agentd\nDAEMON=\/usr\/local\/software\/zabbix-2.2.2\/sbin\/zabbix_agentd/g' /etc/init.d/zabbix_agentd
/etc/init.d/zabbix_agentd start
六、自定義發郵件指令碼
配置發件人和SMTP伺服器more /etc/mail.rc
set from=itmonitor@xxx.com
set smtp=smtp.xxx.com
set smtp-auth-user=itmonitor@xxx.com
set smtp-auth-password=dsdffdDss
set smtp-auth=login
指定指令碼目錄:
vim zabbix_server.conf
AlertScriptsPath=/usr/local/software/zabbix-2.2.2/script/alertscripts
編寫發郵件指令碼:
more /usr/local/software/zabbix-2.2.2/script/alertscripts/mail.sh
#!/bin/bash
mailx -s "$subject" $to
七、配置自帶的mysql監控模板
cp /home/software/zabbix-2.2.2/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/software/zabbix-2.2.2/etc/zabbix_agentd.conf.d/根據userparameter_mysql.conf 裡的說明建立“.my.cnf”檔案,並修改userparameter_mysql.conf裡的"HOME="路徑,指向“.my.cnf”檔案所在目錄。
[root@s017pm: script]# more .my.cnf
[mysql]
host = 10.100.105.207
user = root
password = root123
socket = /usr/local/software/mysql/mysql.sock
[mysqladmin]
host = 10.100.105.207
user = zabbix
password = zabbix
socket = /usr/local/software/mysql/mysql.sock
在mysql上建立使用者
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
./zabbix_get -s 10.100.105.207 -p 10050 -k "mysql.size[all]"
八、oracle orabbix 監控
wget
---more config.props |grep -v "#"-------------------------------------------------------------
ZabbixServerList=ZabbixServer1
ZabbixServer1.Address=10.100.105.207
ZabbixServer1.Port=10051
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=DB1,DB2
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@10.100.105.207:1521:bst_dev
DB1.User=zabbix
DB1.Password=zabbix
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props
DB2.Url=jdbc:oracle:thin:@10.100.105.208:1521:bsttest
DB2.User=zabbix
DB2.Password=zabbix
DB2.QueryListFile=./conf/query.props
-----------------------------------------------------------------
cp /usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/init.d/orabbix /etc/init.d/
chmod +x /etc/init.d/orabbix
chmod +x /usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/run.sh
#在oracle資料庫中建立zabbix使用者
create user zabbix identified by "bstzabbix12657" default tablespace users temporary tablespace temp profile default account unlock;
grant alter session to zabbix;
grant connect to zabbix;
grant select any dictionary to zabbix;
exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
commit;
zabbix服務端操作
1、匯入模板。模板在/usr/local/software/zabbix-2.2.2/script/orabbix-1.2.3/template.
Orabbix_export_full.xml 全部匯入(圖表 監控項 觸發器)
Orabbix_export_graphs.xml 圖表
Orabbix_export_items.xml 監控項
Orabbix_export_triggers.xml 觸發器
2、新增主機(名字必須跟config.props裡面定義的名稱的配置保持一致)
3、關聯模板
4、結果演示
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10995764/viewspace-2124876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【監控】Zabbix安裝
- Zabbix監控安裝部署
- 使用 Docker 安裝 Zabbix,並配置自定義監控項Docker
- Zabbix5.0 配置 ODBC 監控 Oracle 資料庫Oracle資料庫
- Zabbix透過Orabbix監控OracleOracle
- 使用Zabbix + Python對Mysql監控PythonMySql
- Linux系統安裝zabbix 4.4監控軟體Linux
- zabbix容器化安裝及監控docker應用Docker
- 【Zabbix】使用dbforbbix 2.2-beta監控Redhat 7.0上的Oracle、MysqlORBRedhatOracleMySql
- Zabbix+Python監控Oracle資料庫PythonOracle資料庫
- Zabbix如何監控Oracle的告警日誌Oracle
- Linux監控平臺介紹 zabbix監控介紹 安裝zabbix 忘記Admin密碼如何做Linux密碼
- zabbix監控
- zabbix的安裝配置
- Munin監控的安裝與配置
- 【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控DockerMySql
- 【Zabbix】使用zabbix 3.4自帶Mysql模板,監控Redhat 7.0上的MysqlMySqlRedhat
- Zabbix 5.0:磁碟自動發現和讀寫監控
- 使用zabbix監控oracle的後臺日誌Oracle
- Zabbix監控ActiveMQMQ
- Ubuntu安裝zabbix配置教程Ubuntu
- Zabbix監控之遷移Zabbix
- 02 . Zabbix配置監控項及聚合圖形
- zabbix5.0監控安全配置全過程
- 巧用Zabbix自定義監控Mysql效能狀態MySql
- zabbix6.2新增mysql資料庫監控MySql資料庫
- Zabbix3.4用自帶模板監控mysqlMySql
- 02 zabbix-centos7 監控mysql5.7CentOSMySql
- zabbix監控平臺
- oracle & mysql 驅動程式安裝配置OracleMySql
- zabbix應用-監控mysql slave 主從狀態MySql
- zabbix的主動模式監控和zabbix-proxy分散式監控模式分散式
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- 如何使用zabbix內建 key 配置windows服務監控Windows
- zabbix監控windows DHCP serverWindowsServer
- Zabbix實戰--監控NginxNginx
- Zabbix監控使用進階
- oracle安裝配置Oracle
- 【Zabbix配置】透過iLO進行Zabbix監控——針對HP伺服器整合伺服器