/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví Dụ #011 - While Loops, Range/ Vòng Lặp While, Range Trong Python

Yêu cầu:
1. Vòng Lặp While 
 2. Range - Cú pháp của range()

Thực hiện:

1. Vòng Lặp While 
Code:
i = 0
while i <= 5: # khi nhỏ hơn hoặc bằng 5 thì thực hiện (i = 6 sẽ dừng) 
	print("Hello world!")
	i += 1 # i = i + 1, tăng i lên một đơn vị
else:
	print("Done!")

Kết quả:
C:\python>python Demo.py
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Done!

C:\python>

 2. Range - Cú pháp của range()

Code:
''' 
- với range nếu chỉ có một tham số thì python ngầm hiểu đó là: stop
- range(stop)
- Kết quả trả về là dãy số từ 0 -> stop - 1
'''
print(list(range(10)))
'''
- với rang nếu với 2 tham số thì python hiểu là: start, stop
- range(start, stop)
- python ngầm hiểu bước nhảy sẽ là 1
'''
print(list(range(1, 10)))

'''
- rang có thể sử dụng tham số truyền vào
- start: bắt đầu là số 2
- step: bước nhảy là 2, hoặc tăng start lên 2 đơn vị
- stop: tăng cho đến 14 - 1 thì dừng (trong ví dụ này kết quả in ra sẽ không có 14)
'''
start = 2
stop = 14
step = 2
print(list(range(start, stop, step)))

Kết quả:
C:\python>python Demo.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8, 10, 12]

C:\python>

Xong!

Reset Password Zabbix Admin Via MySQL

Thông tin Username và Password mặc định của zabbix là:

  • Username: Admin
  • Password: zabbix

Nếu như chúng ta quên password thì không thể đăng nhập vào được. Tuy nhiên chúng ta có thể reset password của zabbix thông qua MySQL từ linux console.


Thực hiện:

  • Kết nối với MySQL với username root:

[root@CentOS ~]# mysql -u root -p

Enter password: <Nhập vào password của root -> Enter >

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 44903

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 


  • Xem thông tin các database hiện tại
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix_DB          |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 

Tên của cơ sở dữ liệu hiện tại là:  zabbix_DB

  • Kết nối vào database xem các user đang tồn tại trên zabbix
MariaDB [(none)]> use zabbix_DB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix_DB]> 

MariaDB [zabbix_DB]> select alias from users;
+---------+
| alias      |
+---------+
| Admin   |
| guest      |
| monitor  |
+---------+
3 rows in set (0.00 sec)
MariaDB [zabbix_DB]> 

Admin là username chúng ta cần

  • Reset password và thoát khỏi MySql
MariaDB [zabbix_DB]> update zabbix_DB.users set passwd=md5('P@ssw0rd') where alias='Admin';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [zabbix_DB]>exit;
Bye
[root@CentOS ~]# 

Bây giờ chúng ta có thể đăng nhập vào zabbix với password mới là: P@ssw0rd

Xong!

Reset Password Zabbix Admin Via MySQL

Thông tin Username và Password mặc định của zabbix là:

  • Username: Admin
  • Password: zabbix

Nếu như chúng ta quên password thì không thể đăng nhập vào được. Tuy nhiên chúng ta có thể reset password của zabbix thông qua MySQL từ linux console.


Thực hiện:

  • Kết nối với MySQL với username root:

[root@CentOS ~]# mysql -u root -p

Enter password: <Nhập vào password của root -> Enter >

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 44903

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 


  • Xem thông tin các database hiện tại
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix_DB          |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 

Tên của cơ sở dữ liệu hiện tại là:  zabbix_DB

  • Kết nối vào database xem các user đang tồn tại trên zabbix
MariaDB [(none)]> use zabbix_DB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix_DB]> 

