Install Zabbix_proxy on CentOs8 ขั้นตอนการติดตั้ง Zabbix_proxy 1. ทำการ access root login on CentOs8 2. ทำการ Download package เพื่อใช้ในการติดตั้ง [root@system ~]# rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX[root@system ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm 3. ทำการติดตั้ง Zabbix_proxy [root@system ~]# yum install zabbix-proxy-mysql 4. ทำการสร้าง Zabbix Proxy database โดยให้ทำการติดตั้ง mariadb-server ก่อน [root@system ~]# yum install mariadb-server[root@system ~]# systemctl enable mariadb && systemctl start mariadb[root@system ~]# systemctl status mariadb 5. ทำการ Run mysql_secure_installation และกำหนด root database password [root@system ~]# mysql_secure_installation 6. ทำการสร้างฐานข้อมูลสำหรับ Zabbix_proxy และกำหนด privileges ในการใช้งาน Database [root@system ~]# mysql -u root -pEnter password: ทำการกรอก root database password ที่สร้างในขั้นตอนที่ 5MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbixuser@localhost identified by "Password";MariaDB [(none)]> flush privileges; 7. ทำการ Import schema [root@system ~]# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -u zabbixuser zabbix_proxy -pEnter password: ทำการกรอก root database password ที่สร้างในขั้นตอนที่ 5 8. ตรวจสอบว่า Server มีการปิด SElinux แล้วหรือไม่ หากยังไม่ทำการปิดให้ทำการ Disable SElinux ให้เรียบร้อยก่อน [root@system ~]# nano -w /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection.SELINUXTYPE=targeted 9. ทำการ Config zabbix_proxy [root@system ~]# nano -w /etc/zabbix/zabbix_proxy.confServer=< ใส่ IP ของ zabbix server Ex. 203.78.103.9>Hostname=<ใส่ชื่อ Zabbix-proxy ที่เราต้องการจะสร้าง>DBName=<ใส่ข้อมูล Database name ก่อนหน้านี้เรากำหนดเป็น zabbix_proxy >DBUser=<ใส่ข้อมูล Database User ก่อนหน้านี้เรากำหนดเป็น zabbixuser>DBPassword=<ทำการกรอก root database password ที่สร้างในขั้นตอนที่ 5> 10. หลังจากทำการ Config zabbix_proxy เรียบร้อยแล้ว ให้ทำการ Allow port 10050,10051,10052 ในส่วนของ TCP in และ TCP OUT 11. ทำการ Restart service zabbix_proxy [root@system ~]# systemctl enable zabbix-proxy[root@system ~]# systemctl start zabbix-proxy Add Zabbix_proxy to Zabbix_server 1. Go to Zabbix_server dashboard >> Administrator >> Proxies >> Create proxy Add Zabbix_agent to Zabbix_proxy 1. เมื่อทำการติดตั้ง Zabbix_agent บนเครื่อง Local ที่ต้องการให้ Zabbix_proxy monitor เรียบร้อยแล้วให้ทำการ Config zabbix_agent [ local server ~]# nano -w /etc/zabbix/zabbix_agentd.confServer=<ใส่ ip zabbix_proxy Ex.192.168.100.150>ServerActive=<ใส่ ip zabbix_proxy Ex.192.168.100.150>Hostname=<ใส่ Hostname ของเครื่อง Local server ที่เราต้องการ> 2. ทำการ Restart service zabbix_agent [root@system ~]# systemctl restart zabbix-agent 3. หลังจากทำการ Config zabbix_agent เรียบร้อยแล้วให้ดำเนินการ add server บน Zabbix_server dashboard Go to Zabbix_server dashboard >> Configuration >> Hosts >> Create host
ขั้นตอนการติดตั้ง Zabbix agent บน Windows server 1. ทำการ Remote Desktop เข้าที่ Server ที่ต้องการติดตั้ง 2. ทำการ Download โดยสามารถทำการ Download ผ่าน Browser 3. ทำการ Extract file ที่ได้จากการ Download และทำการติดตั้ง ตามรายละเอียดด้านล่าง 4. ทำการ Download file Config และ File get metadata โดยสามารถทำการ Download ได้ที่ : http://203.78.107.84/zabbix_windows.tar.gz 5. ทำการ Extract file Config และ File get metadata จะได้ไฟล์ - zabbix_agentd.conf - get_server_for_zabbix.pl 6. ทำการ Move file ที่ได้ไปที่ C:\Program Files\Zabbix Agent 7. ทำการแก้ไขไฟล์ zabbix_agentd.conf โดยให้ทำการแก้ไขในส่วนของ- Server=203.78.103.9 - ServerActive=203.78.103.9 - Hostname=[Servername] 8. ทำการติดตั้ง Strawberryperl เพื่อให้สามารถใช้งานคำสั่ง perl ได้ - Download and setup perl from http://strawberryperl.com - Install CPAN module with command line ผ่านโปรแกรม strawberryperl > cpan Win32 Net::Domain User Win32::Service 9. เปิดโปรแกรม Powershell จากนั้น Run คำสั่ง - ทำการ Run : cd 'C:\Program Files\Zabbix Agent\' -ทำการ Run : perl .\get_server_for_zabbix.pl 10. ทำการ Allow port 10050 , 10051 , 10052 ในส่วนของ Firewall ทั้ง TCP IN และ TCP OUT 11. ทำการ Restart zabbix_agentd โดยสามารถดำเนินการได้โดย - กดที่เมนู Run จากนั้นใส่ข้อมูล services.msc - ทำการ Restart zabbix_agentd
การติดตั้ง mytop เพื่อให้ monitor process : mysql 1. ทำการติดตั้ง Package epel-release [root@system ~]#yum install epel-release 2. ทำการติดตั้ง Mytop เพื่อใช้ในการ Monitor การทำงานของ mysql database [root@system ~]#yum install mytop 3. ทำการแก้ไข Config mytop [root@system ~]#nano -w /root/.mytop db=mysqldelay=2 4. ทดสอบการใช้งานคำสั่ง mytop จะพบ process mysql database ที่มีการ query อยู่ปัจจุบัน MySQL on localhost (5.7.27) up 6+20:23:37 [13:43:04] Queries: 18.0 qps: 0 Slow: 0.0 Se/In/Up/De(%): 44286894/00/00/00 qps now: 1 Slow qps: 0.0 Threads: 1 ( 1/ 9) 00/00/00/00 Key Efficiency: 99.9% Bps in/out: 0.0/ 0.2 Now in/out: 21.0/ 5.1k Id User Host/IP DB Time Cmd Query or State -- ---- ------- -- ---- --- ---------- 491510 root localhost mysql 0 Query show full processlist
วิธีติดตั้งและต่ออายุ Free SSL (Let's Encrypt ) แบบ Manual 1. ทำการ Verify website เพื่อ Generate Key , CA และ Certificate โดยสามารถทำการ Verify website ได้ที่ https://www.sslforfree.com/ - ให้ทำการกรอกข้อมูล Domain ที่ต้องการติดตั้ง Free ssl - ทำการเลือก Manual Verification - จากนั้นทำการ Download file เพื่อ Verify domain โดยให้ทำการ Download file และนำไฟล์ไปไว้ที่ Part file ที่เรียกใช้งาน Website ทั้งนี้รูปแบบการ Verify จะต้องทำการ Upload file ไปไว้ที่ /.well-known/acme-challenge/filename ตัวอย่างเช่นทำการ Upload file name : JUUOCxh14V0Q-yDbvR8Lsnr5nvWe2z26_y-nrRxBjaE นำไปไว้ที่ Part file : /var/www/html//.well-known/acme-challenge/JUUOCxh14V0Q-yDbvR8Lsnr5nvWe2z26_y-nrRxBjaE 2. เมื่อทำการ Verify website เรียบร้อยแล้วจะได้รับ Key , CA และ Certificate 3. SSH เข้าที่ Server ที่ต้องการ จากนั้นให้การสร้างไฟล์เพื่อเก็บข้อมูล Key , CA และ Certificate ที่ได้รับมา [root@system ~]# mkdir /etc/httpd/private[root@system ~]# cd /etc/httpd/private[root@system ~]# nano -w cafilename.ca-bundle[root@system ~]# nano -w certificatefilename.crt[root@system ~]# nano -w keyfilename.key 4. ทำการแก้ไขไฟล์ Config SSL เพื่อให้สามารถเรียกใช้ Key , CA และ Certificate ที่ได้รับมาได้ [root@system ~]# nano -w /etc/httpd/conf.d/ssl.conf - ทำการแก้ไข Part file Key # Server Private Key:# If the key is not combined with the certificate, use this# directive to point at the key file. Keep in mind that if# you've both a RSA and a DSA private key you can configure# both in parallel (to also allow the use of DSA ciphers, etc.)#SSLCertificateKeyFile /etc/pki/tls/private/localhost.keySSLCertificateKeyFile /etc/httpd/ssl/private/ezazbweb1.key - ทำการแก้ไข Part file Certificate # Server Certificate:# Point SSLCertificateFile at a PEM encoded certificate. If# the certificate is encrypted, then you will be prompted for a# pass phrase. Note that a kill -HUP will prompt again. A new# certificate can be generated using the genkey(1) command.#SSLCertificateFile /etc/pki/tls/certs/localhost.crtSSLCertificateFile /etc/httpd/ssl/private/ezazbweb1.crt - ทำการแก้ไข Part file CA # Certificate Authority (CA):# Set the CA certificate verification path where to find CA# certificates for client authentication or alternatively one# huge file containing all of them (file must be PEM encoded)#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crtSSLCACertificateFile /etc/httpd/ssl/private/ezazbweb1.ca-bundle 5. ทำการ Restart apache service [root@system ~]# systemctl restart httpd
วิธีการ Custom logrotate on Ubuntu server 1. ssh login เข้าที่เครื่องที่ต้องการ 2. ทำการสร้างไฟล์ที่ต้องการ Custom config [root@system ~]# cd /etc/logrotate.d/ [root@system ~]# touch mongodb 3. ทำการ Config part และช่วงเวลาที่ต้องการทำ logrotate [root@system ~]# nano -w /etc/logrotate.d/mongodb /var/log/mongodb/*.log { *** Part ที่ต้องการทำ Logrotate *** weekly missingok rotate 14 *** ช่วงเวลาในการเก็บ Logrotate หน่วยเป็นสัปดาห์ *** compress notifempty } 4. ทำการ Force update Logrotate [root@system ~]# logrotate /etc/logrotate.conf --state /var/lib/logrotate/logrotate.status --verbose --force 5. ตรวจสอบ logrotate.status จะพบ validate log ที่ทำการ Custom ขึ้นมา [root@system ~]# more /var/lib/logrotate/logrotate.status "/var/log/nginx/error.log" 2019-7-15-3:34:1"/var/log/mongodb/mongod.log" 2019-7-3-2:42:56"/var/log/yum.log" 2019-6-15-3:7:1"/var/log/rabbitmq/rabbit@eza_upgrade.log" 2019-5-24-3:30:1"/var/log/boot.log" 2019-1-9-16:44:1"/var/log/rabbitmq/rabbit@eza.log" 2019-7-14-3:48:1