/*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===*/
Dùng thư viện Netmiko SSH vào các route để cấu hình OSPF đảm bảo mạng hội tụ
(tất cả các IP sơ đồ có thể ping thấy nhau)
Chuẩn bị:
Đấu nối interface management: Các interface Et0/0 của tất cả các
router nối vào lớp mạng 192.168.0.0/24, lớp mạng này chỉ dùng trong việc
quản lý thiết bị, không tham gia vào quá trình định tuyến của các router
trong sơ đồ mạng.
Cấu hình căn bản: trên các router đảm bảo netmiko: 192.168.0.48 có
thể ssh vào được các router
R1:
enable
conf t
hostname R1
ip domain name netmiko.lab
no ip domain-lookup
username admin privilege 15 password admin1234
line vty 0 4
login local
transport input ssh
crypto key generate rsa general-keys modulus 1024
ip ssh version 2
interface e0/0
ip address 192.168.0.1 255.255.255.0
no shutdown
exit
do wri
R2:
enable
conf t
hostname R2
ip domain name netmiko.lab
no ip domain-lookup
username admin privilege 15 password admin1234
line vty 0 4
login local
transport input ssh
crypto key generate rsa general-keys modulus 1024
ip ssh version 2
interface e0/0
ip address 192.168.0.2 255.255.255.0
no shutdown
exit
do wri
R3:
enable
conf t
hostname R3
ip domain name netmiko.lab
no ip domain-lookup
username admin privilege 15 password admin1234
line vty 0 4
login local
transport input ssh
crypto key generate rsa general-keys modulus 1024
ip ssh version 2
interface e0/0
ip address 192.168.0.3 255.255.255.0
no shutdown
exit
do wri
R4:
enable
conf t
hostname R4
ip domain name netmiko.lab
no ip domain-lookup
username admin privilege 15 password admin1234
line vty 0 4
login local
transport input ssh
crypto key generate rsa general-keys modulus 1024
ip ssh version 2
interface e0/0
ip address 192.168.0.4 255.255.255.0
no shutdown
exit
do wri
Thực hiện:
Chuẩn bị file cấu hình mẫu:
R1
R2
R3
R4
R1.txt
interface e0/2
ip address 192.168.14.1 255.255.255.0
no shutdown
exit
interface e0/3
ip address 192.168.13.1 255.255.255.0
no shutdown
exit
interface e0/1
ip address 192.168.123.1 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.1.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 1.1.1.1
exit
!
int rang e0/1 ,e0/3, lo 0
ip ospf 1 are 0
exit
int rang e0/2
ip ospf 1 are 1
exit
end
wri
R2.txt
interface e0/1
ip address 192.168.123.2 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.2.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 2.2.2.2
exit
!
int rang e0/1
ip ospf 1 are 0
exit
int lo 0
ip ospf 1 are 2
exit
end
wri
R3.txt
interface e0/3
ip address 192.168.13.3 255.255.255.0
no shutdown
exit
interface e0/1
ip address 192.168.123.3 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.3.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 3.3.3.3
exit
!
int rang e0/1 ,e0/3, lo 0
ip ospf 1 are 0
exit
end
wri
R4.txt
interface e0/2
ip address 192.168.14.4 255.255.255.0
no shutdown
exit
interface Lo0
ip address 8.8.8.8 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 4.4.4.4
exit
!
int rang e0/2
ip ospf 1 are 1
exit
int lo 0
ip ospf 1 are 1
exit
end
wri
Code:
from netmiko import ConnectHandler
'''
Thực hiện import file cấu hình:
- R1.txt vào R1
- R2.txt vào R2
- R3.txt vào R3
- R4.txt vào R4
'''
ios_device = {} # định nghĩa dictionnay rỗng
cfg_device = "R1,R2,R3,R4" # danh sách các Router cần cấu hình
cfg_device = cfg_device.split(",")
def send_config_file(txt):
print(f"Dang ket noi vao IP:'{values[1]}' voi Username: '{values[2]}'")
net_connect = ConnectHandler(**ios_device) # khởi tạo kết nối đến router
output = net_connect.send_config_from_file(txt) # thực hiện import cấu hình vào router
print(f"Da import file cau hinh:'{txt}' OSPF vao IP: '{values[1]}' thanh cong!")
print("-" * 80)
#print(txt)
with open ("device_listOSPF.csv","r") as rfile:
keys = rfile.readline().split(",")
values = rfile.read()
x = 0 # khởi tạo biến đếm
for values in values.splitlines():
values = values.split(",")
for i in range(1,len(keys)-1,1):
ios_device[keys[i]] = values[i]
send_config_file(cfg_device[x] + ".txt")
x += 1
Kết quả:
C:\python>python Demo.py
Dang ket noi vao IP:'192.168.0.1' voi Username: 'admin'
1. Join: phương thức nối các sequence thành nội chuỗi
Code:
mac_addr ="08-00-27-00-E8-26"
print()
print("Chuoi ban dau: ",mac_addr)
mac_addr = mac_addr.split("-") # chuyển chuổi qua list, căn cứ vào dấu - để tách
print()
mac_addr_new = ":".join(mac_addr) # nối dấu hai chấm vào biến list mac_addr
print("Sau khi them sau HAI CHAM vao: ",mac_addr_new)
Kết quả:
C:\python>python Demo.py
Chuoi ban dau: 08-00-27-00-E8-26
Sau khi them sau HAI CHAM vao: 08:00:27:00:E8:26
C:\python>
2. Replace: phương thức tìm và thay thế chuỗi cũ bằng chuỗi mới
Code:
mac_addr ="08-00-27-00-E8-26"
print()
mac_addr = mac_addr.replace("-",":") # tìm nếu trong chuỗi có ký tự '-' thì thay bằng ':'
print(mac_addr)
Chúng ta có thể định nghĩa Group host riêng cho nhóm cần giám sát bằng agent (nhằm mục đích dễ quản lý)
Cũng tư tương như phần add host ở ICMP (chú ý phần port cho trùng khớp với cài đặt agent bên trên nhé các bạn)
Nếu host là Windows:
Trong phần templates chọn -> Template OS Windows by Zabbix Agent. Các bước thực hiện như hình:
Nếu host là CentOS:
Trong phần templates chọn -> Template OS Linux Zabbix Agent (vì trong lab này chúng tôi chọn chính máy server zabbix nên chọn thêm Template App Zabbix Server và IP là 127.0.0.1-localhost). Các bước thực hiện như hình:
Kết quả sau khi thêm 2 host agent cần monitor, chúng ta thấy ZBX ở Availability sáng lên đó là kết nối Agent thành công.
4. Monitoring trên Graph Zabbix
Chọn mục Monitoring -> hosts chúng ta thấy zabbix liệt kê ra những nhứ mà nó thu thập được từ zabbix agent kể cả lỗi và không lỗi
Ví dụ chọn Graphs của host 192.168.0.25 chúng ta thấy các thông tin được thể hiện bằng biểu đồ rất cụ thể
Ở mục Problems nó cũng liệt kê ra các lỗi nếu có, ví dụ với hình dưới nó thông báo tên service bị lỗi là gì, bị lỗi lúc nào ....
Cách hành xử với lỗi thế nào hẹn các bạn ở các bài viết sau.
Chúng ta có thể định nghĩa Group host riêng cho nhóm cần giám sát bằng agent (nhằm mục đích dễ quản lý)
Cũng tư tương như phần add host ở ICMP (chú ý phần port cho trùng khớp với cài đặt agent bên trên nhé các bạn)
Nếu host là Windows:
Trong phần templates chọn -> Template OS Windows by Zabbix Agent. Các bước thực hiện như hình:
Nếu host là CentOS:
Trong phần templates chọn -> Template OS Linux Zabbix Agent (vì trong lab này chúng tôi chọn chính máy server zabbix nên chọn thêm Template App Zabbix Server và IP là 127.0.0.1-localhost). Các bước thực hiện như hình:
Kết quả sau khi thêm 2 host agent cần monitor, chúng ta thấy ZBX ở Availability sáng lên đó là kết nối Agent thành công.
4. Monitoring trên Graph Zabbix
Chọn mục Monitoring -> hosts chúng ta thấy zabbix liệt kê ra những nhứ mà nó thu thập được từ zabbix agent kể cả lỗi và không lỗi
Ví dụ chọn Graphs của host 192.168.0.25 chúng ta thấy các thông tin được thể hiện bằng biểu đồ rất cụ thể
Ở mục Problems nó cũng liệt kê ra các lỗi nếu có, ví dụ với hình dưới nó thông báo tên service bị lỗi là gì, bị lỗi lúc nào ....
Cách hành xử với lỗi thế nào hẹn các bạn ở các bài viết sau.