MariaDB [zabbix_DB]> select alias from users;
+---------+
| alias      |
+---------+
| Admin   |
| guest      |
| monitor  |
+---------+
3 rows in set (0.00 sec)
MariaDB [zabbix_DB]> 

Admin là username chúng ta cần

  • Reset password và thoát khỏi MySql
MariaDB [zabbix_DB]> update zabbix_DB.users set passwd=md5('P@ssw0rd') where alias='Admin';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [zabbix_DB]>exit;
Bye
[root@CentOS ~]# 

Bây giờ chúng ta có thể đăng nhập vào zabbix với password mới là: P@ssw0rd

Xong!

Học Python Qua Ví Dụ #010 - Condition, Loop For Continue & Break - Hàm Điều Kiện, Vòng Lặp For, Continue & Break Trong Python

Yêu cầu
1. Điều kiện IF
2. Lặp For Continue, For Break , For Lồng

Thực hiện:
1. Cấu trúc lệnh if: tạm hiểu theo tiếng Việt là: NẾU đùng THÌ làm....

if condition 1:
    # lệnh 
    # hoặc khối lệnh
elif condition 2:
    # lệnh 
    # hoặc khối lệnh
elif condition 3:
    # lệnh 
    # hoặc khối lệnh
else:
    # lệnh 
    # hoặc khối lệnh

Ví dụ:
a = 10
if a == 10:
    print("DUNG") # nếu đúng a bằng 10 thì in ra chữ DUNG
else:
    print("SAI") # hoặc ngược lại - nếu sai (a khác 10) thì in ra chữ SAI

Kết quả:

C:\python>python Demo.py

DUNG

C:\python>

2.  Lặp For Continue,  For Break, For Lồng

  • Lặp For và Continue: 
Code:
ip_list = ["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"]
for ip in ip_list: # đọc cho đến hết list
	if ip == "192.168.1.3": # nếu trong list có giá trị là "192.168.1.3" thì
		continue # nhảy qua index kế tiếp mà không in giá trị ở điều kiện if ra
	print (ip)
Kết quả:
C:\python>python Demo.py

192.168.1.1
192.168.1.2
192.168.1.4

C:\python>

Chúng ta thấy giá "192.168.1.3" trong điều kiện if không được in ra. Với continue thì nó vẫn tiếp vòng for.

  • Lặp For và Break
Code:
ip_list = ["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"]
for ip in ip_list: # đọc cho đến hết list
	if ip == "192.168.1.3": # nếu trong list có giá trị là "192.168.1.3" thì
		break # dừng và thoát ra khỏi for
	else:
		print (ip) # nếu ip KHÔNG phải là "192.168.1.3" thì print ra.

Kết quả:
C:\python>python Demo.py

192.168.1.1
192.168.1.2

C:\python>

Nó hành xử là: nếu trong list có giá trị của điều kiện if thì break sẽ thoát ra khỏi for luôn, mà không thực hiện khối lệnh bên dưới.

  • Lăp For Lồng:
Code:
ip_list = ["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"]
ip_net = ["8.8.8.8", "4.4.4.4"]
for ip in ip_list:
	for ipnet in ip_net: 
		print (ip) 
		print (ipnet) 

Kết quả:
C:\python>python Demo.py
192.168.1.1
8.8.8.8
192.168.1.1
4.4.4.4
192.168.1.2
8.8.8.8
192.168.1.2
4.4.4.4
192.168.1.3
8.8.8.8
192.168.1.3
4.4.4.4
192.168.1.4
8.8.8.8
192.168.1.4
4.4.4.4

C:\python>

Kết quả in ra là phần tử thứ nhất của ip_list với từng phần tử của ip_net, và tương tự với các phần tử còn lại của ip_list.

Xong!

Zabbix, Cấu Hình Zabbix Cơ Bản / SNMP Template - Monitoring Graph 3/5

Yêu cầu:
1. Cấu hình SNMP trên Windows
2. Cấu hình SNMP trên Cisco IOS
3. Add Host Monitor SNMP trên Zabbix

Thực hiện
1. Cấu hình SNMP trên Windows

  • Cài SNMP bằng Windows PowerShell
PS C:\Users\Administrator> import-module servermanager
PS C:\Users\Administrator> Install-WindowsFeature SNMP-Service -IncludeManagementTools
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {Feature Administration Tools, SNMP Tools,...

  • Kiểm tra sau khi cài đặt
PS C:\Users\Administrator> Get-WindowsFeature SNMP-Service
Display Name Name Install State
------------ ---- -------------
[X] SNMP Service SNMP-Service Installed

  • Xem thông tin trước khi cấu hình
PS C:\Users\Administrator> Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\
Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
Name Property
---- --------
ExtensionAgents W3SVC : Software\Microsoft\W3SVC\CurrentVersion
PermittedManagers 1 : localhost
RFC1156Agent sysServices : 76
sysLocation :
sysContact :
ValidCommunities

  • Thiết lập SNMP Contract có tên là public
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\RFC1156Agent\ -Name sysContact -Value public

  • Thiết lập Community là public và Read-only cho Community
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities\ -Name public 4

  • Cho phép IP 192.168.0.222 mới có thể thiết lập SNMP vào server này
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers\ -Name 2 -Value 192.168.0.222

  • Khởi động SNMP serves
Restart-Service SNMP -Verbose

  • Kiểm tra thông tin đã cấu hình
PS C:\Users\Administrator> Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
Name                                  Property
----                                        --------
ExtensionAgents                 W3SVC : Software\Microsoft\W3SVC\CurrentVersion
PermittedManagers              1 : localhost
                                              2 : 192.168.0.222
RFC1156Agent                     sysServices : 76
                                              sysLocation :
                                              sysContact  : public
TrapConfiguration
ValidCommunities                public : 4
PS C:\Users\Administrator>

  • Đảm bảo port 161 UDP được cho phép trên Firewall của windows
netsh advfirewall firewall add rule name="Allow Port 161 UDP" dir=in action=allow protocol=UDP localport=161


Cấu hình GUI tham khảo ở đây


2. Cấu hình SNMP trên Cisco IOS

Version 2
snmp-server community public ro

Version 3
snmp-server group SNMPGroup v3 priv
snmp-server user SNMPUser SNMPGroup v3 auth md5 snmpPASSWORD123 priv des snmpKEY123
snmp-server host 192.168.0.222 version 3 auth SNMPUser

Tham khảo bài cấu hình SNMP trên cisco có giải thích ở đây

3. Add Host Monitor SNMP trên Zabbix

  • SNMP Version 2
Windows:

Cisco IOS:


  • Kiểm tra xem zabbix đã kết nối được switch chưa:
- Cài đặt tool trên zabbix:
sudo yum install net-snmp net-snmp-utils


- Kiểm tra:
snmpwalk -v2c -c public 192.168.100.6  1.3.6.1.2.1.1.1

- Kết quả thành công:
[root@zabbix5 ~]# snmpwalk -v2c -c public 192.168.100.6  1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2960 Software (C2960-LANLITEK9-M), Version 15.2(7)E2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2020 by Cisco Systems, Inc.
Compiled Sat 14-Mar-20 17:53 by prod_rel_team

tìm hiểu RFC1213 để biết thêm về dãy số 1.3.6.1.2.1.1.1   hoặc đây
  • SNMP Version 3
- Tìm và Download templates cho thích hợp với thiết bị cần monitoring (SNMPv3 không tích hợp sẵn trong Zabbix)
- Import templates 

file import trong lab 

- Add host:

Chúng ta thấy SNMP enable xanh có nghĩa thiết lập kết nối SNMP thành công.

Cách xem monitor tương tự lab trước
Xong!

Zabbix, Cấu Hình Zabbix Cơ Bản / SNMP Template - Monitoring Graph 3/5

Yêu cầu:
1. Cấu hình SNMP trên Windows
2. Cấu hình SNMP trên Cisco IOS
3. Add Host Monitor SNMP trên Zabbix

Thực hiện
1. Cấu hình SNMP trên Windows

  • Cài SNMP bằng Windows PowerShell
PS C:\Users\Administrator> import-module servermanager
PS C:\Users\Administrator> Install-WindowsFeature SNMP-Service -IncludeManagementTools
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {Feature Administration Tools, SNMP Tools,...

  • Kiểm tra sau khi cài đặt
PS C:\Users\Administrator> Get-WindowsFeature SNMP-Service
Display Name Name Install State
------------ ---- -------------
[X] SNMP Service SNMP-Service Installed

  • Xem thông tin trước khi cấu hình
PS C:\Users\Administrator> Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\
Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
Name Property
---- --------
ExtensionAgents W3SVC : Software\Microsoft\W3SVC\CurrentVersion
PermittedManagers 1 : localhost
RFC1156Agent sysServices : 76
sysLocation :
sysContact :
ValidCommunities

  • Thiết lập SNMP Contract có tên là public
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\RFC1156Agent\ -Name sysContact -Value public

  • Thiết lập Community là public và Read-only cho Community
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities\ -Name public 4

  • Cho phép IP 192.168.0.222 mới có thể thiết lập SNMP vào server này
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers\ -Name 2 -Value 192.168.0.222

  • Khởi động SNMP serves
Restart-Service SNMP -Verbose

  • Kiểm tra thông tin đã cấu hình
PS C:\Users\Administrator> Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters
Name                                  Property
----                                        --------
ExtensionAgents                 W3SVC : Software\Microsoft\W3SVC\CurrentVersion
PermittedManagers              1 : localhost
                                              2 : 192.168.0.222
RFC1156Agent                     sysServices : 76
                                              sysLocation :
                                              sysContact  : public
TrapConfiguration
ValidCommunities                public : 4
PS C:\Users\Administrator>

  • Đảm bảo port 161 UDP được cho phép trên Firewall của windows
netsh advfirewall firewall add rule name="Allow Port 161 UDP" dir=in action=allow protocol=UDP localport=161


Cấu hình GUI tham khảo ở đây


2. Cấu hình SNMP trên Cisco IOS

Version 2
snmp-server community public ro

Version 3
snmp-server group SNMPGroup v3 priv
snmp-server user SNMPUser SNMPGroup v3 auth md5 snmpPASSWORD123 priv des snmpKEY123
snmp-server host 192.168.0.222 version 3 auth SNMPUser

Tham khảo bài cấu hình SNMP trên cisco có giải thích ở đây

3. Add Host Monitor SNMP trên Zabbix

  • SNMP Version 2
Windows:

Cisco IOS:


  • Kiểm tra xem zabbix đã kết nối được switch chưa:
- Cài đặt tool trên zabbix:
sudo yum install net-snmp net-snmp-utils


- Kiểm tra:
snmpwalk -v2c -c public 192.168.100.6  1.3.6.1.2.1.1.1

- Kết quả thành công:
[root@zabbix5 ~]# snmpwalk -v2c -c public 192.168.100.6  1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2960 Software (C2960-LANLITEK9-M), Version 15.2(7)E2, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2020 by Cisco Systems, Inc.
Compiled Sat 14-Mar-20 17:53 by prod_rel_team

tìm hiểu RFC1213 để biết thêm về dãy số 1.3.6.1.2.1.1.1   hoặc đây
  • SNMP Version 3
- Tìm và Download templates cho thích hợp với thiết bị cần monitoring (SNMPv3 không tích hợp sẵn trong Zabbix)
- Import templates 

file import trong lab 

- Add host:

Chúng ta thấy SNMP enable xanh có nghĩa thiết lập kết nối SNMP thành công.

Cách xem monitor tương tự lab trước
Xong!
/*header slide*/